我尝试使用FFmpeg从本地mp4文件生成以下内容:
阅读完文档后,我正在努力使终端命令正确。要删除音频,我试过这个命令没有任何成功:
ffmpeg -i file.mp4 -map 0:0 -map 0:2 -acodec copy -vcodec copy
有人可以指导我如何实现这个目标吗?
答案 0 :(得分:3)
您可以告诉它只使用-map
option为您提供所需的确切流。这会禁用每个流类型自动选择一个流的default stream selection behavior。
ffmpeg -i input.mp4 -map 0:v -c copy output.mp4
或者您可以依赖默认的流选择行为并排除某些流类型:
ffmpeg -i input.mp4 -an -c copy output.mp4
使用geq (General Equation) filter。这种方法很简单,因为它使用与input.mp4
相同的帧大小和帧速率。
ffmpeg -i input.mp4 -vf geq=0:128:128 output.mp4
ffmpeg -i input.mp4 -f lavfi -i color=c=black:s=640x480r=24 -map 1 -map 0:a -shortest output.mp4
您可以添加scale2ref filter以使色彩源过滤器与input.mp4
的视频大小相匹配,然后您不需要使用s=640x480
。
答案 1 :(得分:1)
要删除audio,您可以使用此功能:
ffmpeg -i file.mp4 -c copy -an file-nosound.mp4
注意-an
选项
-an(输出) 禁用录音。
要保留音频,但用黑屏“替换”视频,您可以这样做:
ffmpeg -i file.mp4 -i image.png -filter_complex overlay out.mp4
image.png
是放置在视频顶部的黑色壁纸,但应该有更好的方法来完全删除帧,您可以提取音频,然后创建一个新的视频,音频作为背景