ffmpeg新增自定義命令列輸出檔案

2021-08-29 22:35:06 字數 1236 閱讀 9493

想要乙個輸出的可指定檔案路徑的檔案,檔案的內容是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 ...