2

我使用 gstreamer 使用了以下命令。我在根目录中看到生成的文件,但是当我尝试打开 playlist.m3u8 时 VLC 崩溃。主要目标是在 Firefox 浏览器上从网络摄像头直播。

gst-launch-1.0 ksvideosrc ! decodebin ! videoconvert ! openh264enc ! mpegtsmux ! hlssink playlist-root=localhost location=C:/inetpub/wwwroot/hlssink.%05d.ts playlist-location=C:/inetpub/wwwroot/playlist.m3u8

视频标签也不显示视频流。

<video width="352" height="198" controls>
    <source src="http://localhost/playlist.m3u8" type="application/x-mpegURL">
</video>

我不知道我在这里做错了什么;任何帮助,将不胜感激。

4

1 回答 1

1

要使其在 VLC 中可播放(在 IIS 服务器所在的同一台机器上启动),您需要修改hlssink playlist-root参数。它应该是

... ! hlssink playlist-root=http://localhost ...

这将正确设置 HLS 播放列表中 TS 段的前缀 URL 部分

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-MEDIA-SEQUENCE:88
#EXT-X-TARGETDURATION:15

#EXTINF:15.026812553405762,
http://localhost/hlssink.00087.ts
#EXTINF:15.006274223327637,
http://localhost/hlssink.00088.ts
#EXTINF:15.011569976806641,
http://localhost/hlssink.00089.ts
#EXTINF:15.020917892456055,
http://localhost/hlssink.00090.ts
#EXTINF:15.016651153564453,
http://localhost/hlssink.00091.ts

VLC 播放器将知道从中下载片段的确切 URL。

不幸的是,您的 HLS 不能由(大多数)浏览器播放,因为<video>标签的实现不支持您的片段所包含的 MPEG 传输流 (MPEG TS) 媒体容器。

为了解决这个问题,您可以使用例如hls.js库,其中包括将 MPEGTS 片段转换为标准 HTML5<video>标签支持的 MP4 容器。

于 2020-02-13T06:17:40.767 回答