2012-04-09 18 views
2

私のC++アプリケーションでffmpegコードを使用しており、そこにビデオのbit_rateパラメータを制御したいと考えています。仕事で値を変更しようとしましたが(ost-> st-> codec-> codec-> bit_rate)、ffmpegは変更したくありませんでした。 おそらく誰もそれを作る方法を知っていますか?FFMPEG:ビデオのビットレートのダイナミックな変更

アイデア?

答えて

1

私はこれと私のために働いてみました。

 avcodec_init(); 

    avcodec_register_all(); 

    codec = avcodec_find_encoder(CODEC_ID_H263); 

    c = avcodec_alloc_context(); 

    picture= avcodec_alloc_frame(); 

     c->bit_rate = bitrate; 
     c->width = w; 
     c->height = h; 
     c->time_base= (AVRational){1,framerate}; 
     c->pix_fmt = PIX_FMT_YUV420P; 

avcodec_close(c); 

av_free(c); 
+0

ありがとうございますが、私にとってはうまくいかないでしょう。この操作は開始プログラム(initの場合)でのみ使用されるためです。ですから、作業中にc-> bit_rateの値を変更すると、コーデックはそれを無視します。 –

+0

特定のビットレートでコーデックを初期化すると、ビットレートを動的に変更するためにコーデックを再初期化する必要があります。 –

+0

どうすればいいですか?ffmpegには再初期化のための関数がいくつかあります。もう一度transcode_init()を呼び出す必要がありますか? –

関連する問題