可以使用GPU编码h264吗?


13

我想知道是否能获得更好的图形卡,它可以使用手刹在我的机器上加速h264编码吗?

如果是这样,我如何知道哪种显卡将支持此功能?

我知道GPU可以对h264进行硬件解码,但是不确定编码。


相关信息:加速视频压缩 –无论如何,您都希望拥有一张NVIDIA卡并愿意花钱。
slhck 2011年

另一个相关的博客文章:使用GPU编码视频
slhck 2011年

对于h.264编码,手刹使用软件编码器x264(videolan)。以下一些答案暗示手刹使用ffmpeg,可以使用x264或硬件(GPU)实现。尽管这个古老的(但仍然很重要)的问题可能不是在问“如何使手刹更快”,而是“如何使h.264编码更快”。答案具有保质期(有些已经过期);但是目前,如果执行ML和/或批处理,则可能必须将实现与您的硬件相匹配
michael

首先,我发现来自ffmeg的评论很有趣:“硬件编码器产生的输出质量通常比质量好的编码器(如x264)低得多,但通常更快,并且不
迈克尔

Answers:


7

使用手刹,答案是否定的。Handbrake是仅CPU的h.264编码器,尽管它现在 可以使用OpenCL进行视频缩放,并且对DXVA进行视频解码也有一些支持。

slhck链接的问题提到了MediaCoder,但它需要Nvidia显卡或具有第二代图形内核的Intel CPU。

有一些较旧的产品已经过时,特别是Badaboom和ATi Avivo软件。

Badaboom可以使用Nvidia和Intel图形处理器来加快编码过程,但现在已经到期,并且不支持更新的图形卡。

ATi拥有自己的视频编码器,该视频编码器在被合并到包含AMD视频转换器的AMD编解码器程序包中之前就被称为“ Avivo”,尽管它不再可用。


因此,我目前正在使用AMD CPU,这是否对我来说是浪费时间?可以是任何NVIDIA卡-哦,它必须支持CUDA吗?
彼得

我在en.wikipedia.org/wiki/CUDA中找到了此链接,该链接表明很多NVIDIA卡都支持CUDA。
彼得

我已经通过指向AMD软件包的链接更新了我的答案,该链接可以帮助您使用GPU编码视频,但需要HD2000系列卡或更高版本。如果您拥有特别强大的CPU但预算有限的显卡,则手刹可能仍会更快。
Mokubai

Badaboom将于2012年4月18日寿终正寝。
HVS 2012年

2
上面的答案不正确/不再正确。
totaam

4

x264现在支持OpenCL编码加速。您获得多大的加速度将取决于您的图形卡的性能,在我的GTS 450上我什么也没有,而速度较慢的卡它实际上会减慢编码速度。更好的卡可能会有所帮助。您需要做的就是在x264命令行中添加--opencl。我相信手刹会使用相同的x264库,并且在较新的版本中确实提供相同的OpenCL加速。


我应该如何使用OpenCL编码加速?
Dr.jacky

2

https://trac.ffmpeg.org/wiki/HWAccelIntro

FFmpeg提供了用于硬件加速的子系统。

硬件加速允许使用特定的设备(通常是图形卡>或其他特定的设备)来执行多媒体处理。这允许使用专用硬件来执行苛刻的计算,同时使CPU摆脱这种计算。通常,硬件加速使特定的硬件设备(通常是GPU)能够执行与解码和编码视频流或过滤视频有关的操作。

使用FFmpeg工具时,可通过-hwaccel选项启用硬件辅助解码,该选项可启用特定的解码器。每个解码器可能都有特定的限制(例如,H.264解码器可能仅支持基线配置文件)。通过使用特定的编码器(例如nvenc_h264)来启用硬件辅助编码。仅在少数几个过滤器中支持过滤HW辅助处理,在这种情况下,您可以通过过滤器选项启用OpenCL代码。

有几种硬件加速标准API,FFmpeg在某种程度上支持其中一些。

“ -hwaccel自动”选项允许您选择用于编码会话的基于硬件的加速解码。您可以在输入之前使用“自动”添加此参数(如果x264是使用OpenCL支持编译的,则可以尝试添加-x264opts参数),例如:

ffmpeg -hwaccel auto -i input -vcodec libx264 -x264opts opencl output

抱歉,但是我不记得如何列出“ -hwaccel”的所有可用选项。

您也可以尝试以下方法:https : //wiki.archlinux.org/index.php/Hardware_video_acceleration


尽管它看起来很有用,但似乎并没有专门回答这个问题。您如何添加一些细节,以显示ffmpeg及其参数如何帮助OP。
music2myear

这个答案意味着使用ffmpeg 代替手刹进行h.264编码,这可能很好,因为问题可能只是要求最快的编码方式-并假定GPU会启用此功能。请注意,并非所有GPU都具有同等强大的功能(例如,集成GPU与专用GPU),并且CPU也进行了优化,如果编译库以支持库,则库可以利用这些优化。因此,无论是通过CPU还是GPU,“硬件加速”都是正确的选择。
迈克尔

0

目前,Handbrake支持以下用于H.264 / AVC的硬件加速编码器:

  1. 英特尔QuickSync(在Windows和Linux上)。这至少与基于Intel的Sandybridge(第二代Core)-系列处理器系列兼容,该系列处理器系列启用了集成显卡并向操作系统公开。为获得可接受的编码质量而推荐的硬件:Haswell(第四代Core系列)及其以后的产品,引入了细粒度目标级别(TU),超前功能(例如LA-BRC和ICQ编码模式)的概念,具有明显更好的性能。请参阅此处的手刹文档中的使用指南。

  2. NVIDIA的NVENC:这至少需要NVIDIA的Kepler(GK +)系列GPU和更高版本,以及高性能消费类SKU(GTX系列)和专业产品(基于Kepler及更高版本的Quadro和Tesla GPU)。Windows和Linux均可使用。

值得注意的是,使用NVENC,您将被人为地限制为在消费者SKU上最多同时进行两个编码会话,而专业阵容则不受此影响。有关特定编码器功能的参考,请参阅GPU矩阵。为了获得最佳的编码器性能和质量,请坚持使用PascalVolta GPU 的最新版本。

可选地:

  1. 当前仅适用于Windows的夜间版本中还提供了AMD AMF的编码支持。关于AMD的AMF(使用所有GCN + SKU 的硬件中内置的VCE编码器)的特别说明是在诸如Polaris(RX 400+系列)和Vega等较新的硬件上,针对H.264 / AVC进行了一些高级编码器调整在引入HEVC编码支持时已弃用。AMD 放弃的是B帧编码,不支持自适应量化(AQ),上述基于硬件的编码器(QuickSync和NVENC)已经实现了几代而没有回归的功能。此外,请参阅关于实行什么样的期待吞吐量指标笔记。

就苹果公司的支持而言,这充其量只是暂时的。该VideoToolBox API,其中超过手刹的范围内实施,也似乎有一个非常有限的控制。即使Handbrake在上游采用了它,也不要期望在质量保持和产量方面出现奇迹。

请注意,与目前一样,您可能需要使用最新的每晚版本才能使用平台上的最新编码器功能。将来肯定会改变。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.