我尝试使用来自beaglebone的rtsp流作为v4l2loopback的虚拟网络摄像头。
在beaglebone(服务器)上,我用:
启动流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 ...
有人知道这里有什么问题吗?我错过了什么,还是有另一种方法来实现这一目标? 谢谢!
答案 0 :(得分:0)
我不认为你可以直接链接rtspsrc和v4l2sink,你必须添加一个中间步骤。
如何找到自己:
Router.run(routes, function (Handler) {
React.render(<Handler />, document.getElementById('app'));
});
并搜索“功能:” - 你会发现它输出的应用程序/ x-rtp或x-rdt不能直接链接到v4l2sink ..
然后以相同的方式(对于接收器)检查gst-inspect-1.0 rtspsrc
的功能
解决方案:
rtspsrc和v4l2sink之间至少需要rtph264depay。 或者您可以使用decodebin, or uridecodebin
答案 1 :(得分:0)
您需要解码管道中的视频流。 只需在管道中插入 decodebin :
gst-launch-1.0 -v rtspsrc location=rtsp://192.168.7.2:8554/test ! decodebin ! v4l2sink device=/dev/video0
答案 2 :(得分: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