Gstreamer rtsp 错误

Gstreamer rtsp 错误

我想通过 gstreamer 获取 ip 摄像机视频流:
gst-launch-1.0 rtspsrc location=rtsp://user:[email protected]:554/live/ch00_0 ! rtph264depay ! autovideosink

但出现此错误
Установка конвейера в состояние PAUSED…
Конвейер работает и не требует состояния PREROLL…
Установка конвейера в состояние PLAYING…
New clock: GstSystemClock
ОШИБКА: из элемента /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0: Internal data flow error.
Дополнительная отладочная информация:
gstrtspsrc.c(4206): gst_rtspsrc_loop (): /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0:
streaming task paused, reason not-negotiated (-4)
Execution ended after 54503440 ns.
Установка конвейера в состояние PAUSED...
Установка конвейера в состояние READY…
Установка конвейера в состояние NULL…
Освобождение конвейера…

我认为这是一个主要问题 ERROR: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0: Internal data flow error.

我的系统是 gentoo 3.5.7

答案1

您的管道有误。正确的是:

gst-launch-1.0 rtspsrc location=rtsp://user:[email protected]:554/live/ch00_0 ! rtph264depay ! h264parse ! decodebin ! autovideosink

或者

gst-launch-1.0 rtspsrc location=rtsp://user:[email protected]:554/live/ch00_0 ! rtph264depay ! decodebin ! autovideosink

因为您需要在显示之前解码 h264 流。以下是媒体使用的主要链:

  1. 解码:编码源 -> 解复用器 -> 解码器 -> 接收器

  2. 编码:原始源(即简单的网络摄像头)->编码器->复用器->接收器

另外,检查为 rtspsrc 设置身份验证的方法。我不确定,但也许唯一正确的方法是:rtspsrc location=rtsp://192.168.81.32:554/live/ch00_0 user-id=user user-pw=password

相关内容