Gstreamer rtsp 从 ipcamera 接收
Gstreamer rtsp receiving from ipcamera
我有基于 Ambarella soc 的廉价网络摄像头,我正在尝试从中接收 rtsp 流。
它适用于 ffmpeg
ffplay -rtsp_transport tcp -i rtsp://admin:admin@192.168.155.160:80/0
但是当我尝试使用 gstreamer 获取它时
gst-launch-1.0 -m tcpclientsrc rtspsrc location=rtsp://admin:admin@192.168.155.160 port=80 ! decodebin ! autovideosink
我有一个问题:
正在将管道设置为暂停...
管道是实时的,不需要 PREROLL ...
从元素 "streamsynchronizer0" 获得消息 #0(状态已更改):GstMessageSta
teChanged,旧状态=(GstState)GST_STATE_NULL,新状态=(GstState)GST_STATE_REA
DY, pending-state=(GstState)GST_STATE_VOID_PENDING;
从元素 "playsink" 获得消息 #1(状态已更改):GstMessageStateChanged,
old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending
-state=(GstState)GST_STATE_VOID_PENDING;
从元素 "playbin0" 获得消息 #2(状态已更改):GstMessageStateChanged,
old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending
-state=(GstState)GST_STATE_PAUSED;
从元素 "streamsynchronizer0" 获得消息 #6(状态已更改):GstMessageSta
teChanged,旧状态=(GstState)GST_STATE_READY,新状态=(GstState)GST_STATE_PA
USED, pending-state=(GstState)GST_STATE_VOID_PENDING;
从元素 "uridecodebin0" 获得消息 #7(状态已更改):GstMessageStateChan
ged, 旧状态=(GstState)GST_STATE_NULL, 新状态=(GstState)GST_STATE_READY, pe
发现状态=(GstState)GST_STATE_PAUSED;
试试这个,
gst-launch-1.0 rtspsrc location="rtsp://admin:admin@192.168.155.160:80" ! rtph264depay ! h264parse ! nv_omx_h264dec ! ffmpegcolorspace ! queue ! xvimagesink
您可以从网络浏览器的源代码中获取正确的 rtsp id,如果您尝试在其中进行流式传输。
我有基于 Ambarella soc 的廉价网络摄像头,我正在尝试从中接收 rtsp 流。 它适用于 ffmpeg
ffplay -rtsp_transport tcp -i rtsp://admin:admin@192.168.155.160:80/0
但是当我尝试使用 gstreamer 获取它时
gst-launch-1.0 -m tcpclientsrc rtspsrc location=rtsp://admin:admin@192.168.155.160 port=80 ! decodebin ! autovideosink
我有一个问题:
正在将管道设置为暂停... 管道是实时的,不需要 PREROLL ... 从元素 "streamsynchronizer0" 获得消息 #0(状态已更改):GstMessageSta teChanged,旧状态=(GstState)GST_STATE_NULL,新状态=(GstState)GST_STATE_REA DY, pending-state=(GstState)GST_STATE_VOID_PENDING; 从元素 "playsink" 获得消息 #1(状态已更改):GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending -state=(GstState)GST_STATE_VOID_PENDING; 从元素 "playbin0" 获得消息 #2(状态已更改):GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending -state=(GstState)GST_STATE_PAUSED; 从元素 "streamsynchronizer0" 获得消息 #6(状态已更改):GstMessageSta teChanged,旧状态=(GstState)GST_STATE_READY,新状态=(GstState)GST_STATE_PA USED, pending-state=(GstState)GST_STATE_VOID_PENDING; 从元素 "uridecodebin0" 获得消息 #7(状态已更改):GstMessageStateChan ged, 旧状态=(GstState)GST_STATE_NULL, 新状态=(GstState)GST_STATE_READY, pe 发现状态=(GstState)GST_STATE_PAUSED;
试试这个,
gst-launch-1.0 rtspsrc location="rtsp://admin:admin@192.168.155.160:80" ! rtph264depay ! h264parse ! nv_omx_h264dec ! ffmpegcolorspace ! queue ! xvimagesink
您可以从网络浏览器的源代码中获取正确的 rtsp id,如果您尝试在其中进行流式传输。