运行多个FFmpeg命令

6

我正在使用以下ffmpeg命令将mp3转换为wav:

ffmpeg -i audio.mp3 -acodec libmp3lame -ab 64k -ar 16000 audio.wav

使用以下命令从audio.wav文件创建波形:

wav2png --foreground-color=ffb400aa --background-color=2e4562ff -o example4.png papa2.wav

我想知道如何运行多个命令?例如,当从.mp3转换为.wav完成后,再运行wav2png命令。

谢谢!

1个回答

16

你有几个选项:

选项1:使用&&

在Bash中,你可以使用一个and list来连接多个命令。每个命令将依次执行。当某个命令失败时,或所有命令成功执行后,and list将停止执行。

ffmpeg -i audio.mp3 audio.wav && wav2png -o output.png audio.wav
  • 当输出到WAV时,使用-acodec libmp3lame没有意义,因此我将其删除。

  • WAV忽略比特率选项,因此我删除了-ab

  • 你真的需要改变音频采样率(-ar)吗?已删除。

选项2:从ffmpegwav2png的管道传输

可以直接将来自ffmpeg的输出通过管道(pipe)传递到wav2png,而不必创建临时WAV文件:

ffmpeg -i audio.mp3 -f wav - | wav2png -o output.png /dev/stdin

选项3: 直接使用ffmpeg

最后的最佳选择是尝试showwavespic滤镜

输入图像描述

ffmpeg -i music.wav -filter_complex showwavespic=s=640x320 showwaves.png

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接