【问题标题】:Streaming H264 file using gst-rtsp-server使用 gst-rtsp-server 流式传输 H264 文件
【发布时间】:2016-08-14 01:56:10
【问题描述】:

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 播放器播放/暂停/搜索控制?

谢谢, 手臂

【问题讨论】:

    标签: video-streaming gstreamer h.264 rtsp


    【解决方案1】:

    对于test-mp4
    - 请记住,您必须使用 mp4 视频。
    - IIRC,mp4 文件必须包含视频和音频(因为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 服务器:
    - 只需按照 test-mp4 中的示例
    - 但请记住以下几点:
    + 您必须编写应用程序才能使用 rtsp-server,不能与 gst-launch 一起使用
    + 所有支付元素(本例中为 rtph264pay)必须设置为 name=pay*,其中 * 是一个数字(pay0、pay1、pay2...)

    【讨论】:

    • Matilda,我正在使用的 IP 摄像机使用 H264encoder 对视频进行编码。所以我有 H264 文件,其中包含音频和视频。将 test-mp4 示例代码更改为 H264 视频/音频文件中的哪些内容?
    • 您的 IP 摄像机可以同时编码视频和音频,但您录制文件的第一个命令只是视频。因此输出视频文件不包含音频。您可以通过运行 test-mp4 与普通 mp4 视频进行比较来进行检查,它应该可以正常工作。
    • 仅在 test-mp4 样本中流式传输视频后工作。谢谢玛蒂尔达。
    【解决方案2】:

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

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

    【讨论】:

    • 如果源只是一个原始的 h264 文件,我该怎么办?我尝试使用简单的命令test-launch "( filesrc location=h264.raw ! h264parse ! rtph264pay pt=96 name=pay0 )",不幸的是,vlc 用vdpau_avcodec generic error: decoder profile not supported: 7 回复我
    猜你喜欢
    • 2022-02-17
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    • 2012-10-09
    • 1970-01-01
    • 2020-06-05
    • 2012-11-04
    相关资源
    最近更新 更多