Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个ffmpeg命令优化了吗?_Ffmpeg - Fatal编程技术网

这个ffmpeg命令优化了吗?

这个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

我需要拍摄一段视频,添加一些纯文本,然后在不同的时间、位置和持续时间添加一些旋转文本。我想以最有效的方式使用处理器电源这将运行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: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