Wowza技术:如何为VOD点播配置字幕?

如何为VOD点播配置字幕?

Wowza技术:如何为VOD点播配置字幕?_第1张图片

Wowza StreamEngine 4 支持在直播流中插入隐藏字幕。它可以接收实时流中的字幕数据并将其转化为合适的格式,以对外提供包括Apple HTTPLive Streaming (Apple HLS)、Adobe HTTP Dynamic Streaming(Adobe HDS)以及 RTMP协议在内的流媒体服务。许多播放器技术,包括Apple iOS devices、VideoLAN VLC 播放器以及很多机顶盒都可以显示嵌入在直播流中的CEA-608格式的隐藏字幕。另外还有一些播放器技术,例如JW Player 和 Flowplayer, 只能显示AMF onTextData格式的隐藏字幕。

注:本文所说的字幕,你可以理解为Closed Caption 或 Subtitle.

注意:本文针对Wowza Streaming Engine 4.0及以上的版本,如果你还在使用WowzaMedia Server 3.X,建议您先做版本升级。

支持的字幕格式隐藏字幕有很多不同的数据来源,在流媒体输出时,每一个流媒体播放协议需要在流中嵌入不同数据格式的隐藏字幕。Wowza Stream Engine 4的直播流隐藏字幕功能支持以下输入和输出格式。

支持的输入格式

·嵌入到输入流中的CEA-608 字幕。

·嵌入到输入流中的Action Message Format(AMF)onTextData

·嵌入到输入流中的AMFonCaptiononCaptionInfo

·用API将onTextData嵌入到实时流中

支持的输出格式下面的所有输出格式,都可以用上面支持的输入格式来转化:

·onTextDataAdobe HDS 中的events和RTMP直播流。

·Apple HLS (M3U8)直播流视频轨道中的CEA-608 格式的 SEI 数据。

·Apple HLS (M3U8)直播流视频轨道中的WebVTT 文本轨道。

支持的字幕格式转化

下面的表格对Wowza Stream Engine 4支持的输入到输入的格式转换功能进行了总结:

Wowza技术:如何为VOD点播配置字幕?_第2张图片


插入CEA-608格式的字幕

这个部分介绍了如何配置你的Wowza应用,让它监听输入的直播流并得到其中CEA-608格式的字幕,对字幕进行解码,然后将它们转换为onTextData事件。

1.在Wowza Streaming EngineManager管理界面,点击Applicationstab页,左侧导航菜单点击应用的名字(例如live).

2.在应用的Setup页面,点击Edit,在页面下部的Closed Caption Sources区域,选择Embedded CEA-608 captions in live streams. 点击Save,然后根据提示重启Wowza Application。

3.点击Propertiestab页,然后在Quick Links导航条点击Closed Captions.

4.Closed Captions部分,点击Edit.

5.启用下面表格中的每一个参数,并为其设置相应的参数值.

Wowza技术:如何为VOD点播配置字幕?_第3张图片


6.点击Save,然后根据提示,重启Wowza Application

7. 从编码器发布一个带有CEA-608字幕数据的直播流,在这个例子中, 我们将使用名为myStream的直播流.

由于单纯的CEA-608字幕和流媒体服务器中的字幕两者存在一些不同,一些字幕模型的解码可能比另一些的要好。Pop-on captions (可以显示在屏幕的任意位置,后面跟随另一个字幕或者结束)是最好的。其它字幕模型(例如scroll-up 字幕直接在屏幕上绘制)可能表现的有些延时。这是由于CEA-608是直接在设备上绘制,然而Wowza Stream Engine 4必须每一个字幕以获得它并将它嵌入到输出的直播流里。

当考虑采用什么字幕模型插入到Wowza Stream Engine 4 的直播流中时:

·Use pop-on 字幕是最合适的

·如果使用其它字幕模型,要尽可能的降低字幕显示的开始时间到结束时间的时长。

插入 AMF onTextData 格式的字幕

下面介绍了如何配置Wowza应用,让它对输入的直播流进行监听以获得AMFonTextData格式的字幕,对字幕进行解码,并将它转换为CEA-608格式的字幕。

onTextData事件是一个Action Message Format (AMF)事件,它通常和Adobe HDS 以及 RTMPstreaming 协议配合使用,被用于封装隐藏字幕或标题信息。onTextData事件通常包括下面的字段:

·text. 封装了UTF-8 编码的文本。

·lang. 三个字母代表的语言(例如,eng).

·trackid. (可选) 针对VOD点播流,这个ID是视频文件中的字幕轨道ID。对于直播流,这个字段可以忽略或者设置为99.


Wowza Streaming Engine 对输入流进行监听,以获得onTextData事件,解开其中的text字段, 将其转换为CEA-608格式, 然后将它嵌入到视频流的SEINAL 单元。包括Apple iOS 设备、VideoLAN VLC播放器及许多机顶盒在内的众多播放器技术都可以显示这些嵌入在视频流中的隐藏字幕。

你可以用Wowza Stream Engine 4中调用server-side APIIMediaStream.sendDirect()以将onTextData事件嵌入到直播流中。 (这里有一个代码例子,PublishOnTextData)这使得发布可以将隐藏字幕以timed text 事件或 SMPTE 事件的形式传递并使用Wowza Streaming Engine server-side APIonTextData嵌入到直播流中。同时Wowza直播流中的onTextData会被拦截并以CEA-608事件的格式嵌入到直播流中。

1.在Wowza Streaming EngineManager管理界面,点击Applicationstab页,左侧导航菜单点击应用的名字(例如live).

2.在应用的Setup页面,点击Edit,在页面下部的Closed Caption Sources区域,选择onTextData events in live streams. 点击Save,然后根据提示重启Wowza Application。

3.点击Propertiestab页,然后在Quick Links导航条点击Closed Captions.

4.Closed Captions部分,点击Edit.

5.启用下面表格中的每一个参数,并为其设置相应的参数值.


6.(可选) 你可以可以为应用配置一些更细节的参数。要添加自定义参数,按如下操作:

    1. Propertiestab页,在Quick Links导航条上点击Custom.

    2. Custom部分,点击Edit,然后点击Add Custom Property.

    3. Add Custom Property对话框中,按下面表格的内容添加自定义参数,然后点击Add.

Wowza技术:如何为VOD点播配置字幕?_第4张图片


7.点击Save, 重启Wowza应用,让参数生效.

8.并从编码器发布一个直播流。在这个例子中,我们使用名为myStream的直播流。

关于用API插入onTextData 字幕的例子你可以下载(ModulePublishOnTextData) 模块,它1可以用APIWowza直播流插入onTextDataevent。它从一个文本文件中读取字幕信息,每隔6.5秒,插入一条onTextDataevent这个模块仅仅是为了测试如何使用API向直播流中插入onTextDataevent。你可以参考它开发你自己的模块下载:PublishOnTextData.zip

插入 AMF onCaption 字幕

这个部分介绍了如何 section describes how to set up your liveapplication to ingest Action Message Format (AMF)onCaptioncaptions.Wowza Streaming Engine 支持
两种类型的 AMFonCaptionevent.

第一种包含:

·一个onCaptionInfoevent 定义了讲话者字幕轨道信息。这个信息可能会包含一组讲话者和一组字幕轨道。

·onCaptionevent里面定义了实际的字幕信息。包含一组字幕数据和一个可选的讲话者的索引,它指向onCaptionInfo中讲话者.

第二种包含一个"708"类型的onCaptionInfo,这个类型的字幕包含Base64编码的CEA-608 或CEA-708 字幕数据。Wowza Streaming Engine 仅插入CEA-608 字幕数据(包括paint-on, roll-up, 或 pop-on 三种模式).

配置onCaption 字幕

1.在Wowza Streaming EngineManager管理界面中,点击Applicationstab页,在左侧导航菜单中点击直播应用名(例如live)

2.Setup页面,点击Edit。在界面下部分的Closed Caption Sources区域选择onCaptionInfo events in live streams。然后点击Save,最后根据提示重启Wowza应用。

播放

在Apple iOS 设备上播放


Apple iOS
播放器可以从Apple HLS (M3U8) 流中获取CEA-608格式的数据,将其作为字幕显示。

·在iOS 设备中启用隐藏字幕。要这么做,在设置>视频, 将隐藏字幕设置为ON.
(不过在较新的iOS设备上,已经没有这个功能了)

·用iOS设备的Safari浏览器访问下面的URL:

URL:http://[wowza-ip-address]:1935/[application]/myStream/playlist.m3u8

使用JW Player (RTMP)
JW Player可以播放RTMP流中的字幕,请使用5.x 或 6.5 及更高版本JWPlayer。
你必须下载JW Player的JS库,并在Web服务器上部署一个HTML页面。将下面的直播地址修改为你自己的应用名和流名。
例如,如果你的直播流应用名为cclive,流的stream name 为myStream, 你使用JWPlayer 5.x时使用的页面代码看起来如下所示:

使用JWPlayer 6时,页面代码可能如下所示:

使用Flowplayer (RTMP and Adobe HDS/San Jose)
Flowplayer可以播放RTMP 和 Adobe HDS (San Jose) 流中的字幕(要使用合适的字幕和流插件)。
你必须下载Flowplayer JS库,并在Web服务器上部署一个页面。并将下面的直播地址修改为你自己的应用名和流名。
例如,如果你的直播流应用名为cclive,流的stream name 为myStream, 你的页面代码看起来如下所示:

flowplayer("sample","flowplayer/flowplayer-3.2.15.swf", {

clip: {

url:'http://10.0.0.10:1935/cclive/myStream/manifest.f4m',

urlResolvers: ['f4m'],

provider: 'httpstreaming',

autoPlay: false,

autoBuffering: false,

scaling: 'fit',

},

plugins: {

//streaming plugin configuration

f4m: {

url:"flowplayer/flowplayer.f4m-3.2.9.swf"

},

httpstreaming:{

url:"flowplayer/flowplayer.httpstreaming-3.2.9.swf"

},

captions: {

url:'flowplayer/flowplayer.captions-3.2.9.swf',

captionTarget: 'content'

},

content: {

url:'flowplayer/flowplayer.content-3.2.8.swf',

bottom: '15%',

backgroundColor:'transparent',

backgroundGradient:'none',

border: 0,

opacity: .90,

textDecoration:'outline',

style: {

'body': {

fontSize:'18',

fontFamily:'Verdana, Arial, Helvetica',

fontWeight:'bold',

textAlign:'center',

color:'#ffff00'

}

}

}

},

}

);

Wowza StreamingEngine 4是目前业界功能全面、API接口丰富的流媒体Server产品,采用它作为流媒体服务器产品的案例很多,直播、在线教育、IPTV都有它的用武之地。


公司名称:北京哲想软件有限公司

北京哲想软件官方网站:www.cogitosoft.com

北京哲想软件微信公众平台账号:cogitosoftware

北京哲想软件微博:哲想软件

北京哲想软件邮箱:[email protected]

销售(俞先生)联系方式:+86(010)68421378

微信:18610247936 QQ:368531638


你可能感兴趣的:(Wowza技术:如何为VOD点播配置字幕?)