多协议、性能稳定、丰富API的流媒体服务器软件
如何用Wowza Transcoder配置H.265转码并对外提供直播服务?
这篇文章介绍了如何创建一个Wowza的直播应用,然后输入一个直播流,用Wowza的Transcoder将其视频转码为HEVC/H.265格式,对外提供直播流服务。
这里的HEVC/H.265转码功能依赖Wowza Streaming Engine™ 软件4.1及以上版本。

内容大纲


关于HEVC/H.265
用Transcode转码为H.265格式
配置一个Wowza的直播应用
配置H.265转码模板
调整CPU资源
使用DivX Web 播放器时需要增加的自定义参数
准备播放器
准备DivX Web 播放器
准备VLC播放器

关于HEVC/H.265


HEVC,也被称之为H.265,是H.264/MPEG-4 AVC的下一代视频编码标准,相比H.264,它的编码压缩率更高。 同样质量下的视频,它需要的带宽更少。HEVC支持8K 的超高分辨率视频,分辨率可以达到8192 x 4320像素。

HEVC/H.265现在还没有被编码器和播放器厂家普遍采用。从Wowza Streaming Engine 4.1开始提供对HEVC/H.265的技术预览版支持。

用Wowza Transcode转码为H.265格式


这部分介绍了如何用Wowza Streaming Engine 将一个直播流转码为H.265视频格式,然后用DivX Web 播放器播放Wowza的MPEG-DASH流,用VLC播放器播放Apple HLS流。

配置一个Wowza直播应用

在Wowza Streaming Engine 管理界面中使用Wowza安装后自带的live应用,启用MPEG-DASH 和 Apple HLS 流协议,然后用最新的H.265转码模板来转码,如下:

  1. 在Wowza Streaming Engine Manager管理界面中,点击Applications菜单,选择live应用。

  2. Playback Types中确认MPEG-DASHApple HLS被启用(打了勾)。

    Wowza Streaming Engine

  3. 点击这个应用下的Transcoder菜单,如果还没有启用Transcoder,则请点击Enable Transcoder.

    Wowza Transcoder

  4. Transcoder被启用后,点击Transcoder页面中SetupTab页的Edit

  5. Fallback Template中选择Transcode H265 Divx (Default)转码模板。

    Wowza Divx h.265

  6. 注意:不要选择Match incoming stream name to template name.

    注意:如果选择了Match incoming stream name to template name ,那么Wowza使用的是跟当前流名字一致的转码文件名的转码模板,只有在没有找到这个流名的转码模板时,才会用fallback 中的选择的转码模板。
  7. 点击Save, 然后点击Restart Now.

    下载所有进入这个应用的直播流都将被这个H.265转码模板来转码

    Wowza

对H.265转码模板进行配置

要配置H.265转码模板,必须用XML来编辑这个转码模板文件。

  1. 在你Wowza的安装机器上,用文本编辑器打开[install-dir]/transcoder/templates/transcode-h265-divx.xml文件。

  2. 编辑其中的<Encode> 和 <Decode> 部分。

    Wowza提供的H.265转码模板自带了三套转码参数:

    • 一个720p的准高清中码率的输出流,码率为5,000,000 bps(相当于4.8Mbps)。默认启用的就是这套转码参数。

    • 一个1080p的高清高码率的输出流,码率为8,000,000 bps(相当于7.6 Mbps),默认是禁用状态的。

    • 一个4K超高清高码率的输出流,码率为12,000,000 bps(相当于11.4 Mbps),默认也是禁用状态的。

  3. 在做参数修改后,记得保存transcode-h265-divx.xml文件。

调整CPU资源

默认情况下,Wowza Transcoder所拥有的CPU资源少于H.265编码所需要的资源。 要解决这个失衡问题,在transcode-h265-divx.xml转码模板文件中的<Encode/Video/Parameters>部分增加以下参数:
<Parameter>
    <Name>mainconcept-h265.performance_level</Name>
    <Value>1</Value>
    <Type>Long</Type>
</Parameter>
			
这个value的范围是1(低质量,低CPU利用率) 到 30 (高质量,高CPU利用率)。默认值是1。 如果你将这个参数设置的过高,有可能会导致编码延时甚至暂停。 如果发生这种情况,你将会在日志中看到SKIPFRAME的信息。

再你对transcode-h265-divx.xml文件做完修改后,请保存,然后返回到Wowza Streaming Engine Manager管理界面。

为DivX Web 播放器正常播放,还需要在Wowza中添加参数

当转码模板配置完成后,你必须在Wowza中添加以下参数,让让DivX Web 播放器能够播放转码输出的H.265视频。

  1. live应用的主界面,点击Propertiestab页。

  2. Quick Links部分点击Custom

  3. Custom参数部分,点击Edit,然后再点击Add Custom Property按钮。

  4. Add Custom Property对话框中,按如下配置,然后点击Add:

    Path - /Root/Application/HTTPStreamer
    Name - httpOriginMode
    Type - String
    Value - on

  5. 重复上面的步骤,添加如下参数:

    Path - /Root/Application/HTTPStreamer
    Name - mpegdashCacheControlPlaylist
    Type - String
    Value - max-age=1

    Path - /Root/Application/HTTPStreamer
    Name - mpegdashCacheControlMediaChunk
    Type - String
    Value - max-age=3600

  6. 点击Save,然后重启应用。

    Wowza Streaming Engine H.265

另外,你也可以在[install-dir]/conf/live/下的Application.xml中添加这些参数。 用文本编辑器打开Application.xml,在<HTTPStreamer>/<Properties>中添加以下配置:
<Property>
    <Name>httpOriginMode</Name>
    <Value>on</Value>
    <Type>String</Type>
</Property>
<Property>
    <Name>mpegdashCacheControlPlaylist</Name>
    <Value>max-age=1</Value>
    <Type>String</Type>
</Property>
<Property>
    <Name>mpegdashCacheControlMediaChunk</Name>
    <Value>max-age=3600</Value>
    <Type>String</Type>
</Property>
		

准备播放器


这部分介绍了如何配置DivX Web 播放器和VLC播放器,用它们来播放转码后输出的H.265编码的720p视频。

准备DivX Web 播放器

  1. http://www.divx.com/en/software/web-player下载DivX Web 播放器,然后安装它。

    重要: 要确认安装了HEVC选项。
  2. 在播放页面的HTML代码中嵌入这个播放器的代码如下所示:

    注意: 这段例子代码假定你正要播放的就是前面配置的720p码流。 如果你在H.265转码模板中改变了encode或decode部分的配置,启用其它编码参数,那么请将这段嵌入页面的代码中的 [stream-name]_[profile-name]做相应的调整。 I如果你启用了多套编码,请参考如何为用转码后的Stream Name Groups 实现码率自适应流传输(ABR)
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
    <html>
    <head>
    <title></title>
    </head>
    
    <body bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#800000" alink="#ff00ff" background="?">
    <object classid="clsid:67DABFBF-D0AB-41fa-9C46-CC0F21721616" width="640" height="380" codebase="http://go.divx.com/plugin/DivXBrowserPlugin.cab">
    
    <param name="custommode" value="none" />
    <param name="autoPlay" value="true" />
    <param name="src" value="http://[wowza-ip-address]:1935/live/[stream-name]_720p/manifest.mpd" />
    
    <embed type="video/divx" src="http://[wowza-ip-address]:1935/live/[stream-name]_720p/manifest.mpd" custommode="none" width="640" height="380" autoPlay="true"  pluginspage="http://go.divx.com/plugin/download/">
    </embed>
    </object>
    <br />No video? <a href="http://www.divx.com/software/divx-plus/web-player" target="_blank">Download</a> the DivX Plus Web Player.
    
    </body>
    </html>
    其中[wowza-ip-address]是Wowza Streaming Engine 的IP地址,[stream-name]是推送到Wowza直播应用上的流名字。

  3. 打开Web页面,确认播放器被正确的加载。

现在所有环节都配置好了,只要开始推流到Wowza Streaming Engine的live应用上,你就应该可以在DivX Web 播放器上看到H.265视频可以正常播放。

准备VLC播放器

  1. http://www.videolan.org/vlc/index.html下载VLC播放器,然后安装它。

  2. 在VLC媒体播放器的Media菜单,点击Open Network Stream

  3. Please enter a network URL的输入框中,输入你要播放的URL,然后点击Play。 比如,你要播放前面转码后输出的720视频,你应该按下面的格式输入这个URL:

    http://[wowza-ip-address]:1935/live/[stream-name]_720p/playlist.m3u8

    其中[wowza-ip-address]是Wowza Streaming Engine的IP地址,[stream-name]是推送到Live应用的流的名字。

VLC播放器默认配置的播放缓冲时间很小,这会导致在刚一开始播放时比较卡顿,但很快就会平滑播放,因为在播放过程中VLC会自动调节这个缓冲时间。 当然,你也可以在Open Media对话框中的Caching上调整这个初始的缓冲时间。