【发布时间】:2020-11-24 12:32:55
【问题描述】:
我有一个视频,我想从头到尾剪掉一部分。我想应用一些淡入/淡出,并添加一些文本。
所以,我想出了以下语法:
-ss 10 -to 40
-i "D:\DATA\Software\VideoProcessor_Files\20171015 Zelhem Tandem Frans met Mirthe.MP4"
-loop 1 -i "Input_Files\logo maurik large.png"
-loop 1 -i "Input_Files\logo maurik small.png"
-filter_complex "
color=0x7F7F7F@0.95:1920x1080[grey_for_fade_out];
[grey_for_fade_out]fade=t=out:st=12:d=2:alpha=1[grey_fade_out];
[0:v][grey_fade_out]overlay[video_grey_fade_out];
color=0x7F7F7F@0.95:1920x1080[grey_for_fade_in];
[grey_for_fade_in]fade=t=in:st=37:d=2:alpha=1[grey_fade_in];
[video_grey_fade_out][grey_fade_in]overlay[video_grey_fade_out_in];
[1:v]fade=t=out:st=13:d=2:alpha=1[over];
[over]scale=iw/1.5:-1[scaled];
[video_grey_fade_out_in][scaled]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/10[video_grey_fade_out_in_logo];
[1:v]fade=t=in:st=36:d=2:alpha=1[over2];
[over2]scale=iw/1.5:-1[scaled2];
[video_grey_fade_out_in_logo][scaled2]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2[video_grey_fade_out_in_logo2];
[2:v]colorchannelmixer=aa=0.5,fade=t=in:st=14:d=2:alpha=1,fade=t=out:st=35:d=2:alpha=1[over3];
[over3]scale=iw/10:-1[scaled3];
[video_grey_fade_out_in_logo2][scaled3]overlay=10:10[video_complete];
[video_complete]drawtext=fontfile=Input_Files/Sansation-Bold.ttf:text='Tandemvlucht met Mirthe':fontsize=96:fontcolor=white:alpha='if(lt(t,11),1,(2-(t-11))/2)':x=(w-text_w)/2:y=((h-text_h)/2)+125,drawtext=fontfile=Input_Files/Sansation-Bold.ttf:text='Zeddam':fontsize=96:fontcolor=white:alpha='if(lt(t,11),1,(2-(t-11))/2)':x=(w-text_w)/2:y=((h-text_h)/2)+250,drawtext=fontfile=Input_Files/Sansation-Bold.ttf:text='4 augustus 2020':fontsize=96:fontcolor=white:alpha='if(lt(t,11),1,(2-(t-11))/2)':x=(w-text_w)/2:y=((h-text_h)/2)+375,drawtext=fontfile=Input_Files/Sansation-Bold.ttf:text='Ook een keer meevliegen?':fontsize=96:fontcolor=white:alpha='if(lt(t,37),0,(t-37)/2)':x=(w-text_w)/2:y=((h-text_h)/6),drawtext=fontfile=Input_Files/Sansation-Bold.ttf:text='Of bel 085 - 049 55 69':fontsize=96:fontcolor=white:alpha='if(lt(t,37),0,(t-37)/2)':x=(w-text_w)/2:y=((h-text_h)/2)+350"
-preset medium
-crf 18
-c:a copy
-y ".\Output_Files\Video\Zeddam\2020-08-04\Mirthe\27ed390a-8497-4550-b93f-4f87d9f2c9f0\MP_Tandemvlucht met_Mirthe_Zeddam_2020-08-04.mp4"
我很确定这在过去是有效的,但现在 FFmpeg 只是继续无休止地处理。如果我然后停止 FFmpeg 进程,并查看生成的文件,我会看到最后一帧(在指定时间段结束时)只是继续复制。
FFmpeg 控制台输出中的 drop counter 在指定周期结束时也开始增加:
frame= 987 fps= 15 q=-1.0 Lsize= 31357kB time=00:00:41.04 bitrate=6259.0kbits/s dup=0 drop=10 speed=0.644x
我有点迷失为什么这不再起作用了。我可能同时升级了 FFmpeg 可执行文件。也许我的语法是/不正确,但我相信它确实有效。
它必须在复杂过滤器中,因为当我删除它时,它可以正常工作。 它不在复杂过滤器的 drawtext 部分,因为当我删除它时它仍然会发生。而当我只做drawtext时,FFmpeg会在指定时间正确停止。
我试过了,但还是会出现:
-filter_complex "
color=0x7F7F7F@0.95:1920x1080[grey_for_fade_out];
[grey_for_fade_out]fade=t=out:st=12:d=2:alpha=1[grey_fade_out];
[0:v][grey_fade_out]overlay[video_grey_fade_out];
color=0x7F7F7F@0.95:1920x1080[grey_for_fade_in];
[grey_for_fade_in]fade=t=in:st=37:d=2:alpha=1[grey_fade_in];
[video_grey_fade_out][grey_fade_in]overlay"
同样如此,它仍然会发生:
-filter_complex "
[1:v]fade=t=out:st=13:d=2:alpha=1[over];
[over]scale=iw/1.5:-1[scaled];
[0:v][scaled]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/10[video_grey_fade_out_in_logo];
[1:v]fade=t=in:st=36:d=2:alpha=1[over2];
[over2]scale=iw/1.5:-1[scaled2];
[video_grey_fade_out_in_logo][scaled2]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2[video_grey_fade_out_in_logo2];
[2:v]colorchannelmixer=aa=0.5,fade=t=in:st=14:d=2:alpha=1,fade=t=out:st=35:d=2:alpha=1[over3];
[over3]scale=iw/10:-1[scaled3];
[video_grey_fade_out_in_logo2][scaled3]overlay=10:10"
我只是不明白。我所有的淡入/淡出似乎都在指定范围内:
- fade=t=out:st=12:d=2:从 12 秒开始,持续 2 秒。这在 14 秒处结束,小于 40 秒。
- fade=t=in:st=37:d=2:从 37 秒开始,持续 2 秒。这在 39 秒处结束,小于 40 秒。
- fade=t=out:st=13:d=2:从 13 秒开始,持续 2 秒。这在 15 秒时结束,小于 40 秒。
- fade=t=in:st=36:d=2:从 36 秒开始,持续 2 秒。这在 38 秒处结束,小于 40 秒。
就像某些序列没有正确结束,导致 FFmpeg 继续。
【问题讨论】:
-
这个问题跑题了。拨打tour 了解原因。
-
我想我明白你的意思了。我现在添加了更多我的研究。
-
向离题的问题添加细节并不会神奇地使其成为话题。见help center。
-
也许询问超级用户或“av stackexchange”。知道哪个旧版本确实有效会很有趣......
标签: windows ffmpeg video-editing