Windows FFmpeg在指定的时间后继续处理-至;

Windows FFmpeg在指定的时间后继续处理-至;,windows,ffmpeg,video-editing,Windows,Ffmpeg,Video Editing,我有一个视频,我想从开头到结尾都剪一部分。我想应用一些淡入淡出,并添加一些文本 因此,我提出了以下语法: -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_Fil

我有一个视频,我想从开头到结尾都剪一部分。我想应用一些淡入淡出,并添加一些文本

因此,我提出了以下语法:

-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控制台输出中的丢弃计数器也在指定时段结束时开始增加:

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"
同样,它仍然会发生:

-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"
我只是不明白。我的所有淡入/淡出似乎都在指定范围内:

  • 淡入淡出:st=12:d=2:从12秒开始,持续2秒。这将在14秒结束,小于40秒
  • 淡入度=t=in:st=37:d=2:从37秒开始,持续2秒。这将在39秒结束,小于40秒
  • 淡入淡出:st=13:d=2:从13秒开始,持续2秒。这将在15秒结束,小于40秒
  • 淡入度=t=in:st=36:d=2:从36秒开始,持续2秒。这将在38秒结束,这小于40秒
这就像某些序列没有正确结束,导致FFmpeg只是继续。

通过在输入参数之后,即在滤波器复合体之前移动“-ss 10-到40”来解决

然而,它现在确实需要相当长的一段时间才能真正开始处理

frame=    0 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
上面的语句在开始之前会被记录大约200次:

frame=    0 fps=0.0 q=0.0 size=       0kB time=00:00:00.02 bitrate=  16.0kbits/s speed=0.00021x    
frame=    0 fps=0.0 q=0.0 size=       0kB time=00:00:00.45 bitrate=   0.9kbits/s speed=0.00392x    
frame=    8 fps=0.1 q=0.0 size=       0kB time=00:00:00.81 bitrate=   0.5kbits/s dup=1 drop=0 speed=0.00704x    
frame=   16 fps=0.1 q=0.0 size=       0kB time=00:00:01.17 bitrate=   0.3kbits/s dup=1 drop=0 speed=0.0101x    
frame=   23 fps=0.2 q=0.0 size=       0kB time=00:00:01.45 bitrate=   0.3kbits/s dup=1 drop=0 speed=0.0125x    
frame=   30 fps=0.3 q=0.0 size=       0kB time=00:00:01.77 bitrate=   0.2kbits/s dup=1 drop=0 speed=0.0152x    
frame=   38 fps=0.3 q=0.0 size=       0kB time=00:00:02.09 bitrate=   0.2kbits/s dup=1 drop=0 speed=0.0178x    
frame=   45 fps=0.4 q=0.0 size=       0kB time=00:00:02.37 bitrate=   0.2kbits/s dup=1 drop=0 speed=0.0201x    
frame=   49 fps=0.4 q=0.0 size=       0kB time=00:00:02.56 bitrate=   0.1kbits/s dup=1 drop=0 speed=0.0216x    
frame=   54 fps=0.5 q=0.0 size=       0kB time=00:00:02.73 bitrate=   0.1kbits/s dup=1 drop=0 speed=0.023x    
frame=   59 fps=0.5 q=0.0 size=       0kB time=00:00:02.96 bitrate=   0.1kbits/s dup=1 drop=0 speed=0.0248x    
frame=   64 fps=0.5 q=23.0 size=       0kB time=00:00:03.16 bitrate=   0.1kbits/s dup=1 drop=0 speed=0.0263x    
frame=   70 fps=0.6 q=23.0 size=       0kB time=00:00:03.41 bitrate=   0.1kbits/s dup=1 drop=0 speed=0.0283x    
frame=   74 fps=0.6 q=23.0 size=     256kB time=00:00:03.58 bitrate= 584.8kbits/s dup=1 drop=0 speed=0.0296x    
frame=   79 fps=0.6 q=23.0 size=     256kB time=00:00:03.80 bitrate= 552.0kbits/s dup=1 drop=0 speed=0.0313x    

这个问题离题了。花点时间去了解原因。我想我明白你的意思了。我现在已经添加了更多的研究内容。为一个离题的问题添加细节并不能神奇地使它成为主题。请参阅。可能会询问超级用户或“av stackexchange”。知道哪一个旧版本能起作用是很有趣的。。。