内容大纲
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为一个直播流配置转码?。
-
如果你的硬件支持,那么你可以体验到硬件加速编码的性能,但你要尽量使用最新的驱动软件:
- 支持Intel Quick Sync 硬件加速编码的服务器
- Server specifications for NVIDIA hardware acceleration with Wowza Transcoder
- 支持Intel Quick Sync 硬件加速编码的服务器
- 当使用硬件加速编码时,请以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 软件编码方案。