Audio FFMPEG:在组合多个过滤器时指定输出流类型
我目前有3个独立的Audio FFMPEG:在组合多个过滤器时指定输出流类型,audio,video,ffmpeg,Audio,Video,Ffmpeg,我目前有3个独立的ffmpeg命令,它们执行以下操作: 在视频上覆盖水印:ffmpeg-i samplegreen.webm-i foregrounds/myimage.png-r 30-filter_complex“Overlay=(W-W)/2:H-H”-af“adelay=700”输出。mp4 将1)的结果叠加到海滩视频上:ffmpeg-i backgrounds/beachsonemp4.mp4-i output.mp4-filter_complex“[1:v]chromakey=0x0
ffmpeg
命令,它们执行以下操作:
ffmpeg-i samplegreen.webm-i foregrounds/myimage.png-r 30-filter_complex“Overlay=(W-W)/2:H-H”-af“adelay=700”输出。mp4
ffmpeg-i backgrounds/beachsonemp4.mp4-i output.mp4-filter_complex“[1:v]chromakey=0x005d0b:0.1485:0.03[ckout];[0:v][ckout]Overlay[o]”-map[o]-map 1:a-shortest somefolder/sample_video.mp4
ffmpeg-i somefolder/sample_video.mp4-i backgrounds/beachsonemp4.mp3-filter_complex'[0:a][1:a]amerge=inputs=2[a]'-map 0:v-map'[a]'-c:v copy-ac 2-shortest another folder/sample_video.mp4
ffmpeg -i samplegreen.webm -i foregrounds/myimage.png -r 30 -i backgrounds/beachsunsetmp4.mp4 -i backgrounds/beachsunsetmp4.mp3 -filter_complex \
"[0]overlay=(W-w)/2:H-h[output_1]; \
[output_1]chromakey=0x005d0b:0.1485:0.03[ckout]; \
[2:v][ckout]overlay[output_2]; \
[output_2][3:a] amerge=inputs=2 [output_3]" \
-af "adelay=700" -map [output_3] shortest final.mp4
它失败,出现以下错误(已解析的\u叠加\u 2'过滤器输出焊盘0(视频)和已解析的\u叠加\u 3'过滤器输入焊盘0(音频)
):
所有这些都表明。。。有没有一种方法可以指定我想使用前面过滤器输出的音频流?或者用其他方法将所有这些过滤器组合成一个命令
谢谢
任何帮助都将不胜感激 除concat等少数过滤器外,过滤器只能接收视频输入或音频输入
这是联合指挥部
ffmpeg \
-i samplegreen.webm \
-i foregrounds/myimage.png \
-i backgrounds/beachsunsetmp4.mp4 \
-i backgrounds/beachsunsetmp4.mp3 \
-filter_complex \
"[0][1]overlay=(W-w)/2:H-h,chromakey=0x005d0b:0.1485:0.03[ckout]; \
[2][ckout]overlay=shortest=1[v]; \
[0]adelay=700:all=1[0a]; \
[0a][3]amerge=inputs=2[a]" \
-map '[v]' -map '[a]' \
-shortest -r 30 -ac 2 \
output.mp4
谢谢你!现在唯一的问题是,视频长度为33秒,而单独执行所有命令时,视频长度仅为13秒。有什么想法吗?谢谢你的快速回复,这真的帮了我很大的忙!修改了最后的过度担心,因为反应太晚,但这起作用了!再次感谢!
[matroska,webm @ 0x7fecca000000] Invalid stream specifier: output_2:a.
Last message repeated 1 times
Stream specifier 'output_2:a' in filtergraph description [0]overlay=(W-w)/2:H-h[output_1]; [output_1]chromakey=0x005d0b:0.1485:0.03[ckout]; [2:v][ckout]overlay[output_2]; [output_2:a][3:a] amerge=inputs=2 [output_3] matches no streams.
ffmpeg \
-i samplegreen.webm \
-i foregrounds/myimage.png \
-i backgrounds/beachsunsetmp4.mp4 \
-i backgrounds/beachsunsetmp4.mp3 \
-filter_complex \
"[0][1]overlay=(W-w)/2:H-h,chromakey=0x005d0b:0.1485:0.03[ckout]; \
[2][ckout]overlay=shortest=1[v]; \
[0]adelay=700:all=1[0a]; \
[0a][3]amerge=inputs=2[a]" \
-map '[v]' -map '[a]' \
-shortest -r 30 -ac 2 \
output.mp4