GStreamer大家庭,
想想我是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播放器播放/暂停/寻找控制吗?
谢谢,胳膊
对于test-mp4
:
- 请记住,你必须使用mp4视频。
- IIRC,mp4 fle必须包含视频和音频(因为test-mp4
中的管道将同时播放)。
- 运行test-mp4后,检查服务器的IP(运行test-mp4的机器)。在这种情况下,您将环回流到同一台PC,因此您可以使用环回IP 127.0.0.1
- 然后,在客户端,打开VLC并选择Open Network Stream,并输入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 ......)
如果您遇到同样的问题,我可以通过RTSP / RTP流式传输录制的H264视频文件。
修改test-mp4示例的rtsp管道启动字符串,如下所示:
"filesrc location=\"%s\" ! qtdemux "
"! h264parse ! rtph264pay pt=96 name=pay0 "
")"