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播放器播放/暂停/寻求控制吗?
谢谢, 臂
答案 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 "
")"