我需要拍摄视频,添加一些纯文本,然后在不同的时间,地点和持续时间添加一些旋转的文本。我希望以最有效的方式使用处理器能力,这将运行20,000次(是的,真的,我们正在为U的学生个性化视频。)这是我最终提出的:
ffmpeg -y -i INPUT.mp4 -filter_complex
"drawtext=enable='between(t,14,16)':fontfile=tahoma.ttf:fontsize=54:fontcolor=green:x=10:y=text_h + 10:text='Dana Scully',
drawtext=enable='between(t,19,23)':fontfile=tahoma.ttf:fontsize=16:fontcolor=red:x=150:y=220:text='Dana Scully \<Dana.Scully\@fbi.gov\>',
drawtext=enable='between(t,99,104)':fontfile=tahoma.ttf:fontsize=28:fontcolor=green:x=480:y=text_h + 160:text='Dana Scully',
drawtext=enable='between(t,14,16)':fontfile=tahoma.ttf:fontsize=16:fontcolor=yellow:x=40:y=25:text='Dana Scully \<Dana.Scully\@fbi.gov\>',
drawtext=enable='between(t,180,186)':fontfile=tahoma.ttf:fontsize=88:fontcolor=green:x=20:y=430:text='Dana Scully'[text];
color=c=#111111:s=1280x720:d=1,format=yuv444p[colorbk];
[colorbk]drawtext=fontfile=tahoma.ttf:fontsize=16:fontcolor=purple:x=(w-text_w)/2:y=(h-text_h)/2:text='by',drawtext=fontfile=tahoma.ttf:fontsize=32:fontcolor=green:x=(w-text_w)/2:y=((h-text_h)/2)+50:text='Dana Scully',rotate=(-.5):ow=1280:oh=720:c=#111111,chromakey=#111111:similarity=0.01,format=yuva444p,colorkey=#111111:0.1[rotated];
[text][rotated]overlay=eval=frame:x='if(gte(t,134),(if(lte(t,137),20,NAN)), NAN)':y=100[out];[out]scale=iw*.25:-1"
-crf 20 test.mp4
这是否会像它将要获得的那样优化?我认为ffmpeg已经基于计算机的处理器处理线程,所以没有真正需要弄乱它。处理将全部在AWS VM上完成。
旋转文本真的会减慢速度。
有什么想法吗?