【发布时间】:2018-10-23 09:37:07
【问题描述】:
我必须在视频上运行 8 到 17 个命令才能添加一些叠加文本和叠加图像。
我的问题是实际上我正在使用一个复杂的解决方案:我获取原始视频,添加一些文本,获取输出,添加更多文本,获取输出,添加图像,...等等。
这个过程真的很慢,将所有内容添加到 2 分钟的视频中大约需要 20 分钟(每次迭代 1-2 分钟)。
这些是我的命令的一些示例。有没有办法将它们全部连接成一个?
在两个时间戳之间添加一行文本
-i "video.mp4" -filter_complex "[0]split[base][text];[text]drawtext=fontfile=Arial.ttf:text='Some text':fontcolor=white:fontsize=32:box=1: boxcolor=black@0.5:boxborderw=5:x=(w-text_w)/2:y=(h-text_h)/2 - 15,format=yuva444p,fade=t=in:st=6:d=2:alpha=1,fade=t=out:st=19:d=2:alpha=1[subtitles]; [base][subtitles]overlay" output_text1.mp4
在相同的两个时间戳之间添加另一行文本
-i "output_text1.mp4" -filter_complex "[0]split[base][text];[text]drawtext=fontfile=Arial.ttf:text='some more text':fontcolor=white:fontsize=32:box=1: boxcolor=black@0.5:boxborderw=5:x=(w-text_w)/2:y=(h-text_h)/2 + 15,format=yuva444p,fade=t=in:st=6:d=2:alpha=1,fade=t=out:st=19:d=2:alpha=1[subtitles]; [base][subtitles]overlay" output_text2.mp4
在文字后添加第一张图片叠加层
-i "output_text2.mp4" -loop 1 -t 1 -i "1.png" -filter_complex "[1:v]format=yuva422p,scale=1115x1980,setsar=1/1,pad=1.5*iw:1.5*ih:(ow-iw)/2:(oh-ih)/2:color=black@0,zoompan=z='min(zoom+0.0005,1.5)':s=223x396:d=475:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)',fade=in:st=22:d=3.8:alpha=1,fade=out:st=37:d=3.8:alpha=1[im];[0][im]overlay=(main_w-overlay_w)/2:(main_h - overlay_h)/2:shortest=1" -pix_fmt yuv420p -c:a copy output_0.mp4
在第一个图像叠加层之后添加第二个图像叠加层
-i "output_0.mp4" -loop 1 -t 1 -i "2.jpg" -filter_complex "[1:v]format=yuva422p,scale=1490x1965,setsar=1/1,pad=1.5*iw:1.5*ih:(ow-iw)/2:(oh-ih)/2:color=black@0,zoompan=z='min(zoom+0.0005,1.5)':s=298x393:d=475:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)',fade=in:st=41:d=3.8:alpha=1,fade=out:st=56:d=3.8:alpha=1[im];[0][im]overlay=(main_w-overlay_w)/2:(main_h - overlay_h)/2:shortest=1" -pix_fmt yuv420p -c:a copy output_1.mp4
有没有办法连接所有这些命令?或者是否有关于 concat 各种命令的指南?
谢谢!
【问题讨论】:
-
@tripleee 感谢您的链接!不幸的是,我这里已经有多个过滤器,问题在于将 sam 过滤器应用于多个图像或添加不同的叠加操作
标签: ffmpeg