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

Gstreamer中encodebin与concat流水线搭配mp4mux运行异常问题

问题原因

你遇到的协商失败问题核心是mp4mux的输入约束比mpegtsmux严格得多,结合你的流水线结构,具体有两个触发点:

  • concat元件要求所有输入流的caps完全一致才能正常输出,而你当前流水线里两路输入到concat的H264流格式不匹配:从input.mp4解析出来的H264是MP4标准的AVCC格式(长度前缀NALU),而encodebin直接输出的H264默认是AnnexB格式(起始码前缀NALU),两路格式不一致导致concat输出的流caps混乱。
  • mp4mux的视频sink pad强制要求输入H264流必须是AU对齐、且格式为AVCC,同时流的SPS/PPS参数必须连续稳定,不能出现中途突变;而mpegtsmux默认适配AnnexB格式,且自带格式容错逻辑,能自动处理不同输入的格式转换,所以能正常运行。

解决方法

你只需要统一两路concat输入的H264格式,并且补充h264parse做格式对齐即可,修改后的流水线如下:

GST_DEBUG=3 gst-launch-1.0.exe concat name=c ! h264parse ! mp4mux name=m ! filesink location=out.mp4 filesrc location=input.mp4 ! parsebin ! h264parse ! "video/x-h264,stream-format=avc,alignment=au,profile=baseline" ! c. videotestsrc num-buffers=100 ! encodebin profile="video/x-h264,tune=zerolatency,profile=baseline" ! h264parse ! "video/x-h264,stream-format=avc,alignment=au,profile=baseline" ! c.

如果仍出现协商失败,可检查input.mp4的H264 level参数,在caps中补充对应的level值,保证两路流的编码参数完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:48:00