所以我将视频和音频流如下所示

上下文

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只是一个concat列表*)
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示例
文件“graphic.mp4”
文件“graphic.mp4”
文件“graphic.mp4”
文件“graphic.mp4”
文件“graphic.mp4”
文件“graphic.mp4”
等等

最佳答案

ffmpeg进程输入尽快。要将其减慢到实时,请在流到rtmp时添加“-re”标志

关于video - FFMPEG YouTube直播速度太快,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43254967/

10-11 22:21
查看更多