python - ffmpeg 流式传输效率非常低

标签 python ffmpeg debian vps

基本上我正在做的是通过streamlink抓取一个抽搐流并通过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 streaming very inefficiently

Since this is my very first experience with ffmpeg I dont really know what is causing this.


是什么让您认为它效率低下?您正在重新编码视频。这需要大量的 CPU。

It might even be my server since I'm running a pretty cheap debian VPS.


很可能。
无论如何,您有几个选择。最好的办法是不要重新编码视频。如果 Twitch 为您提供 H.264 和 AAC 音频,请使用 -vcodec copy -acodec copy .
您可以做的另一件事(尽管在 VPS 上不太可能)是强制硬件加速。这将导致一些平庸的视频质量(你可能并不关心,因为你已经重新编码了以前编码的视频),但运行时不会对 CPU 产生重大影响。 FFmpeg 支持一堆 GPU。您必须选择一个与您使用的任何硬件兼容的设备。
您应该做的不是中继流,而是从原始源流式传输多个流。这将帮助您通过重新编码避免质量损失。

关于python - ffmpeg 流式传输效率非常低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44466766/

相关文章:

Python - Pymongo 插入和更新文档

python - 在日期时间解析中使用当前月份/日期

FFmpeg 无法识别 hstack 命令中的正确输入高度

linux - 在 debian wheezy amd64 上安装 ia32-libs

python - 获取 auth_user 的所有 Django 级联依赖模型

python - 通过某个 "type"(属性)的最新记录提高QuerySet过滤器的效率

python - 将单个视频拆分为多个等间隔的视频

android - 如何在 Android 中使用 FFMPEG 库播放视频?

linux - 限制 Linux 中的 Chromium 缓存大小

python - 无法在 Raspberry Pi 上的 Python 3.6 上安装基于 C 的模块,例如 lxml 和 Cython