使用FFmpeg的Overlay Video+Chroma Key功能后输出视频无声音的问题咨询
使用FFmpeg的Overlay Video+Chroma Key功能后输出视频无声音的问题咨询
你好呀,这个问题我之前也碰到过~ 你的抠绿+视频叠加逻辑是对的,但输出没声音的核心原因很简单:你的命令只给输出文件映射了处理后的视频流,完全没把原input.mp4里的音频流包含进去!
你看原命令里的 -map "[out]",这里的[out]是滤镜生成的视频流,而input.mp4自带的音频流根本没被指定加入输出,自然就听不到声音啦。给你两个实用的解决办法:
方法一:手动映射原视频的音频流
直接在原命令里加一个音频流映射参数,指定把input.mp4的音频流加入输出:
ffmpeg -i input.mp4 -i green.mp4 -filter_complex "[1:v]colorkey=0x3BBD1E:0.3:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" -map 0:a output.mp4
这里的0:a代表第一个输入文件(也就是input.mp4)的所有音频流,这样输出就会包含处理后的视频+原视频的音频了。如果input.mp4有多条音频轨道,还可以用0:a:0指定取第一条轨道,按需调整就行。
方法二:让FFmpeg自动选择流(更省心)
要是你不想手动写映射,也可以直接删掉-map "[out]"这个参数,FFmpeg会自动帮你选择最合适的流:
ffmpeg -i input.mp4 -i green.mp4 -filter_complex "[1:v]colorkey=0x3BBD1E:0.3:0.2[ckout];[0:v][ckout]overlay[out]" output.mp4
不过要注意:如果green.mp4本身也带音频,这种方式可能会把两个音频流都混进输出里,如果你只想要input.mp4的音频,还是方法一更稳妥。
备注:内容来源于stack exchange,提问作者alexdo
相关产品推荐
相关产品推荐

