2012-04-09 89 views
2

我在我的C++應用程序中使用ffmpeg代碼,並希望在那裏控制VIDEO的bit_rate參數。我嘗試在工作中改變它的值(通過ost-> st-> codec-> codec-> bit_rate),但是ffmpeg不希望改變它。 也許任何人都知道如何做到這一點?FFMPEG:視頻bit_rate的動態變化

任何想法?

回答

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的值,編解碼器將忽略它。 – 2012-04-10 11:22:08

+0

一旦你用特定的比特率初始化編解碼器,你必須重新初始化編解碼器以動態地改變比特率。 – 2012-04-10 11:34:56

+0

我該怎麼做,ffmpeg有一些重新啓動的功能,或者我應該再次調用transcode_init()? – 2012-04-10 11:59:31