我使用以下命令行与ffmpeg一起将音轨添加到没有任何音轨的视频中。
ffmpeg -i final.mp4 -i soundtrack.mp3 -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 -shortest with_audio.mp4
我正在寻找一种方法,可以在视频结束时以3秒的速度淡出音量。音轨总是比视频长,但视频可以是任意长度。我发现的现有命令行需要指定何时开始/结束淡入淡出效果的确切时间。我正在寻找一种与视频长度无关的方式,我只是希望声音在视频结束前淡出为3s开始。
有没有办法用ffmpeg做到这一点?
非常感谢您的答案!
答案 0 :(得分:1)
ffprobe -v error -select_streams v:0 -show_entries stream=duration -of csv=p=0 input.mp4
然后将持续时间用作ffmpeg
命令中的变量。
ffmpeg -i input.mp4 -i soundtrack.mp3 -filter_complex "[1:a]afade=t=out:st=$(bc <<< "$duration-$fade"):d=$fade[a]" -map 0:v:0 -map "[a]" -c:v copy -c:a aac -shortest with_audio.mp4