在使用ffmpeg进行实时rtmp发布期间,如何自适应地将编码比特率更改为带宽?

时间:2019-03-09 16:12:30

标签: encoding ffmpeg rtmp live-streaming codec

我目前正在使用ffmpeg以本地帧速率读取录制的视频,并将流发布到nginx rtmp服务器。

命令看起来像这样

ffmpeg -re -i [video file] \
-vcodec libx264 -r 60 -g 120 -keyint_min 120 -vb [bitrate]\
-f flv -y rtmp://[server url];

我想手动更改软件编码器的编码比特率, 根据带宽波动。例如,

If 2kbps< estimated_bandwidth <4kbps,  
     change ffmpeg bitrate to 3kbps, 1280x720 size 

但是,我找不到在编码过程中支持动态比特率更改的任何框架或编解码器。

有没有办法实现这一目标?
我要做的最后一件事是自己实现编解码器,因为我没有背景。

1 个答案:

答案 0 :(得分:1)

ffmpeg没有此功能。 x264(一种常见的h264编码器)和ffmpeg中的默认编码器确实支持动态更改比特率。您不需要自己实现编码,但是需要修改ffmpeg来添加功能。