我正在尝试自动化一项每周执行的普通视频编辑任务。我想用melt
来做这件事。
假设我有视频a
、b
和c
。我想做以下事情:
- 从
a
、b
和c
中截取a1
、b1
和c1
- 将
a1
、b1
和c1
连接到单个视频中 - 在
a1
、b1
和c1
之间转换时,变黑/变黑1秒 - 将原声音乐应用于
a1
、b1
和c1
的级联输出,同时保留原始音频 - 随着
c1
逐渐变黑,淡出原声音乐(结束视频)
其中:
a
、b
和c
具有任意长度a
、b
和c
都是以每秒60帧拍摄的1080p视频a
、b
、c
、a1
、b1
和c1
都是.mp4
文件- 原声音乐是一个
.mp3
文件
这是我得到的最接近的:
#!/bin/sh
melt
colour:black out=59 $VIDEO1 in=0 out=600 -mix 60 -mixer luma
colour:black out=59 -mix 60 -mixer luma
colour:black out=59 $VIDEO2 in=0 out=600 -mix 60 -mixer luma
colour:black out=59 -mix 60 -mixer luma
colour:black out=59 $VIDEO3 in=0 out=600 -mix 60 -mixer luma
colour:black out=59 -mix 60 -mixer luma
-audio-track $AUDIO -transition mix
(在上面的例子中,我为相关文件和淡入/淡出时间使用了任意占位符。)
这成功地剪切并连接了具有动画过渡的a1
、b1
和c1
。但是:
如果
$AUDIO
比a1
、b1
和c1
的串联长度长,则在视频结束后继续播放音频(使用白色屏幕)。当
c1
淡出时(即视频结束时),原声音乐不会淡出。
据我所知,淡出原声音乐可能是通过"设置音量音频过滤器的动画"来实现的,但我没有成功尝试。
我应该尝试什么?
谢谢你的帮助。
对于#1,您需要为音频设置一个输出点。您有三个601帧剪辑(第零帧算作一帧),总共1803帧。所以出发=1802。
对于#2,您可以将音量过滤器应用于音轨的末尾,使其淡出。
请参阅音量滤波器的文档,以了解增益和结束参数:https://www.mltframework.org/plugins/FilterVolume/
#!/bin/sh
melt
colour:black out=59 $VIDEO1 in=0 out=600 -mix 60 -mixer luma
colour:black out=59 -mix 60 -mixer luma
colour:black out=59 $VIDEO2 in=0 out=600 -mix 60 -mixer luma
colour:black out=59 -mix 60 -mixer luma
colour:black out=59 $VIDEO3 in=0 out=600 -mix 60 -mixer luma
colour:black out=59 -mix 60 -mixer luma
-audio-track $AUDIO out=1802 -attach-track volume:0db end=-70db in=1703 out=1802
-transition mix in=0 out=1802