工具/软件:Linux
我正在评估板上使用最新的预编译 SDK (am57xx-EVM-Linux-SDK-bin/04.02.00.09.tar.xz)。 我们遇到了硬件 h264解码器导致不可接受的大延迟的问题。 软件解码器显示相同的流、延迟低于100ms (但 CPU 使用率为80%)。 如果我们不在 rtsp 源代码中使用延迟参数(无论是否使用 jitterbuffer)、硬件加速视频的延迟约为三秒
如果我们使用延迟参数、则需要400ms 才能使摄像机分辨率1024x768正常工作。 但较小的分辨率更糟糕、解码320x200、640x480或800x600需要至少600ms 的延迟。
具有较小延迟的 gstreamer 每秒只渲染一个帧、并显示以下警告
警告:从元素/GstPipeline:Pipine0/GstlandWaySlink:waylandsink0:大量缓冲区正在丢弃。 其他调试信息: ./../../../gstreamer-1.8.3/libs/gst/base/gstbasesink.c (2854):gst_base_sink_ies_s_too_elate ():/GstPipeline0/GstWaylandSink:waylandsink0: 可能存在时间戳问题、或此计算机速度太慢。
正确工作的软件解码流水线如下:
Cx=1024
CY=768
X=1024
Y=768
延迟= 100
gst-launche-1.0 rtspsrc latiter=$latency location="rtsp://192.168.33.46/axis-media/media.amp?videococodec=h264&h264profile=main&resolution=${cx}x${cy}&fps=25"! \
rtpjitterbuffer! rtph264depay! h264parse! avdec h264! 视频转换! fpsdisplaysink 视频接收器=kmssink
硬件加速之一是以下流水线(问题与 kmsink 和 landsink 相同):
延时= 500
Cx=320
CY=200
X=320
Y=200
gs-launch-1.0 rtspsrc latiter=$latency location="rtsp://192.168.33.46/axis-media/media.amp?videococodec=h264&h264profile =main&resolution=${cx}x${cy}&fps=25"!\
rtpjitterbuffer! rtph264depay! h264parse! ducatih264dec! VPE! 'VIDEO/x-RAW、width='${X}'、height='${Y}! 陆上接收机