到目前为止,我一直使用ffmpeg固定帧(以编程方式)进行所有编码。现在我需要支持可变帧率。我开始只注释了设置帧率的代码部分。
但是它没有起作用。我的函数在avcodec_open2处失败。请有人建议我如何支持可变帧率。
此外,我知道并非所有编解码器都支持可变帧率。因此,在使用可变帧率进行编码时通常使用哪些编解码器?请建议。
谢谢 Pradeep
谢谢 Pradeep
float fps = (float)( codecContext->time_base.num ) / codecContext->time_base.den;
this->frame->pts = (__int64)( ( timestamp - timestamp0 ) / fps );
其中timestamp
是帧以秒为单位的时间,timestamp0
是记录第一帧的时间。两者都是浮点值,并来自于我的自定义定时器。当您使用提供捕获帧的时间戳库(如DirectShow)时,应该当然使用那些时间戳。