更快的H.265 / HEVC视频编码与Nvidia的GTX960 GPU和ffmpeg

用一半的比特率时,H.265承诺在同等图像质量的H.264,所以你可曾想过有关转换的H.264视频,H.265 / HEVC,以减少使用视频的空间。但是,如果你曾经尝试转码的影片,如工具手刹,你就会知道这个过程可以是非常慢的,和一个电影可能需要几个小时甚至一台具有功率处理器。然而,有硬件加速编码一个更好的解决方案fster由于在一些英特尔和Nvidia图形卡可用。为此,GearBest送我铭瑄MS-GTX960显卡,第二代麦克斯韦的GPU,支持H.265加速视频编码,并承诺高达500 fps的视频编码。所以,我已经把显卡在测试中运行Ubuntu 14.04的计算机,并报告我的一些研究结果在这里。类似的指令也可以跟着在Windows中。

为了充分利用Nvidia的麦克斯韦2的GPU功能,你需要下载和安装Nvidia的视频编解码器的SDK。最新的版本(6.0.1)要求NVIDIA驱动358.xx或更高,我的系统有版本352.xx,所以我也跟着一些说明安装最新的驱动程序在Ubuntu 14.04。

重新启动后我安装了最新的358.16驱动程序。

Nvidia_Drivers_358

不知不觉中,这些字体是安装后非常小权的xorg.conf不见了,所以我重新使用以下命令:

然后,我调整字体大小进一步统一调整工具。

下一步是下载并解压nvidia_video_sdk_6.0.1.zip到工作目录:

自述文件中的说明简单地告诉你去样品目录,输入make以构建样品,但我不得不这样做几个步骤:

我也不得不修改样品/ NvTranscoder / Makefile文件来代替:=由+ = 在LDFLAGS面前。

终于我可以成功打造了样本:

有在SDK几个样品:NvEncoder,NvEncoderCudaInterop,NvEncoderD3DInterop,NvEncoderLowLatency,NvEncoderPerf,NvTranscoder,NvDecodeD3D9和NvDecodeGL。对于这篇文章的目的,我用NvTranscoder使用GPU H.264视频转换为H.265。

起初,我曾与错误的一些问题:

我跟着一个设置在搅拌机的解决方法,并没有一开始工作,但使用NvTranscoder使用sudo一次后,我可以使用的工具,然后以普通用户身份。

这里的转码与高品质预设一个H.264 1080p视频输出。

视频持续2分43秒(总共4901帧),和编码是在约32秒的意思进行比实时快约5倍,并在156.5 fps的平均。

我重复了同样的测试与高性能预设。

解码了约24秒,205帧。它看起来很不错,但我想同样的测试,使用H.265射频质量设置为25手刹,前后历时4分30秒的视频编码,或比与GPU慢约9倍。作为参考,我的电脑是基于主频为4.0 GHz的AMD FX8350八核处理器。

但后来我试图播放的视频,我找不到任何工具打他们,NvTranscode似乎产生原始的H.265视频数据,所以,我不想写我自己的小程序,我发现的ffmpeg还支持nvenc,只是默认情况下不,你必须自己编译。

有指示,建立与ffmpeg的nvenc在Ubuntu 15.10,但他们并没有在Ubuntu 14.04工作,所以我混那些与ffmpeg的Ubuntu的编制指南建造它为我的电脑。

首先,我们需要安装一些依赖关系,并创建一个工作目录:

您还需要下载并安装/编译取决于我们要启用的编解码器的一些额外的软件包。我将跳过H.264和H.265,因为这会被Nvidia的GPU来处理,而是和使AAC和MP3音频编码器,VP8 / VP9和XviD视频解码器和编码器,以及libopus解码器和编码器的建设说明指南:

现在,我会下载并解压的ffmpeg快照(2016年1月3日)和所需的NVENC 6.0 SDK头文件复制到/ usr / local / include目录:

在配置和ffmpeg的建设与nvenc启用:

您也可以选择安装它(我做到了):

这将在$ HOME /斌/ ffmpeg的安装。现在,我们可以验证的H.264和H.265启用nvenc支持:

完善。时间到了考验我们的1080p H.264视频样本,和编码在2000 kbps的。

它花了30秒,大约在同一时间与NvTranscode,但这次我和音频悦目的视频,我可以没有任何通知而视觉质量下降。

我反复试了H.264 1080P影片持续1小时57分钟29秒。这部电影的H.264码流进行编码,在2150 kbps的,所以一半,以减少文件的大小我所编码的电影在1075 kbps的(-b:v 1075k选项)。该编码只用了13分12秒,或约9倍的速度实时218帧。

我还检查了转码过程中的一些GPU的详细信息:

这表明,例如,它不马克塞斯GPU的功率消耗(P 2模式:33瓦)。我的处理器负载不过是有点高于预期,虽然不是100%所有的时间将是软件视频转码的情况。

在GPU加速视频转码的CPU使用率

在英伟达GPU的CPU占用率加速视频转码

除了节省时间,视频转码与GPU图形也应该降低您的电费。多少钱完全取决于您的视频库的大小,电费和计算机的整体功耗。

而原来的文件大小为2.0GB,该H.265视频只有985 MB的大,和视频质量显得很接近原始视频的一。

最后,我转码4K的H.264视频@ 30 FPS(big_buck_bunny_4k_H264_30fps.mp4)的略少一半的比特率(3500 kbps的用于H.265 VS 7480 kbps的对H.264),并用了6分56秒编码10分30秒的视频。当检查质量的主要问题是在我的电脑疲于应付的H.265 4K视频使用,有很多文物在时间和声音削减图腾和VLC视频播放器的时候,但视频只打了罚款ffplay和科迪。

我想感谢GearBest提供铭瑄MS-GTX960显卡售价为$二百四十零点零四在其网站上。

Read more: http://www.cnx-software.com/2016/01/04/faster-h-265hevc-video-encoding-with-nvidia-gtx960-gpu-and-ffmpeg/#ixzz3wIAR7w65

标签