嗨,社区
# iMX 800 万像素
@ Harvey021
我在拉取 rtsp 数据流时遗漏了一个问题。
"RTSP_URL" 已通过 VLC 验证。
视频编码H264
命令:gst-用上市-1.0 rtspsrc location=$rtsp_URL 队列!rtph264depay !V4L2H264DEC !自动视频水槽
目标图像版本: linux6.6.36 full
目标机: i.MX 8mp
你好,
是否有更多信息?
致敬,
Zhiming
视频的帧频为 10。详细信息如下。
你好@noway
如果你想解码 60FPS 的视频,最大分辨率是 1080p,而 gstreamer 的最大分辨率是有限的。 随着 VPU 分辨率的提高,性能也会下降。
对于 opencv,您可以尝试以下配置。
gst = f"rtspsrc location={RTSP_URL} protocols=tcp latency=50 ! " \
f"rtph265depay ! h265parse config-interval=-1 ! " \
f"decodebin ! videoconvert ! video/x-raw,format=BGR ! " \
f"queue max-size-buffers=1 leaky=downstream ! " \
f"appsink drop=true max-buffers=1 sync=false"
cap = cv2.VideoCapture(gst, cv2.CAP_GSTREAMER)
致敬,
Zhiming
感谢您的回复,解码现已正常。不过,我仍然有两个问题:
当我将视频分辨率从 1080p 改为 2K 时,它无法解码
有关日志请参阅附件"pull.log" 。
2.使用 Python 解码时,我发现获取一帧数据需要 0.4 秒--为什么这么慢? 代码请参阅附件"rtsp.py" 。
您好,
请尝试使用以下命令分割音频和视频配置。
gst-launch-1.0 -v rtspsrc location=xxxxx name=src protocols=tcp latency=100 \
src. ! queue ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! rtph264depay ! h264parse ! v4l2h264dec! videoconvert ! autovideosink \
src. ! queue ! application/x-rtp,media=audio,encoding-name=MPEG4-GENERIC,payload=97 ! rtpmp4gdepay ! aacparse ! avdec_aac ! audioconvert ! audioresample ! autoaudiosink
致敬,
Zhiming
他表示没有找到 avdec_h264。
然后我尝试了 v4l2h264dec,或非成功。错误日志请参阅附件。
正在尝试命令:gst-用上市,不用发布-1.0-v rtspsrc location=$RTSP_URL protocols=tcp latency=100 !rtph264depay !V4L2H264DEC !autovideosink> pull.log 2>& 1
你好,
,请尝试使用以下命令。
gst-launch-1.0 -v rtspsrc location=$RTSP_URL protocols=tcp latency=100 ! rtph264depay ! avdec_h264 ! autovideosink
致敬,
Zhiming