Soxpipe道wav2png:相当于FFMpeg?

我有这个命令我需要作为我的服务器上的后台任务运行:

sox some-audio-file.foo -c 1 -t wav - | wav2png -w -o some-audio-file.png /dev/stdin 

但是我已经用所有正确的编解码器(这是一个考验和一半)自定义编译ffmpeg ,我宁愿避免安装sox ,不得不再次经历相同的考验。

所以我想知道,我可以使用ffmpegpipe道将audio转换为wav2png吗? 什么是等效的ffmpeg命令? 我一直在这个谷歌search了一段时间,没有任何我试过的工作。

select你的pipe道

未经testing的例子:

 ffmpeg -i audio.foo -ac 1 -f wav - | wav2png -o audio.png /dev/stdin 

或者,您可以使用UNIXpipe道访问协议 。

 ffmpeg -i audio.foo -ac 1 -f wav pipe: | wav2png -o audio.png /dev/stdin 

笔记

  • -ac 1被添加到缩混为单声道,因为目前使用wav2png 所有通道的最大值被使用 ,但是这个选项可能是多余的。

  • 您可以使用任何types的包含audio和ffmpeg可以解码的input。

  • 如果您只想输出特定频道,请使用-map_channel选项( 示例 )。

  • 简单地使用-而不是/dev/stdin可能工作,但我没有去尝试。

可视化audio

如果你想创build一个波形的video使用showwavesfilter 。

 ffmpeg -i audio.foo -filter_complex \ "[0:a]showwaves=mode=line,format=yuv420p[v]" \ -map "[v]" -map 0:a -c:a copy output.mp4 

或者使用filter的组合: 视频可视化音乐的截图

 ffmpeg -i input.mp3 -filter_complex \ "[0:a]avectorscope=s=640x518,pad=1280:720[vs]; \ [0:a]showspectrum=mode=separate:color=intensity:scale=cbrt:s=640x518[ss]; \ [0:a]showwaves=s=1280x202:mode=line[sw]; \ [vs][ss]overlay=w[bg]; \ [bg][sw]overlay=0:Hh,drawtext=fontfile=/usr/share/fonts/TTF/Vera.ttf:fontcolor=white:x=10:y=10:text='\"Song Title\" by Artist'[out]" \ -map "[out]" -map 0:a -c:v libx264 -preset fast -crf 18 -c:a copy output.mkv 

从如何编码YouTube和其他video共享站点的video 。