将无音频的视频与音频和水印混合

将无音频的视频与音频和水印混合

我尝试将音频与视频混合,并使用此代码添加水印:

ffmpeg -i input.mp4 -i music.mp3 -i watermark.png \
    -filter_complex "[0:v]scale=1280:720;fps=25[v1];\
        [v1][2]overlay=x=main_w-overlay_w-(main_w*0.01):y=main_h-overlay_h-(main_h*0.01)[v2];\
        [v2]fade=t=out:st=$FADE_OUT_START:d=$FADE_OUT_DURATION[outv];\
        [outv][1:a]concat=n=2:v=0:a=1[v][a]" \
    -map "[v]" -map "[a]" -shortest \
    -preset slow -crf 18 \
    output.mp4

你好,有这个错误:

Cannot create the link fade:0 -> concat:0
Error initializing complex filters.
Invalid argument

多谢。

答案1

不要连接音频和视频,只需映射音频和视频:

ffmpeg -i input.mp4 -i music.mp3 -i watermark.png \
    -filter_complex "[0:v]scale=1280:720,setsar=1:1,fps=25[v1];\
        [v1][2]overlay=x=main_w-overlay_w-(main_w*0.01):y=main_h-overlay_h-(main_h*0.01)[v2]\
        ;[v2]fade=t=out:st=$FADE_OUT_START:d=$FADE_OUT_DURATION[v]" \
    -map "[v]" -map 1:a -shortest \
    -vcodec libx264 -preset slow -crf 18 -acodec copy \
    output.mp4

在 之前fps,它应该是,而不是;(因为它是简单的过滤器链)。
我添加了setsar=1:1(以防input.mp4宽高比不是 16:9)。
还建议明确设置视频编解码器和音频编解码器。


在上述情况下,自动映射也有效:

ffmpeg -y -i input.mp4 -i music.mp3 -i watermark.png -filter_complex "[0:v]scale=1280:720,setsar=1:1,fps=25[v1];[v1][2]overlay=x=main_w-overlay_w-(main_w*0.01):y=main_h-overlay_h-(main_h*0.01)[v2];[v2]fade=t=out:st=1:d=1" -shortest -vcodec libx264 -preset slow -crf 18 -acodec copy output.mp4

相关内容