多协议、性能稳定、丰富API的流媒体服务器软件
如何确认Wowza Transcoder正在使用哪一个转码技术实现?
Wowza Streaming Engine 的转码功能(Transcoder)支持Windows平台和Linux平台下的Intel Quick Sync 以及 NVIDIA NVENC 硬件加速编码,以及Windows平台下的NVIDIA CUDA 加速编码。 你可以根据Wowza Streaming Engine的log日志中的信息,来确认当前是否正在使用硬件加速编码,以及哪一个硬件加速编码技术。

内容大纲


Intel Quick Sync 加速方案

NVIDIA NVENC 加速方案

NVIDIA CUDA 加速方案

MainConcept 软件编码

注意事项

Intel Quick Sync 加速方案


Wowza Streaming Engine软件可以使用Intel Media SDK 来实现Windows 和 Linux 系统下的Quick Sync 技术的加速编码。 当Wowza Transcoder 第一次被调用时,它会检测是否有Quick Sync 资源可用。 要确认是否可以使用Quick Sync 硬件加速编码,可以检查日志中是否有对应的说明:

如果Quick Sync 是可用的
JNI:TranscoderSession.isQuickSyncAvailable[streamName]: Intel Quick Sync hardware acceleration is available
		
如果Quick Sync 不可用
JNI:TranscoderSession.isQuickSyncAvailable[streamName]: Intel Quick Sync hardware acceleration is NOT available
		
要使用Quick Sync 编码,你需要在[install-dir]/transcoder/templates/[template].xml文件中,将Encode/Video/Implementation参数设置为QuickSync。 如果你设置了QuickSync编码,但是这个硬件编码资源不可用(没有找到这个资源),那么Wowza Transcoder 将会使用默认的MainConcept 软件编码方案

NVIDIA NVENC 加速方案


Wowza Media Server 软件 (3.6版本)以及Wowza Streaming Engine 软件都可以利用Kepler GPU架构的NVIDIA显卡在64位Windows和linux平台下实现硬件加速编码功能。 这些显卡包含了基于硬件的NVENC H.264 视频编码技术。当Wowza Transcoder 第一次被调用时,它会检测NVIDIA NVENC 资源是否可用。 要确认是否可以使用NVIDIA NVENC 硬件加速编码,可以检查日志中是否有对应的说明:

如果NVENC 是可用的
JNI:TranscoderSession.isCUDAAvailable[streamName]: NVidia NVENC hardware acceleration is available
		
如果NVENC 不可用
JNI:TranscoderSession.isCUDAAvailable[streamName]: NVidia NVENC hardware acceleration is NOT available
		
要使用NVENC编码,请在[install-dir]/transcoder/templates/[template].xml文件中,将Encode/Video/Implementation参数设置为NVENC。 如果你设置了NVENC编码,但是这个NVENC硬件加速编码资源不可用(没有找到这个资源),那么Wowza Transcoder 将会使用NVIDIA CUDA 加速编码方案(当然,前提是你的硬件服务器和Wowza版本支持这个技术)。 如果NVIDIA加速编码方案也不支持,Wowza Transcoder 将使用MainConcept 软件编码方案

注意:较老的NVIDIA显卡驱动可能会限制基于NVENC技术的视频编码同时只能最多对30路进行编码。因此,请更新您的显卡驱动,来避免这个限制。

NVIDIA CUDA acceleration


重要:在最新的NVIDIA显卡驱动上(340及以上版本)已经不支持CUDA 加速编码了。因此从Wowza Streaming Engine™ 4.1.2版本开始,Wowza已经不支持基于CUDA的加速编码了。 在Windows平台上,Wowza media server 软件利用NVIDIA CUDA SDK 来实现基于CUDA技术的加速编码方案。 当Wowza Transcoder 被第一次调用时,它会检查NVIDIA CUDA 资源是否可用。要确认是否可以使用NVIDIA CUDA 硬件加速编码,可以检查日志中是否有对应的说明:

如果CUDA 是可用的
JNI:TranscoderSession.isCUDAAvailable[streamName]: NVidia CUDA hardware acceleration is available
		
如果CUDA 不可用
JNI:TranscoderSession.isCUDAAvailable[streamName]: NVidia CUDA hardware acceleration is NOT available
		
要使用CUDA 编码,请在[install-dir]/transcoder/templates/[template].xml文件中,将Encode/Video/Implementation参数设置为CUDA。 如果你选择使用CUDA编码,但是CUDA硬件加速编码是不可用的,那么Wowza Transcoder 将使用默认的MainConcept 软件编码方案.

MainConcept 软件编码方案


如果你的硬件不支持加速编码技术,你可以使用默认的MainConcept 软件编码。它是不支持硬件加速技术的。要使用MainConcept 软件编码方案,请在[install-dir]/transcoder/templates/[template].xml文件中,将Encode/Video/Implementation参数设置为default

注意事项


  • 如果你现在使用的是Wowza Streaming Engine 软件,你可以用Wowza Streaming Engine Manager管理界面配置Implementation参数(包括编码和解码)。要了解更多,请阅读如何用Wowza Transcoder为一个直播流配置转码?

  • 如果你的硬件支持,那么你可以体验到硬件加速编码的性能,但你要尽量使用最新的驱动软件:


  • 当使用硬件加速编码时,请以Standalone模式运行Wowza media server。(请参考Wowza Streaming Engine 软件的启动和停止。以系统服务模式运行时,只能使用默认的MainConcept 软件编码。

  • 在最近的一些Windows系统上,由于基于安全考虑的Session 0 Isolation技术,Intel Quick Sync 和 NVIDIA CUDA 硬件加速技术可能不支持系统服务模式下运行的Wowza Media Server,要了解更多如何解决这个问题,请参考如何在Windows系统服务模式下启用硬件加速转码?

  • 如果Wowza media server 服务器同时具有NVIDIA NVENC 和 CUDA 显卡,当Wowza Transcoder被调用后,你会在日志中看到以下说明:
    JNI:TranscoderSession.isCUDAAvailable[streamName]: NVidia CUDA and NVENC hardware acceleration is available
    			
    要设置使用哪一个编码技术,请在[install-dir]/transcoder/templates/[template].xml文件中,将Encode/Video/Implementation参数设置为相应的值。 注意,NVENC 编码速度相当于CUDA编码速度的四倍。

  • 如果你的NVIDIA显卡没有NVENC 硬件视频编码功能(大部分基于Kepler GPU架构的NVIDIA显卡都带有这个功能),那么Wowza Transcoder将使用NVIDIA CUDA 加速编码(如果硬件和Wowza的版本都支持的话),如果这些硬件加速编码方案都不支持,那么Wowza Transcoder就会使用最基本的MainConcept 软件编码方案。