想要乙個輸出的可指定檔案路徑的檔案,檔案的內容是ffmpeg執行過程中自己想獲取的資訊。
步驟1-定義這個命令列選項:
找到ffmpeg_opt.c中
enum optgroup ;
static const optiongroupdef groups = ,
[group_infile] = ,
};加入乙個新的enum選項,比如說group_featurefile,然後它的命令列提示符比如說我們選定"-feature",
那麼就修改上面的**為
enum optgroup ,
[group_infile] = ,
[group_featurefile] = ,
};然後我們在ffmpeg/cmdutils.h定義乙個#define opt_feature 0x100000(只要是沒有被選過的都可以)。
步驟2-增加處理這個新命令列引數的方法:
在ffmpeg_opt.c的static int open_files(optiongrouplist *l, const char *inout,
int (*open_file)(optionscontext*, const char*))的
for (i = 0; i < l->nb_groups; i++)
**段(a)為:
if (g->group_def->sep && !strcmp("feature", g->group_def->sep))
else if (ret == 0)
else
}步驟3-增加基於命令引數的功能
在ffmpeg_opt.c定義乙個static int open_feature_file(optionscontext *o, const char *filename)
這個*o裡面是一些初始化引數,其實如果寫得糙一點是用不到的哈哈哈,但是還是先留著了萬一以後要用。
我們實現乙個最簡單的功能,就是通過這個引數開啟乙個全域性檔案指標。
static int open_feature_file(optionscontext *o, const char *filename)
}在ffmpeg/cmdutils.h裡定義乙個「extern file * feature_out;」,這樣引用了ffmpeg/cmdutils.h的檔案就都對這一自定義輸出檔案可見了
就完成了。
FFmpeg 自定義命令列引數
我們在使用 ffmpeg 的時候,會發現 ffmpeg 有些庫的效能並不是特別的好,可能就想要使用其他效能更好的第三方sdk 或 自己開發的sdk來替換。這時可能 ffmpeg 的預設命令列引數並不能我們的需求,就需要自定義命令列引數。那麼如何來自定義命令列引數達到我們的需求呢?此次我們在 ffmp...
UE3自定義命令列
由於ue3的功能不能以lib或者dll的方式提供出來,如果要使用ue3的某部分功能,啟動ue3的exe程式是必須的。所以我們會需要用到命令列。commandlet是命令列的基類,自定義命令列需要繼承這個基類。eg.exportscene.uc class exportscene extends co...
ffmpeg 命令列操作
從mp4 中提取yuv資料 ffmpeg i video1.mp4 ss 00 00 20 t 10 s 640x272 pix fmt yuv420p video1.yuv 解釋 i 指定輸入資料檔案 ss 指定開始時間 t 指定持續時間 10 表示 10s s 指定大小,就是輸出解析度 pix ...