Python ffmpeg流传输效率非常低

Python ffmpeg流传输效率非常低,python,ffmpeg,debian,vps,Python,Ffmpeg,Debian,Vps,基本上我所做的就是通过streamlink抓取一个twitch流,然后通过ffmpeg将其输出到youtube流。在查找如何做到这一点时,我(无可否认)只是复制了文档中的第一个命令,并对其进行了一些调整,最后得到了以下命令: streamlink -O twitch.tv/boxbox best | ffmpeg -i pipe:0 -s 1920x1200 -framerate 30 -vcodec libx264 -preset veryfast -s 1280x720 -threads

基本上我所做的就是通过streamlink抓取一个twitch流,然后通过ffmpeg将其输出到youtube流。在查找如何做到这一点时,我(无可否认)只是复制了文档中的第一个命令,并对其进行了一些调整,最后得到了以下命令:

 streamlink -O twitch.tv/boxbox best | ffmpeg -i pipe:0 -s 1920x1200 -framerate 30 -vcodec libx264 -preset veryfast -s 1280x720 -threads 0 -f flv "rtmp://a.rtmp.youtube.com/live2/-------------"
运行此命令时,youtube上会出现一条流,但它非常滞后。控制台告诉我,我正在以一致的9fps的速度进行流媒体,这并不是我真正想要的。由于这是我第一次体验ffmpeg,我真的不知道是什么导致了这种情况。它甚至可能是我的服务器,因为我运行的是非常便宜的debian VPS。这是可以预期的,还是我可以调整它以更好地传输它

ffmpeg流传输效率非常低

由于这是我第一次体验ffmpeg,我真的不知道是什么导致了这种情况

是什么让你觉得它效率低下?你正在对视频进行编码。这需要大量的CPU

它甚至可能是我的服务器,因为我运行的是非常便宜的debian VPS

很可能

无论如何,你有两个选择。最好不要对视频重新编码。如果Twitch为您提供H.264和AAC音频,请使用
-vcodec copy-acodec copy

您可以做的另一件事(尽管在VPS上不太可能)是强制硬件加速。这将导致一些平庸的视频质量(因为您已经对以前编码的视频进行了重新编码,所以您可能并不在意),但运行时不会对CPU产生重大影响。FFmpeg支持大量GPU。你必须选择一个与你正在使用的任何硬件兼容的

您应该做的不是中继流,而是从原始源流多个流。这将帮助您通过重新编码避免质量损失