FFMPEG ストリーミング出力が仮想サーバー上でドロップされる

FFMPEG ストリーミング出力が仮想サーバー上でドロップされる

現在、FFMPEG を使用して仮想 CENTOS サーバーでストリーミングしています。次のスクリプトを使用して YouTube ライブにストリーミングします。

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 サーバーで 1 年以上ストリーミングしていましたが、技術的な問題は発生しませんでした。

仮想化サーバー上でまったく同じ 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"

必要以上の帯域幅にアクセスできるので、何が問題なのか理解できません。

関連情報