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

Android平台GStreamer连接omxgoogleh264encoder与mp4mux失败求助

Android平台GStreamer amc编码器链接mp4mux失败解决方案

错误原因

could not link amcvidenc-omxgoogleh264encoder0 to mp4mux0 报错的核心是编解码器输出的媒体协商参数(Caps)不匹配:

  • amcvidenc系列OMX/C2编码器默认输出Annex-B格式(带起始码)的H.264裸流
  • mp4mux封装组件默认要求输入AVCC(长度前缀)格式的H.264流,缺少格式转换或显式caps声明时会协商失败

修复方案

1. 流水线修改

在H.264编码器和mp4mux之间插入h264parse组件,自动完成码流格式转换和caps补全,修改后流水线如下:

udpsrc port=9005 ! application/x-rtp-stream,encoding-name=H265 ! queue ! 
rtpstreamdepay ! rtph265depay ! h265parse ! amcviddec-omxgooglehevcdecoder ! queue ! amcvidenc-omxgoogleh264encoder ! 
h264parse ! mp4mux ! filesink name=fileSink location=test.mp4

2. 额外适配方案

如果添加h264parse后仍然报错,可通过以下步骤排查:

  • 执行gst-inspect-1.0 amcvidenc-omxgoogleh264encoder查看编码器输出pad支持的所有caps参数
  • 在编码器后添加capsfilter手动指定适配mp4mux的格式,示例如下:
amcvidenc-omxgoogleh264encoder ! video/x-h264,stream-format=avcC,alignment=au ! h264parse ! mp4mux

amc编解码器相关说明

amc系列编解码器是GStreamer针对Android平台开发的封装插件,属于gst-plugins-bad插件集的子模块,底层直接调用Android原生的MediaCodec框架(包含OMX、Codec2两种实现的适配),所有编码控制参数和Android官方MediaCodec公开参数完全对齐。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 04:09:04