Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在youtube上播放ffmpeg rtmp,速度低于1x_Python_Opencv_Ffmpeg_Video Streaming_Rtmp - Fatal编程技术网

Python 在youtube上播放ffmpeg rtmp,速度低于1x

Python 在youtube上播放ffmpeg rtmp,速度低于1x,python,opencv,ffmpeg,video-streaming,rtmp,Python,Opencv,Ffmpeg,Video Streaming,Rtmp,我制作了一个python和opencv程序,使用MJPEG输出格式每秒生成8-15fps左右的帧,其中MJPEG地址服务于本地主机Web服务器(0.0.0.0:5000),并且,我确实尝试使用ffmpeg将其帧广播到rtmp服务器,如youtube,因此基本上我将MJEG转换为flv,并使用以下命令将其转发到rtmp服务器ffmpeg-f mjpeg-ihttp://0.0.0.0:5000/video_feed -f lavfi-i anullsrc-c:v libx264-vf“scale=

我制作了一个python和opencv程序,使用MJPEG输出格式每秒生成8-15fps左右的帧,其中MJPEG地址服务于本地主机Web服务器(0.0.0.0:5000),并且,我确实尝试使用ffmpeg将其帧广播到rtmp服务器,如youtube,因此基本上我将MJEG转换为flv,并使用以下命令将其转发到rtmp服务器
ffmpeg-f mjpeg-ihttp://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 flvrtmp://a.rtmp.youtube.com/live2/xxx-xxx-xxx
但不幸的是,youtube流有太多的缓冲,大约每5秒发生一次,而ffmpeg终端告诉我们,写入速度只有0.317倍左右(预计与youtube的同步速度约为0.99-1x),我的问题是

有没有一种方法可以在不使用缓冲的情况下,以8-15fps左右的速度传输“实时”,并自动与youtube rtmp服务器同步,因为我认为youtube需要30fps左右,而我的fps只有9-15fps,这可能会导致缓冲。 有没有像ffmpeg这样的附加参数可以加快写入速度?多谢各位


原始视频的帧率通常为25。但您的源是可变帧速率。您需要将wallclock时间指定为时间戳,并为YT生成恒定的帧速率输出

ffmpeg-f mjpeg-使用wallclock作为时间戳true-ihttp://0.0.0.0:5000/video_feed -f lavfi-re-i anullsrc-vsync cfr-r 25-c:v libx264-vf“刻度=trunc(oh*a/2)*2:320,unsharp=lx=3:ly=3:la=1.0”-crf 24-c:a aac-ac 1-f flvrtmp://a.rtmp.youtube.com/live2/xxx-xxx-xxx