我尝试将音频与视频混合,并使用此代码添加水印:
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