我想达到这个结果(在视频顶部放置带有渐变或任何图片填充的文本): 所以我决定制作渐变图片: 然后使用色度键技术将其转换为这个(使用透明背景): 然后将其放在视频上。
这是代码ffmpeg-python
:
font_path = 'fonts/my_font.ttf'
input_video = ffmpeg.input('vid01.mp4')
split = input_video.filter_multi_output('split')
split_main = split[0]
split_txt_bg = split[1]
text_bg_black = ffmpeg.filter(text_bg, 'eq', brightness=-1000, saturation=0) # generate black bg from video input
text_mask = ffmpeg.filter(text_bg_black, 'drawtext', text='some text', fontcolor='0xFFFFFF', fontsize=85, x='(w-text_w)/2', y='68-(text_h/2)', fontfile=font_path) #draw text
text_mask_transparent = ffmpeg.filter(text_mask, 'colorkey', color='0xFFFFFF', similarity=0.45, blend=0.1)
text_on_bg = ffmpeg.filter([fill_gradient_gold, text_mask_transparent], 'overlay', x='(W-w)/2', y='(H-h)/2')
text = ffmpeg.filter(text_on_bg, 'colorkey', color='0x000000', similarity=0.45, blend=0.01)
comp1 = ffmpeg.filter([split_main, text], 'overlay', x='(W-w)/2', y='(H-h)/2')
comp.output('vid01_comp1.mp4').overwrite_output().run()
该解决方案有效,但存在问题:
- 在最后它降低了原始渐变图片的亮度,我根本不想要
- 它似乎并不优雅(因为色度键控解决方案)
是否可以制作一个 alpha 蒙版,drawtext
然后用它来切割渐变?
如果您提供答案会更好,ffmpeg-python
因为我是新手,我很难将命令行转换ffmpeg
为ffmpeg-python
,谢谢!
我也无法获得如何将生成的视频comp1
与音乐文件混合,请帮助。