Dam*_*841 3 video ffmpeg waveform
我希望从 .wav 文件和图片 .jpg 生成视频波形。我可以使用生成波形视频
ffmpeg -i input -filter_complex "[0:a]showwaves=s=1280x720:mode=line,format=yuv420p[v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy output.mkv
Run Code Online (Sandbox Code Playgroud)
但如何添加背景图片呢?
谢谢。
您需要将图像添加为另一个输入,然后可以使用过滤器之类的东西colorkey
使showwaves
可视化的背景透明,并使用过滤器将可视化和背景图像overlay
混合。showwaves
尝试类似的方法:
ffmpeg -i $audio -i $picture -filter_complex "[0:a]showwaves=s=1280x720:mode=line,colorkey=0x000000:0.01:0.1,format=yuva420p[v];[1:v]scale=1280:720[bg];[bg][v]overlay[outv]" -map "[outv]" -map 0:a -c:v libx264 -c:a copy output.mkv
Run Code Online (Sandbox Code Playgroud)
从你的出发点来分解差异:
colorkey=0x000000:0.01:0.1
将去除 生成的视频中的任何黑色showwaves
并使其透明。format=yuva420p
需要将两个视频流转换为相同的像素格式。[1:v]scale=1280:720[bg]
从输入 #1 获取视频,将其缩放以匹配我们的showwaves
大小,并命名输出[bg]
(背景)。您可以将其更改为例如scale=1280:-1
将一个维度缩放到 1280 并按比例缩放另一个维度,保持纵横比。[bg][v]overlay[outv]
正在获取静态图像视频[bg]
以及我们刚刚生成的视频流,showwaves
命名[v]
并覆盖它们,以便图像[1:v]
通过我们在 中键入的透明部分显示[v]
。输出被命名为[outv]
.-map
已更改为使用[outv]
(覆盖过滤器的输出)而不是[v]
(仅颜色键控showwaves
输出)作为输出中的视频源。 归档时间: |
|
查看次数: |
2657 次 |
最近记录: |