1

我正在尝试使用来自 beaglebone 的 rtsp 流作为具有 v4l2loopback 的虚拟网络摄像头。

在 beaglebone(server) 我开始流:

cvlc --sout=#rtp{sdp=rtsp://:8554/test} 'v4l2:///dev/video0:chroma=H264:width=640:height=480'

在我的客户端上,我可以使用 vlc 毫无问题地查看流。现在我正在尝试将流用作虚拟网络摄像头,其中:

gst-launch-1.0 -v rtspsrc location=rtsp://192.168.7.2:8554/test ! v4l2sink device=/dev/video0

该命令导致:

/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtp_sink_0: caps = "application/x-rtp\,\ media\=\(string\)video\,\ payload\=\(int\)96\,\ clock-rate\=\(int\)90000\,\ encoding-name\=\(string\)H264\,\ packetization-mode\=\(string\)1\,\ a-tool\=\(string\)\"vlc\\\ 2.0.3\"\,\ a-recvonly\=\(string\)\"\"\,\ a-type\=\(string\)broadcast\,\ a-charset\=\(string\)UTF-8\,\ ssrc\=\(uint\)2741328849\,\ clock-base\=\(uint\)712921660\,\ seqnum-base\=\(uint\)2089\,\ npt-start\=\(guint64\)9615207000\,\ play-speed\=\(double\)1\,\ play-scale\=\(double\)1"
FEHLER: Von Element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc0: Interner Fehler im Datenfluss.
Zusätzliche Fehlerdiagnoseinformation:
gstbasesrc.c(2933): gst_base_src_loop (): /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc0:
streaming task paused, reason not-linked (-1)
Execution ended after 0:00:00.049701641
Leitung wird auf PAUSIERT gesetzt ...
Leitung wird auf BEREIT gesetzt ...
Leitung wird auf NULL gesetzt ...
Leitung wird geleert ...

有人知道这里有什么问题吗?我错过了什么,还是有其他方法可以实现这一目标?谢谢!

4

3 回答 3

0

您需要解码管道中的视频流。只需在管道中插入decodebin

gst-launch-1.0 -v rtspsrc location=rtsp://192.168.7.2:8554/test ! decodebin ! v4l2sink device=/dev/video0
于 2016-04-10T23:59:57.040 回答
0

我不认为你可以直接链接rtspsrc和v4l2sink,你必须添加一个中间步骤。

如何自己寻找:

gst-inspect-1.0 rtspsrc

并搜索“Capabilities:” - 你会发现它输出的 application/x-rtp 或 x-rdt 不能直接链接到 v4l2sink ..

然后以相同的方式检查您v4l2sink的功能(对于接收器)

解决方案:

在 rtspsrc 和 v4l2sink 之间至少需要 rtph264depay。或者您可以使用decodebin 或 uridecodebin

于 2015-09-29T09:15:08.830 回答
0

这是一个工作管道。在我的情况下,我需要添加“tee”,否则我只会在我的视频设备上获得前几帧。

gst-launch-1.0 rtspsrc location=rtsp://admin:password@192.168.1.250:554/Streaming/Channels/101 ! decodebin ! videoconvert ! video/x-raw,format=YUY2 ! tee ! v4l2sink device=/dev/video0
于 2020-06-29T19:46:13.923 回答