live-streaming - HLS直播字幕?

标签 live-streaming http-live-streaming webvtt

我正在使用 rtmp 将流广播到服务器并使用 HLS 将视频流式传输到我的设备。 有没有可以实时更新字幕的字幕协议(protocol), 例如,服务器中有一个字幕文件,我可以一直写入该文件,我的播放器也可以一直读取该文件。

我知道 WebVTT 适用于录制的流媒体视频,但它适用于实时流媒体视频吗?我可以将我的播放器链接到 webVTT 文件,然后我可以通过不断写入来更新字幕吗?

最佳答案

您可以使用 WebVTT 来 add subtitles to a live HLS stream .您可以使用实时字幕播放列表来执行此操作。它的工作方式就像一个实时播放列表 - 您可以随着时间的推移从中添加和删除条目。

首先创建一个主播放列表并向其添加对字幕播放列表 (subtitles.m3u8) 的引用。这是一个(简化的)示例:

#EXTM3U
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",URI="subtitles.m3u8",LANGUAGE="en"
#EXT-X-STREAM-INF:BANDWIDTH=500000,RESOLUTION=1920x1080,SUBTITLES="subs"
prog_index.m3u8

下一步是更新直播中的字幕播放列表。假设您的字幕播放列表最初看起来像这样:

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:10,
1.webvtt
#EXTINF:10,
2.webvtt
#EXTINF:10,
3.webvtt

请注意播放列表中缺少 #EXT-X-ENDLIST 标签。这将导致播放器不断检索播放列表。

然后一段时间后(片段持续时间)它将看起来像这样:

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:2
#EXTINF:10,
2.webvtt
#EXTINF:10,
3.webvtt
#EXTINF:10,
4.webvtt

等等。您可能需要编写一些自定义代码来更新字幕播放列表。

关于live-streaming - HLS直播字幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39631349/

相关文章:

html - CSS:视频在页眉和页脚之间居中并调整大小

android - 在 Android 上使用 javacv-ffmpeg 解码来自 red5 服务器的 AAC 音频流

ruby-on-rails - 使用 Rails 将 HTTP 实时流式传输到 Apple TV

html - 从跨域加载 vtt 的问题

ios - 在 iPhone 上播放直播视频

amazon-ec2 - EC2实例类型的确切网络性能?

nginx - 使用 Nginx RTMP 模块的 HLS 不起作用

html - 播放带 HTML 视频标签的 m3u8 文件

html5 MKV播放带字幕

html - 突出显示视频字幕、HTML5 视频中的单词