我正在使用gstreamer进行RTSP流媒体播放。 为此,我从https://gstreamer.freedesktop.org/src/gst-rtsp-server/下载了gst-rtsp-server设置。我成功编译了代码。我可以使用(服务器端代码)启动gstreamer rtsp服务器
./ test-launch“(videotestsrc!x264enc!rtph264pay name = pay0 pt = 96)”
此服务器开始侦听端口8554
在接收方(客户端),播放我正在使用的流式视频
gst-launch-1.0 -v rtspsrc location = rtsp://127.0.0.1:8554 / test
但我在服务器端遇到以下错误:
** Message: state PLAYING media 0xb04160
** Message: 0xb04160: got message type new-clock
0:00:04.375120259 17746 0xa74b00 WARN bin gstbin.c:2395:gst_bin_do_latency_func:<media-pipeline> did not really configure latency of 0:00:00.000000000
** Message: client 0x95d760: sent a message with cseq 4
0:00:04.391459616 17746 0xa9f230 WARN basesrc gstbasesrc.c:2625:gst_base_src_loop:<udpsrc0> error: Internal data flow error.
0:00:04.391536109 17746 0xa9f230 WARN basesrc gstbasesrc.c:2625:gst_base_src_loop:<udpsrc0> error: streaming task paused, reason not-linked (-1)
** (lt-test-launch:17746): WARNING **: 0xb04160: got error Internal data flow error. (gstbasesrc.c(2625): gst_base_src_loop (): /GstPipeline:media-pipeline/GstUDPSrc:udpsrc0:
streaming task paused, reason not-linked (-1))
RTSP request message 0xaa0888
请告诉我,客户端必须使用什么gstreamer元素? 我可以使用VLC成功播放流媒体视频(Open VLC - &gt; Media - &gt; Open Network Streaming - &gt; RTSP:// path ....)
注意: 我'使用gstreamer-1.0 我正在使用Ubuntu PC进行客户端和服务器设置。
答案 0 :(得分:0)
在服务器端,您使用x264enc对数据进行编码,因此在客户端,您必须对其进行解码,然后才能播放它。
试试这个管道,它会起作用
gst-launch-1.0 -v rtspsrc location=rtsp://127.0.0.1:8554/test ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! xvimagesink
答案 1 :(得分:0)
我可以使用以下命令运行它:
gst-launch-1.0 -v rtspsrc location = rtsp://127.0.0.1/test caps =&#34; application / x-rtp,media =(string)video,payload =(int)96,clock- rate =(int)90000,encoding-name =(string)H264&#34; ! rtph264depay! decodebin!视频转换! autovideosink