FFMPEG на Youtube Live
У меня есть аудиопоток, я использую 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,
YouTube is not receiving enough video to maintain smooth streaming. As such, viewers will experience buffering
это вызывает буферизацию в выходном потоке.
Кто-нибудь знает, как это исправить?
Помощь будет оценена.
1 ответ
Так что у меня есть решение.
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
между "-loop 1" и изображением. Это работает, и я получаю хороший чистый поток высокого качества, который не буферизуется.
Надеялся, что это помогло!
Редактировать 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
Это исправляет последнюю проблему буферизации.
Последний код отличный, но я все еще получаю сообщение об ошибке "Разрешение видео" на YouTube Live с последней командой. Исправил, заменив:
yuv420p with yuvj420p
Я исследовал jpg с помощью ffprobe, и он вернул вышеуказанный yuv420p