【发布时间】:2021-01-09 06:09:49
【问题描述】:
我制作了一个 python 和 opencv 程序,它以 MJPEG 输出格式产生每秒大约 8-15fps 的帧,其中 MJPEG 地址在 localhost webserver (0.0.0.0:5000) 上提供,并且我尝试将其帧广播到 rtmp 服务器,例如youtube 使用 ffmpeg 所以基本上我确实将 MJEG 转换为 flv 并使用以下命令转发到 rtmp 服务器 ffmpeg -f mjpeg -i http://0.0.0.0:5000/video_feed -f lavfi -i anullsrc -c:v libx264 -vf "scale=trunc(oh*a/2)*2:320,unsharp=lx=3:ly=3:la=1.0" -crf 24 -c:a aac -ac 1 -f flv rtmp://a.rtmp.youtube.com/live2/xxx-xxx-xxx 但不幸的是 youtube 流有太多缓冲,每 5 秒左右发生一次,ffmpeg 终端告诉写入速度只有 0.317x 左右(预期与 youtube 同步大约 0.99-1x),我的问题是
有没有办法以 8-15fps 的速度“实时”流式传输并自动与 youtube rtmp 服务器同步而无需缓冲,因为我认为 youtube 需要大约 30fps 而我的 fps 只有 9-15fps,这可能会导致缓冲。 是否有类似的附加ffmpeg 参数可以加快写入速度?谢谢
【问题讨论】:
标签: python opencv ffmpeg video-streaming rtmp