音频可视化ffmpeg

音频可视化ffmpeg

我最初的想法是将音频文件连同受音频启发的视频一起上传到 YouTube。特定的可视化可以采用不同的形式,例如频谱、频谱图或随音频变化的其他形式的可视化。我不熟悉 ffmpeg 或 sox 的所有功能,但我想知道我是否可以开箱即用地做这样的事情,或者将其作为一系列脚本与其他命令行实用程序一起使用。

答案1

音频可视化ffmpeg

使用 ffmpeg 进行音频可视化

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:H-h,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

ffmpeg可以使用多个过滤器来可视化音频:矢量示波器展示光谱, 和秀浪。然后你可以将它们放置在你想要的位置覆盖,然后使用绘制文本

在上面的例子中,音频是流已复制(重新混编)而不是重新编码。

FFmpeg Wiki:如何为 YouTube 和其他视频共享网站编码视频

答案2

下面是一些获取音频文件、运行它ffmpeg并基于 ffmpeg 中的某些过滤器创建视频的示例。

例子:

频谱图

ffmpeg -i song.mp3 -filter_complex showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt -y -acodec copy video.mp4

频谱图

矢量示波器

ffmpeg -i song.mp3 -filter_complex avectorscope=s=320x240 -y -acodec copy video.mp4

矢量示波器

缩放曼德布洛特:

ffmpeg -i song.mp3 -f lavfi -i mandelbrot=s=320x240 -y -acodec copy video.mp4

(截图缺失)

来源:[Libav-用户] ffmpeg showspectrum 到文件

答案3

我用的是这个:

ffmpeg -y -i audio.mp3 -loop 1 -i image.jpg -filter_complex "[1:v]crop=640:480:0:0,setsar=1[img]; [0:a]showwaves=mode=line:s=hd480:[email protected]|[email protected]:scale=sqrt,format=yuva420p[waves]; [img][waves]overlay=format=auto,drawtext=text='${NAME}':[email protected]:fontsize=30:font=Arvo:x=(w-text_w)/5:y=(h-text_h)/5[out]" -map "[out]" -map 0:a -pix_fmt yuv420p -b:a 360k -r:a 44100 -c:v libx264 -q:v 23 -preset ultrafast -c:a copy -shortest out.mkv

这是图像顶部的“驻波”效果,并带有叠加的文本(例如曲目名称)

所以我从 unsplash 中取出一张 JPG 图像,将其作为“image.jpg”放入文件夹中。然后我取出 audio.mp3 并将其与波形效果组合成 480p 视频。我想你可以将 480p 调整为高清。

[视觉效果插图

相关内容