This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VH-Q1:将 TDA4VH (J784S4) 上的 H.264 端到端延迟降低到 100ms 以下–GMSL 到 UDP 流式传输

Guru**** 2797825 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1620900/tda4vh-q1-reducing-h-264-end-to-end-latency-below-100-ms-on-tda4vh-j784s4-gmsl-to-udp-streaming

器件型号: TDA4VH-Q1
Thread 中讨论的其他器件: TDA4VH

您好:
我正在使用基于 TI TDA4VH (J784S4) 的电路板和 Processor SDK RTOS 开发实时视频流应用。


该项目基于:
vision_apps→demo_apps→multi_cam_codec (multi_cam_codec.c)

系统配置:
- SoC: TDA4VH (J784S4 )
- SDK:Processor SDK RTOS
-摄像机输入: GMSL→CSI.
-分辨率: 1920x1080
-帧速率:30 FPS
-编码: H.264 硬件编码器
-输出: UDP 流式传输到远程目标
-框架: vision_apps 与 Gstreamer 流水线

当前情况:
我测量了端到端延迟(从摄像机捕获到远程接收器侧显示)、我观察到大约:
110ms–150ms 延迟

系统稳定在 1080p30 下、但我的目标是尽可能将延迟降低到 100ms 以下。

问题:
1) 在采用 1080p30 H.264 流的 TDA4VH 上实现小于 100ms 的端到端延迟是否现实?

2) 是否有针对低延迟用例的推荐编码器参数设置?
- GOP 大小
-期间内
- B 帧已禁用
-低延迟模式
-速率控制配置

3) 内部是否存在已知的缓冲阶段:
- vision_apps 框架
- H.264 硬件编码器
- Gstreamer 流水线
通常会引入额外的延迟?

4) TI 是否有任何建议的配置来实现 J784S4 上的超低延迟流?

以下是我正在使用的 GStreamer 流水线:

static void construct_gst_strings(app_codec_wrapper_params_t *params)
{
  int32_t i = 0;
  for (uint8_t ch = 0; ch < params->in_num_channels; ch++)
  {
    int rtp_port = 5002 + ch * 2;
    snprintf(params->m_AppSrcNameArr[ch], CODEC_MAX_LEN_ELEM_NAME, "myAppSrc%d", ch);
    i += snprintf(&params->m_cmdString[i], CODEC_MAX_LEN_CMD_STR - i,
                  "appsrc format=GST_FORMAT_TIME is-live=true do-timestamp=true block=false name=%s ! "
                  "queue max-size-buffers=1 max-size-bytes=0 max-size-time=0 leaky=downstream ! \n",
                  params->m_AppSrcNameArr[ch]);
    i += snprintf(&params->m_cmdString[i], CODEC_MAX_LEN_CMD_STR - i,
                  "video/x-raw, width=(int)%d, height=(int)%d, framerate=(fraction)30/1, format=(string)%s, "
                  "interlace-mode=(string)progressive, colorimetry=(string)bt601 ! \n",
                  params->in_width, params->in_height, params->in_format);
    i += snprintf(&params->m_cmdString[i], CODEC_MAX_LEN_CMD_STR - i,
                  "v4l2h264enc capture-io-mode=dmabuf output-io-mode=dmabuf "
                  "extra-controls=\"controls, frame_level_rate_control_enable=0, "
                  "tune=zerolatency, video_bitrate=12000000, iframe_period=30, insert-sps-pps=1, h264_profile=0\" ! "
                  "h264parse config-interval=1 ! \n");
    i += snprintf(&params->m_cmdString[i], CODEC_MAX_LEN_CMD_STR - i,
                  "rtph264pay pt=96 config-interval=1 aggregate-mode=none mtu=1100 timestamp-offset=0 ! "
                  "udpsink host=%s port=%d sync=false async=false qos=false buffer-size=65536 \n", g_stream_host, rtp_port);
  }
}

控制台中的接收器侧:

gst-launch-1.0 \
  udpsrc port=5002 caps="application/x-rtp,media=video,encoding-name=H264,clock-rate=90000,payload=96" \
  ! rtpjitterbuffer latency=100 do-lost=true \
  ! rtph264depay \
  ! h264parse \
  ! avdec_h264 \
  ! videoflip method=horizontal-flip \
  ! videoconvert \
  ! autovideosink sync=false


如果有人使用 vision_apps 或 GStreamer 在 J784S4/TDA4VH 上优化延迟的经验、请您给予指导。

谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:  

    感谢您的提问、我将查看此内容并返回给您。  

    谢谢、
    Sarabesh S.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    您使用的是哪个 SDK 版本?

    谢谢、
    Sarabesh S.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    不同应用 TI Processor RTOS SDK J784S4 EVM v10_00_00_05

    谢谢、

    Umut

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:  

    有关这些详细信息、请咨询 IP 供应商。 会返回到您的位置。

    谢谢、
    Sarabesh S.