这个ffmpeg命令优化了吗?
我需要拍摄一段视频,添加一些纯文本,然后在不同的时间、位置和持续时间添加一些旋转文本。我想以最有效的方式使用处理器电源这将运行20000次(是的,真的,我们正在为美国的学生个性化一个视频)。这就是我最后想到的:这个ffmpeg命令优化了吗?,ffmpeg,Ffmpeg,我需要拍摄一段视频,添加一些纯文本,然后在不同的时间、位置和持续时间添加一些旋转文本。我想以最有效的方式使用处理器电源这将运行20000次(是的,真的,我们正在为美国的学生个性化一个视频)。这就是我最后想到的: 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
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-y-i INPUT.mp4-filter\u complex
“drawtext=enable='between(t,14,16)':fontfile=tahoma.ttf:fontsize=54:fontcolor=green:x=10:y=text\u 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\',
drawtext=enable='between(t,99104)':fontfile=tahoma.ttf:fontsize=28:fontcolor=green:x=480:y=text\u 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\',
drawtext=enable='between(t,180186)':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=褧rotated=111,format=111,color=111,color=1111:;
[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试验.mp4
这是不是像它将要得到的那样优化?我认为ffmpeg已经可以基于计算机的处理器处理线程了,所以没有必要去搞乱它。所有处理都将在AWS虚拟机上完成
旋转文本才是真正减慢速度的原因
有什么想法吗?明天我可以提供更多建议,但请使用透明画布,跳过色度/颜色键。另外,使用enable进行覆盖和每帧跳过评估。@Mulvya-我没有完全使用你的示例,但你让我走上了正确的道路。我不知道为什么我以前没有想到它。可能是因为我仍在学习ffmpeg,一周前还不知道那么多。:)我创建了一个1280x720PNG文件,它只是一个空白的透明文件。因此,我没有创建画布,而是加载png,在其上书写,然后旋转输出。因为我从不保存png,所以我可以重用它。我想我从1400秒到了<300秒,几乎缩短了20分钟。ffmpeg-y-I INPUT.mp4-I transparent.png-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=:text='Dana Scully'[text];[1:v]drawtext=fontfile=tahoma.ttf:fontsize=16:fontcolor=purple:x=(w-text_w)/2:y=(h-text_h)/2:text='by',[finalfive];[text][finalfive]overlay=enable:x='if(gte(t,134),(if(lte(t,137),20,NAN)):y=100[out];[out]scale=iw*.25:-1”-crf 20 test.mp4I明天可以提供更多建议,但使用透明画布,跳过色度/颜色键。另外,使用enable进行覆盖和每帧跳过评估。@Mulvya-我没有完全使用你的示例,但你让我走上了正确的道路。我不知道为什么我以前没有想到它。可能是因为我仍在学习ffmpeg,一周前还不知道那么多。:)我创建了一个1280x720PNG文件,它只是一个空白的透明文件。因此,我没有创建画布,而是加载png,在其上书写,然后旋转输出。因为我从不保存png,所以我可以重用它。我想我从1400秒到了<300秒,几乎缩短了20分钟。ffmpeg-y-I INPUT.mp4-I transparent.png-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=:text='Dana Scully'[text];[1:v]drawtext=fontfile=tahoma.ttf:fontsize=16:fontcolor=purple:x=(w-text_w)/2:y=(h-text_h)/2:text='by',[finalfive];[text][finalfive]overlay=enable:x='if(gte(t,134),(if(lte(t,137),20,NAN)):y=100[out];[out]scale=iw*.25:-1”-crf 20 test.mp4