使用gstreamer在RTSP流式传输期间出错

时间:2016-05-17 15:21:34

标签: video-streaming gstreamer rtsp

我正在使用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进行客户端和服务器设置。

2 个答案:

答案 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