运行ffmpeg多个命令

Nik*_*iks 3 ffmpeg

我使用这个ffmpeg命令将mp3转换为wav:

ffmpeg -i audio.mp3 -acodec libmp3lame -ab 64k -ar 16000 audio.wav
Run Code Online (Sandbox Code Playgroud)

这个命令从audio.wav创建波形:

wav2png --foreground-color=ffb400aa --background-color=2e4562ff -o example4.png papa2.wav
Run Code Online (Sandbox Code Playgroud)

我很想知道,如何运行这个命令多个?例如,当完成从.mp3到.wav的转换时,请运行wav2png命令.

谢谢!

llo*_*gan 10

你有几个选择:

选项1:使用 &&

在Bash中,您可以使用和列表来连接命令.每个命令将一个接一个地执行.在和列表命令失败时将终止,或当所有命令成功执行.

ffmpeg -i audio.mp3 audio.wav && wav2png -o output.png audio.wav
Run Code Online (Sandbox Code Playgroud)
  • 使用-acodec libmp3lame输出到WAV毫无意义,所以我删除了它.

  • WAV忽略比特率选项,所以我删除了-ab.

  • 你真的需要改变音频率(-ar)吗?删除.

选项2:从管道ffmpegwav2png

您可以将输出ffmpeg直接传输到wav2png:而不是制作临时WAV文件:

ffmpeg -i audio.mp3 -f wav - | wav2png -o output.png /dev/stdin
Run Code Online (Sandbox Code Playgroud)

选项3:使用 ffmpeg

保存最后的最佳,你可以尝试showwavespic过滤器.

在此输入图像描述

ffmpeg -i music.wav -filter_complex showwavespic=s=640x320 showwaves.png
Run Code Online (Sandbox Code Playgroud)