FFMPEG YouTube直播太快了

时间:2017-04-06 12:15:59

标签: video youtube ffmpeg streaming

所以我按如下方式将视频和音频流式传输到YouTube

背景

1.首先我将图形GIF转换为MP4文件

ffmpeg -f gif -i graphic.gif -c:v libx264 -pix_fmt yuv420p -vf scale=1280:-1 temp.mp4


2.然后我在MP4上叠加带有文字的PNG

ffmpeg -i temp.mp4 -i overlay.png -filter_complex "overlay=10:10" '.$graphicsPath.'/graphic.mp4


3.然后我开始播放视频流并使用以下代码将其与音频相结合(sources.txt只是一个连续列表*)

ffmpeg -f concat -i sources.txt -i music.mp3 \
    -c:v libx264 -c:a aac -shortest -deinterlace \
    -pix_fmt yuv420p -preset '.$encoding.' -r 30 -g 60 -b:v 2500k \
    -acodec libmp3lame -ar 44100 -threads 6 -qscale 3 -b:a 712000 \
    -maxrate 800k -bufsize 1400k \
    -f flv rtmp://a.rtmp.youtube.com/live2/KEY


4.流结束后,代码重新开始播放新歌,以模仿247流。


问题

所以我遇到的问题是它看起来流速太快了。它与缓冲问题相反,缓冲区太长了(就像在打开流时第一个完成时缓冲的完整歌曲一样)

有谁知道如何限制输出?我尝试使用maxratebufsize,但没有真正的结果。


* sources.txt示例 file' graphic.mp4'
file' graphic.mp4'
file' graphic.mp4'
file' graphic.mp4'
file' graphic.mp4'
file' graphic.mp4'
等等

1 个答案:

答案 0 :(得分:2)

Ffmpeg过程输入尽可能快。要将其减慢到实时,请添加' -re'流式传输到rtmp时标记