【问题标题】:ffmpeg streaming very inefficientlyffmpeg 流式传输效率非常低
【发布时间】:2017-06-09 21:12:21
【问题描述】:

基本上我正在做的是通过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。这是可以预期的还是我可以调整它以更好地流式传输?

【问题讨论】:

    标签: python ffmpeg debian vps


    【解决方案1】:

    ffmpeg 流式传输效率非常低

    因为这是我第一次使用 ffmpeg,所以我真的不知道是什么原因造成的。

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

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

    很有可能。

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-12-16
      • 2017-08-14
      • 2020-06-05
      • 2016-07-29
      • 1970-01-01
      • 1970-01-01
      • 2018-07-25
      • 2014-12-14
      • 1970-01-01
      相关资源
      最近更新 更多