我正在开发一个 24/7 音乐流媒体频道。此脚本应bg.mp4
循环播放并播放文件夹中的 mp3 文件mp3
。目前,循环播放 mp4 文件有效,但没有播放音频。
这是我当前的脚本:
ffmpeg -loglevel info -y -re \
-re -stream_loop -1 -i bg.mp4 \
-f concat -safe 0 -i <((for f in ./mp3/*.mp3; do path="$PWD/$f"; echo "file ${path@Q}"; done) | shuf) \
-c:v libx264 -preset veryfast -b:v 3000k -maxrate 3000k -bufsize 6000k \
-framerate 25 -video_size 1280x720 -vf "format=yuv420p" -g 50 -shortest -strict experimental \
-c:a aac -b:a 128k -ar 44100 \
-f flv rtmp://a.rtmp.youtube.com/live2/
运行 ffmpeg 版本 4.4.2-0ubuntu0.22.04.1
我对 ffmpeg 还比较陌生,任何关于解决这个问题的提示都很有用。
我的输出日志:https://pastebin.com/aVbsWwgF
========= 更新 =========
经过一段时间的研究,我终于通过使用地图使它工作起来:-map 0:v:0 -map 1:a:0
最终代码:
ffmpeg -y -re \
-re -stream_loop -1 -i bg.mp4 \
-f concat -safe 0 -i <((for f in ./mp3/*.mp3; do path="$PWD/$f"; echo "file ${path@Q}"; done) | shuf) \
-c:v libx264 -preset veryfast -b:v 3000k -maxrate 3000k -bufsize 6000k \
-framerate 25 -video_size 1280x720 -vf "format=yuv420p" -g 50 -shortest -strict experimental \
-c:a aac -b:a 128k -ar 44100 -map 0:v:0 -map 1:a:0 \
-f flv rtmp://a.rtmp.youtube.com/live2/