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

FFmpeg单命令实现8K转4K加侧边底部黑框得到T形视频报错如何解决

错误原因分析
  • 第一条命令问题:
    1. 仅1个输入视频的情况下,filter_complex 中引用了不存在的流索引 [1],单输入默认视频流索引为 [0:v]
    2. 滤镜链的流衔接语法错误,缩放后的输出流没有和后续 drawbox 滤镜正确关联,属于 filter_complex 语法书写不规范
  • 第二条命令问题:
    1. -vf 参数后的滤镜链中,scale=3840:2160, 后面多了空格,FFmpeg 会把空格后的内容识别为独立的输入文件参数,自然无法解析为滤镜规则
    2. 同时携带 -an(丢弃音频)和 -c:a copy(复制音频)属于冗余冲突参数
正确可用命令

两种写法均可,按需选择:

写法1:用 -vf(单滤镜链更简洁,适合单输入单输出场景)

ffmpeg -i "8k.test.mp4" -preset slow -vcodec libx265 -crf 18 -movflags faststart -vf "scale=3840:2160,drawbox=w=384:h=1280:x=0:y=640:t=fill,drawbox=w=384:h=1280:x=3840-384:y=640:t=fill,drawbox=w=3840:h=300:x=0:y=2160-300:t=fill" -an output.mp4

写法2:用 -filter_complex(适合后续要扩展多滤镜链的场景)

ffmpeg -i "8k.test.mp4" -preset slow -vcodec libx265 -crf 18 -movflags faststart -filter_complex "[0:v]scale=3840:2160[scaled];[scaled]drawbox=w=384:h=1280:x=0:y=640:t=fill,drawbox=w=384:h=1280:x=3840-384:y=640:t=fill,drawbox=w=3840:h=300:x=0:y=2160-300:t=fill[out]" -map "[out]" -an output.mp4
补充说明

你用到的三个 drawbox 属于同一线性链,用逗号分隔完全符合官方规则,之前的报错都是语法书写不规范导致的,和滤镜分隔规则无关。滤镜参数整体用引号包裹可以避免空格被FFmpeg识别为参数分隔符,是最稳妥的书写习惯。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:36:04