FFMPEG到Youtube Live

时间:2017-04-24 11:05:58

标签: video ffmpeg youtube video-streaming live-streaming

我有一个音频流,即时通讯使用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 这会导致输出流中的缓冲。

任何人都知道如何解决它?

帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

所以我有一个解决方案。

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

在开始处理缓冲问题。
那么

  

-framerate 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

Ok所以这个更新版本应该解决几乎所有流的问题。

  

-vcodec libx264 -pix_fmt yuv420p

更改为H.264 Codex修复了该问题

  

-g 2

这解决了最终的缓冲问题。

答案 1 :(得分:0)

最后一个代码非常出色,但是我仍然使用最新命令在youtube Live上收到有关“视频分辨率”的错误消息。我通过替换来解决它:

yuv420p with yuvj420p

我用ffprobe探测了jpg,并返回了上面的yuv420p