2013-10-02 9 views
5

私はffmpeg経由でlibx264を使用しています(C++プログラムで)、私は "veryfast"プリセットをアクティブにする方法を知る必要があります。 x264のソースツリー収率でのgrep:charがCONST x264_preset_namesを*静的定数[] = { "超高速"、 "超高速"、 "veryfast"、 "速い"、 "高速":libavcodecを使ってコードから "veryfast" libx264プリセットをどのように有効にしますか?

は/ x264.hを含みます「ゆっくり」、「ゆっくり」、「veryslow」、「プラセボ」、0};

これは、他の設定のコレクションとしてffmpegに実装されているだけで、x264自体がこのプリセットをサポートしていると信じています。ですから、問題は:ffmpegにx264 "veryfast"プリセットを有効にするにはどうしたらいいですか?

答えて

8

をすべてコーデックを開くときに必要なパラメータ!

AVDictionary * codec_options(0); 
av_dict_set(&codec_options, "preset", "veryfast", 0); 
// av_dict_set(&codec_options, "AnyCodecParameter", "Value", 0); 
avcodec_open2(codecContext, videoCodec, &codec_options); 
+0

av_opt_set()またはAVDictionaryを使用していますか? – dicroce

+0

av_dict_set()はもっとモダンなので、私は99%好きな方法です! AVDictionaryを使用するすべてのものが現代的な方法と考えられています。 –

6

libavutil定義av_opt_set()....あなたがしなければならないのは、それから「libavutil/opt.h」と含まれている:あなたは辞書を作成し、その後でこの辞書を使用なきゃ

av_opt_set(codecContext->priv_data, "preset", "veryfast", 0); 
関連する問題