You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用FFmpeg反转视频报错:Stream specifier 's1:v'匹配不到流

解决FFmpeg反转视频时的流匹配错误

错误原因分析

报错里的s1:v匹配不到流,核心原因是split滤镜的输出已经是单个视频流(你的输入文件无音频),不需要额外指定:v流标识符。split会把输入的视频流拆成两个完全一致的视频流s0和s1,直接用s1引用即可。

另外代码里的instances[i].video属于多余操作:filter_multi_output返回的每个实例已经对应split输出的视频流,调用.video会让FFmpeg错误地尝试从这个单一流中再提取视频流,最终导致流引用失效。

修正后的代码

instances = (
    ffmpeg
    .input(self.video_file)
    .filter_multi_output(filter_name="split", outputs=2)
)
ordered_edits = []
for i in range(2):
    if i % 2 == 0:
        ordered_edits.append(instances[i])
    else:
        # 去掉多余的.video,直接对split输出的流应用reverse滤镜
        ordered_edits.append(instances[i].filter(filter_name="reverse"))

(
    ffmpeg
    .concat(*ordered_edits, a=0, v=1)
    .output('done/output.mp4')
    .run(overwrite_output=True)
)

原生命令验证方案

如果想先确认逻辑可行性,可以直接用原生FFmpeg命令测试:

ffmpeg -i input.mp4 -filter_complex "split=2[s0][s1];[s1]reverse[s2];[s0][s2]concat=n=2:v=1:a=0" done/output.mp4

这个命令和你代码的逻辑完全一致:拆分视频流、反转其中一个、拼接原视频与反转后的视频。

内容的提问来源于stack exchange,提问作者Will Beeson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 09:20:10