从音频文件创建视频文件并从音频添加可视化

Sun*_*Sun 11 ffmpeg visualization sox data-visualization

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

llo*_*gan 15

音频可视化 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
Run Code Online (Sandbox Code Playgroud)

ffmpeg可以使用多个过滤器来可视化音频:avectorscopeshowspectrumshowwaves。然后,您可以使用overlay将它们放置在您想要的位置,然后使用drawtext添加文本。

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

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


Sun*_*Sun 12

以下是一些示例,用于获取音频文件,运行它ffmpeg,并根据 ffmpeg 中可用的一些过滤器创建视频。

例子:

光谱图

ffmpeg -i song.mp3 -filter_complex showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt -y -acodec copy video.mp4
Run Code Online (Sandbox Code Playgroud)

光谱图

矢量图

ffmpeg -i song.mp3 -filter_complex avectorscope=s=320x240 -y -acodec copy video.mp4
Run Code Online (Sandbox Code Playgroud)

矢量示波器

缩放曼德勃罗:

ffmpeg -i song.mp3 -f lavfi -i mandelbrot=s=320x240 -y -acodec copy video.mp4
Run Code Online (Sandbox Code Playgroud)

(截图丢失)

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