FFMPEG 图像叠加视频:挂起

FFMPEG 图像叠加视频:挂起

跟进问题:我有一个相对复杂的脚本,它拍摄一段视频 ( mid.mov),在其上叠加一组图像,并将一段简介 ( intro.mov) 和结尾 ( outro.mov) 视频淡入淡出到其端点:

introDuration=5.63
outroDuration=7.08    
crossfadeDuration=1.0
introStartFade=4.63
midDuration=57.04
midStartFade=56.04

ffmpeg -i "intro.mov" -i "mid.mov" -i "outro.mov" -loop 1 -i "animation/middle_%2d.png" -filter_complex \
"[0:v]trim=0:$introStartFade,setpts=PTS-STARTPTS[introvideo1]; \
[0:v]trim=$introStartFade,setpts=PTS-STARTPTS[introvideo2]; \
[1:v]trim=0:$crossfadeDuration,setpts=PTS-STARTPTS[midvideo1]; \
[1:v]trim=$crossfadeDuration:$midStartFade,setpts=PTS-STARTPTS[midvideo2]; \
[1:v]trim=$midStartFade:,setpts=PTS-STARTPTS[midvideo3]; \
[2:v]trim=0:$crossfadeDuration,setpts=PTS-STARTPTS[outrovideo1]; \
[2:v]trim=$crossfadeDuration:,setpts=PTS-STARTPTS[outrovideo2]; \
[3:v]setpts=1.0*PTS[midAnimation]; \

[introvideo2]format=pix_fmts=yuva420p,fade=t=out:st=0:d=$crossfadeDuration:alpha=1[fadeoutintrovideo]; \
[midvideo1]format=pix_fmts=yuva420p,fade=t=in:st=0:d=$crossfadeDuration:alpha=1[fadeinmidvideo]; \
[midvideo3]format=pix_fmts=yuva420p,fade=t=out:st=0:d=$crossfadeDuration:alpha=1[fadeoutmidvideo]; \
[outrovideo1]format=pix_fmts=yuva420p,fade=t=in:st=0:d=$crossfadeDuration:alpha=1[fadeinextrovideo]; \

[midvideo2][midAnimation]overlay=shortest=1[midvideo]; \

[fadeoutintrovideo][fadeinmidvideo]overlay[crossfadeintrovideo]; \
[fadeoutmidvideo][fadeinextrovideo]overlay[crossfadeoutrovideo]; \
[introvideo1][crossfadeintrovideo][midvideo][crossfadeoutrovideo][outrovideo2]concat=n=5[outputvideo]; \

[0:a][1:a] acrossfade=d=$crossfadeDuration:c1=ipar:c2=ipar [audiotemp]; \
[audiotemp][2:a] acrossfade=d=$crossfadeDuration:c1=ipar:c2=ipar [outputaudio]" \
-map [outputvideo] -map [outputaudio] "out.mov"

使用最新版本(FFmpeg 3.3.3“Hilbert”),脚本到达某个点,我收到“过滤时出错”消息(亮红色),然后它挂在最后一帧(我需要按“ctrl-c”几次才能退出)。

如果我删除此行,它就可以正常工作:

[midvideo2][midAnimation]overlay=shortest=1[midvideo];

我已尝试更新的版本(ffmpeg-86877-g8e275a7),但它仍然挂在同一点。

如果我回到早期版本(我尝试过 FFmpeg 3.2.7“Hypatia”),它工作正常。是脚本问题,还是 FFmpeg 中引入了错误?

答案1

这不是脚本问题。2016 年 12 月添加了一个提交,其中打破了在某些过滤器中的操作shortest=1。该提交已于 6 月恢复,但引入了副作用,因此恢复提交已于 7 月恢复。

如果您需要最短的版本,那么您现在需要使用旧版本。修复程序正在等待中,但应用程序尚未到达预计时间。

相关内容