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

求助:GStreamer配置H265组播仍输出H264编码问题排查

问题排查:H.265组播流被Wireshark误识别为H.264的原因

问题背景

在PetaLinux平台通过GStreamer脚本实现H.265组播视频流,已修改FPGA侧VCU IP适配H.265,但Wireshark抓取的流仍显示为H.264编码。发送端脚本如下:

gst-launch-1.0 -v v4l2src device=/dev/video0 io-mode=4 ! queue ! vtracking ! queue ! video/x-raw,format=BGR,width=1920,height=1080,framerate=30/1 ! v4l2video1convert capture-io-mode=4 output-io-mode=5 ! video/x-raw,format=NV16,width=$3,height=$4, framerate=30/1 ! omxh265enc num-slices=16 periodicity-idr=240 cpb-size=500 gdr-mode=horizontal initial-delay=250 control-rate=low-latency prefetch-buffer=true target-bitrate=$2 gop-mode=low-delay-p ! video/x-h265, alignment=nal ! h265parse ! rtph265pay ! udpsink buffer-size=2000000000 host=224.1.1.1 port=$1 auto-multicast=true async=false max-lateness=-1 qos-dscp=60 max-bitrate=120000000 -v

核心排查点

  • Wireshark识别逻辑偏差:Wireshark依赖RTP负载类型(PT)和SDP信息判断编码格式。rtph265pay默认使用动态PT值96,若Wireshark未将该PT关联到H.265,会误判为H.264。解决方式:
    1. 在rtph265pay后添加参数pt=106(H.265标准动态PT值);
    2. 手动在Wireshark中修正:右键目标流 → 解码为 → RTP → 选择H.265。
  • GStreamer管道元素未正确工作:
    • 检查omxh265enc加载状态:运行脚本时查看终端输出,确认没有 fallback 到omxh264enc的日志。可添加--gst-debug=omx:5参数,查看OMX组件初始化日志,验证是否成功启动H.265编码器;
    • 确认video/x-h265 caps生效:查看终端输出的caps协商信息,若上游元素输出格式不匹配,GStreamer会自动协商降级,可能回退到H.264编码。
  • VCU IP配置未完全生效:修改VCU IP后,需重新生成FPGA比特流、更新设备树,并确保PetaLinux侧驱动加载了新配置。可通过vcu-dbg工具查看VCU当前工作模式,确认是否处于H.265编码状态。
  • 旧进程残留:之前的H.264流进程可能未彻底终止,导致端口持续发送旧流。执行ps aux | grep gst-launch排查残留进程,杀死后重启管道再抓包验证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 17:45:28