web-dev-qa-db-ja.com

FFMPEGからYoutubeLiveへ

私はオーディオストリームを持っています。ffmpegを使用して、次のコマンドで背景として画像を使用してYouTubeライブにストリーミングします。

ffmpeg -loop 1 -i x.jpg -i http://xxx.xxx.xxx.xxxx:5305/stream -c:a aac -s 1280x720 -ab 128k -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/xxxxx

しかし、私はユーチューブで次のメッセージを受け取っています、

YouTube is not receiving enough video to maintain smooth streaming. As such, viewers will experience bufferingこれにより、出力ストリームにバッファリングが発生します。

誰もがそれを修正する方法を知っていますか?

助けていただければ幸いです。

6
Vishnu Prassad

だから私は解決策を持っています。

ffmpeg -re -loop 1 -framerate 2 -i test1.jpg -i https://xxxxxxx:8443/live.ogg -c:a aac -s 2560x1440 -ab 128k -maxrate 2048k -bufsize 2048k -framerate 30 -g 60 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/xxxxxxxxxxxxx

重要な部分は

-re

バッファリングの問題を扱う最初に。
そうして

-フレームレート2

「-loop1」と画像の間。これは機能し、バッファリングしないクリーンで高品質のストリームを取得します。

これがお役に立てば幸いです。

編集1

ffmpeg -re -loop 1 -framerate 2 -i test1.jpg -i https://xxxxxxxxxxx:8443/live.ogg -c:a aac -s 2560x1440 -ab 128k -vcodec libx264 -pix_fmt yuv420p -maxrate 2048k -bufsize 2048k -framerate 30 -g 2 -strict experimental -f flv rtmp://a.rtmp.youtube.com/live2/xxxxxxxxxxxxx

わかりました。この更新されたバージョンでは、ストリームに関するほとんどすべての問題が修正されるはずです。

-vcodec libx264 -pix_fmt yuv420p

H.264コーデックスに変更されましたその問題を修正しました

-g 2

これにより、最終的なバッファリングの問題が修正されます。

2
Jonese1234

最後のコードは優れていますが、最新のコマンドを使用したYouTubeLiveの「ビデオ解像度」に関するエラーメッセージが表示されます。私はそれを置き換えることによってそれを修正しました:

yuv420p with yuvj420p

Ffprobeでjpgをプローブすると、上記のyuv420pが返されました

1
user43964