2012-04-09 3 views
2

내 C++ 응용 프로그램에서 ffmpeg 코드를 사용하고 거기에서 VIDEO의 bit_rate 매개 변수를 제어하려고합니다. 나는 (ost-> 코덱 -> 코덱 -> 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의 값을 변경하면 코덱에서이를 무시합니다. –

+0

특정 비트 전송률로 코덱을 초기화하면 비트 전송률을 동적으로 변경하기 위해 코덱을 다시 초기화해야합니다. –

+0

어떻게해야합니까? ffmpeg에 재 초기화를위한 함수가 있거나 transcode_init()를 다시 호출해야합니까? –

관련 문제