FFMPEG 流输出在虚拟服务器上丢失

FFMPEG 流输出在虚拟服务器上丢失

我目前正在使用 FFMPEG 在虚拟 CENTOS 服务器上进行流式传输。我使用以下脚本流式传输到 youtube live。

ffmpeg -re -i program.01.mp4 -flags +global_header -acodec libmp3lame -ac 1 -ar 44100 -ab 192k -s 1280x720 -vcodec libx264 -pix_fmt yuv420p -g 60 -vb 1700k -profile:v baseline -preset:v faster -r 30 -f flv "rtmp://a.rtmp.youtube.com/live2/xxxxx"

我之前使用相同的 FFMPEG 流脚本在专用的 CENTOS 服务器上进行流式传输已超过一年,没有出现任何技术问题。

我尝试在虚拟化服务器上​​使用完全相同的 FFMPEG 脚本。当我使用 1700k 编码速度时,我在输出中收到以下错误:

[flv @ 0x56da380] Failed to update header with correct duration.
[flv @ 0x56da380] Failed to update header with correct filesize.

YouTube 摄取器还抱怨输入流(来自 CENTOS 服务器)很慢并且流会缓冲。

我已经检查了虚拟 CENTOS 服务器可以访问的可用输出带宽。

  • 下载:57.12 Mbit/s
  • 上传:96.57 Mbit/s

我被迫使用更低的视频编码速度和输出尺寸

ffmpeg -re -i program.01.mp4 -f-flags +global_header -acodec libmp3lame -ac 1 -ar 44100 -ab 128k -s 640x360 -vcodec libx264 -pix_fmt yuv420p -g 60 -vb 425k -profile:v baseline -preset:v faster -r 30 -f flv "rtmp://a.rtmp.youtube.com/live2/xxxxx"

由于我使用的带宽超过了所需的带宽,所以我不明白问题可能出在哪里。

相关内容