使用FFmpeg创建静音视频和黑屏视频

时间:2017-09-22 13:36:46

标签: ffmpeg

我尝试使用FFmpeg从本地mp4文件生成以下内容:

  • 没有音频的原始视频的副本
  • 带有音频但没有视觉效果的原始视频的副本(黑屏代替)。该文件也需要采用mp4格式。

阅读完文档后,我正在努力使终端命令正确。要删除音频,我试过这个命令没有任何成功:

ffmpeg -i file.mp4 -map 0:0 -map 0:2 -acodec copy -vcodec copy

有人可以指导我如何实现这个目标吗?

2 个答案:

答案 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

color source filter

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是放置在视频顶部的黑色壁纸,但应该有更好的方法来完全删除帧,您可以提取音频,然后创建一个新的视频,音频作为背景