FFMPEG执行xfade转场报Invalid file index 1错误求助
错误产生原因
你使用的xfade(视频转场)与acrossfade(音频交叉淡入)滤镜,作用是在两个独立的输入音视频流之间生成过渡效果,要求命令中至少传入2个输入文件。但你当前的命令仅传入了1个输入文件video_3044.mp4,滤镜调用索引为1的第二个输入时找不到对应资源,因此触发索引无效报错。
修复方案
根据你的实际需求选择对应方案即可:
场景1:需要拼接两个视频,中间加转场效果
在命令中补充第二个输入文件的路径,注意xfade的offset参数值需等于第一个视频的总时长减去转场时长(你当前填写的314.74对应转场0.5秒、第一个视频总时长315.24秒的场景,数值无需调整),修改后命令示例:
ffmpeg -i video_3044.mp4 -i 你的第二个视频文件.mp4 -filter_complex "[0][1]xfade=transition=fade:duration=0.5:offset=314.74,format=yuv420p[video];[0:a][1:a]acrossfade=d=0.5:c1=tri:c2=tri[audio]" -map "[video]" -map "[audio]" -movflags +faststart video_5370_1.mp4
场景2:仅需给单个视频加开头淡入、结尾淡出效果
无需使用多输入转场滤镜,直接替换为单流适用的fade(视频)、afade(音频)滤镜即可,示例如下(参数对应开头0.5秒淡入、结尾0.5秒淡出,视频总时长315.24秒,可根据实际情况调整时长数值):
ffmpeg -i video_3044.mp4 -vf "fade=t=in:st=0:d=0.5,fade=t=out:st=314.74:d=0.5,format=yuv420p" -af "afade=t=in:st=0:d=0.5,afade=t=out:st=314.74:d=0.5" -movflags +faststart video_5370_1.mp4
参数说明:
t=in/t=out:指定效果为淡入/淡出st:效果开始的时间点,单位为秒d:效果持续的时长,单位为秒
内容的提问来源于stack exchange,提问作者D.B.
相关产品推荐
相关产品推荐

