使用gst-rtsp-server流式传输H264文件

时间:2016-04-21 04:45:40

标签: video-streaming gstreamer h.264 rtsp

GStreamer Extended Family,

考虑一下GStreamer的初学者。我正在尝试使用gst-rtsp-server流式传输记录的H264文件。所以我可以播放/暂停/寻找VLC播放器的视频。

这是我到目前为止所做的:

使用以下管道从IP摄像机的RTP H264流录制H264编码视频:

gst-launch-1.0.exe -e -v rtspsrc location=rtsp://192.168.16.155/live.sdp ! rtph264depay ! h264parse ! mp4mux ! filesink location=record/video.h264

然后,我正在使用以下管道流式传输录制的video.h264:

gst-launch-1.0.exe -v filesrc location=record/video.h264 ! qtdemux ! h264parse ! rtph264pay config-interval=1 pt=96 ! udpsink host=127.0.0.1 port=5000

我可以通过设置SDP文件来查看VLC播放器中录制的视频,如下所示。

v=0 m=video 5000 RTP/AVP 96 c=IN IP4 127.0.0.1 a=rtpmap:96 H264/90000

但是,我无法暂停或寻找视频。即使VLC播放器未连接到端口5000,上述管道也会继续播放视频。

顺便说一下..我尝试使用gst-rtsp-server的test-mp4示例来传输video.h264但是VLC播放器超时了。 test-mp4控制台输出只显示单个消息,即"流准备好在rtsp://127.0.0.1:8554 / test。

有人能指出我使用GStreamer播放录制视频的正确方向,以及通过RTSP从VLC播放器播放/暂停/寻求控制吗?

谢谢, 臂

2 个答案:

答案 0 :(得分:0)

对于test-mp4
- 请记住,你必须使用mp4视频 - IIRC,mp4文件必须包含视频和音频(因为test-mp4中的管道将同时播放)。
- 运行test-mp4后,检查服务器的IP(运行test-mp4的机器)。在这种情况下,您将环回流到同一台PC,因此您可以使用环回IP 127.0.0.1
- 然后,在客户端打开VLC并选择打开网络流,并输入rtsp URL为:rtsp:// <Server IP>:8554 / test
例如,如果服务器IP为192.168.1.1,则URL为rtsp://192.168.1.1:8554/test

对于rtsp-server:
- 只需按照test-mp4中的示例进行操作即可 - 但请记住一些要点:
   +你必须编写一个使用rtsp-server的应用程序,不能使用gst-launch
   +所有付费元素(在这种情况下为rtph264pay)必须设置name=pay*,*是一个数字(pay0,pay1,pay2 ......)

答案 1 :(得分:0)

如果您遇到同样的问题,我可以通过RTSP / RTP流式传输录制的H264视频文件。

修改test-mp4示例的rtsp管道启动字符串,如下所示: "filesrc location=\"%s\" ! qtdemux " "! h264parse ! rtph264pay pt=96 name=pay0 " ")"