ffmpeg常使用的命令

发布于:2024-04-24 ⋅ 阅读:(15) ⋅ 点赞:(0)

1. mp3转wav

ffmpeg -i file.mp3 -acodec pcm_s16le -ar 16k -ac 1 file.wav < /dev/null

< /dev/null 是一种 shell 中的输入重定向操作符。它的作用是将空输入(即空文件)传递给某个命令,以确保命令不会等待输入而直接执行。这在某些情况下可以用来解决一些特定的问题。

在 Unix/Linux 系统中,/dev/null 是一个特殊的设备文件,它相当于一个黑洞,所有写入它的数据都会被丢弃,读取它则会得到空。

在ffmpeg等命令中,有时会用到 < /dev/null 这样的输入重定向,目的是确保命令在执行时不会等待用户输入。这在批处理或自动化脚本中特别有用,因为有些命令可能会因为等待用户输入而造成脚本停滞或无法继续执行。

例如,如果你在使用ffmpeg命令进行批量处理,而某些情况下ffmpeg可能会尝试等待输入(比如需要输入确认是否覆盖文件等),但你的脚本并不希望等待用户输入,这时可以使用 < /dev/null 来确保命令不会阻塞等待输入,而是直接执行默认操作或跳过需要用户确认的部分。

总之,< /dev/null 是一种常用的技巧,用来避免命令因等待输入而导致脚本无法自动化执行的问题。

2. mp4转wav 同mp3

指定采样率为16000 Hz、16位深度、单声道:

ffmpeg -i input.mp4 -acodec pcm_s16le -ar 16000 -ac 1 output.wav < /dev/null
  • -i input.mp4 指定输入文件为input.mp4。
  • -acodec pcm_s16le 指定音频编解码器为16位的PCM(pulse-code modulation)编码。
  • -ar 16000 指定采样率为16000 Hz。
  • -ac 1 指定声道数为1,即单声道。
  • output.wav 指定输出文件为output.wav。

这个命令会将输入的MP4文件转换为WAV格式,并按照指定的采样率、深度和声道数进行设置。

3. ffprob 只显示音频时长信息,不显示其他ffmpeg执行信息

ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 MP3.mp3

chatgpt
这条命令使用了FFprobe工具来获取MP3音频文件的持续时长(duration)。下面是对命令中各部分的解释:

  • ffprobe: FFprobe是FFmpeg多媒体框架的一部分,用于分析多媒体文件的信息。
  • -v error: 设置输出级别为错误级别,这意味着FFprobe只会输出错误信息,不会输出其他信息。
  • -show_entries format=duration: 指定要显示的条目(entries),这里是显示格式(format)中的持续时长(duration)信息。
  • -of default=noprint_wrappers=1:nokey=1: 设置输出格式,这里是指定输出为默认格式,且不显示包装器(wrappers),不显示键(key)。
  • MP3.mp3: 指定要分析的MP3音频文件,这里假设文件名为MP3.mp3。

综合起来,这条命令的作用是通过FFprobe工具分析MP3音频文件MP3.mp3,并仅输出该文件的持续时长信息,而不显示其他任何信息。

4. mp4转wav同时导出字幕

FFmpeg 的 -map 选项来指定要抽取的流,其中音频流通常是 0:a,字幕流通常是 0:s。
MP4 文件转换为音频文件(WAV 格式)并抽取字幕(SRT 格式):

ffmpeg -i input.mp4 -vn -acodec pcm_s16le -ar 16000 output.wav -map 0:s:0 subtitles.srt

解释一下这个命令:

  • -i input.mp4:指定输入的 MP4 文件。
  • -vn:禁止视频流输出,只处理音频。
  • -acodec pcm_s16le -ar 44100:指定音频编解码器为16位PCM,采样率为16000Hz,生成的是WAV格式的音频文件。
  • output.wav:指定输出的音频文件名。
  • -map 0:s:0:指定抽取输入文件的第一个字幕流。
  • subtitles.srt:指定输出的字幕文件名,这里是SRT格式。

通过这个命令,FFmpeg 会将输入的 MP4 文件转换为音频文件(WAV 格式),同时抽取第一个字幕流并保存为 SRT 格式的字幕文件。你可以根据需要修改命令中的选项来处理特定的音频流和字幕流。