我是一家媒体公司的平面设计师,想要构建一个名称生成器。问题是,我希望标题具有动画效果,因此我在 After Effects 中制作了一个动画,并将其渲染为带有 Alpha 通道的
.mov
文件。我构建了一个简单的 GUI,用户可以在其中输入名称和副标题,然后单击带有 ''generate title''
的按钮。我现在希望输出文件也具有透明度,以便用户可以将标题导入到编辑软件中,但我只能弄清楚。背景始终为黑色(我将文件导入到 After Effects 中)。
我现在使用
ffmpeg
来生成输出文件,但我也尝试过moviepy和pygame。没有什么可以给我一个阿尔法通道。我现在用于 ffmpeg
的代码部分是:
def generate_video():
naam = name_entry.get()
ondertitel = subtitle_entry.get()
video_path = 'D:\\Werk\\NOORD\\TITELGENERATOR\\horizontaal-links.mov'
output_path = os.path.join(base_path, "output.mov")
# FFmpeg commando om tekst op video toe te voegen
command = [
'C:\\PATH_programs\\ffmpeg.exe', # absoluut pad naar ffmpeg
'-i', video_path,
'-c:v', 'prores_ks',
'-profile:v', 'hq', # kies een ProRes-profiel
'-bits_per_mb', '4000', # aantal bits per macroblock
'-alpha_bits', '16', # 16 bits alpha channel
'-vf', f"drawtext=text='{naam}':x=100:y=50:fontsize=24:fontcolor=white,drawtext=text='{ondertitel}':x=100:y=100:fontsize=24:fontcolor=white",
'-y', 'output.mov'
]
print("Uit te voeren commando:", ' '.join(command)) # Voor debugging
# Uitvoeren van het FFmpeg commando
subprocess.run(command)
]
我不是 ffmpeg 的 ProRes 专家,但我的理解是你必须将 -pix_fmt 选项设置为“yuva444p10le”才能利用 4444 色彩空间,这是 alpha 透明度所需的。 Prores 部分下有更多信息:https://trac.ffmpeg.org/wiki/Encode/VFX