我想知道是否能获得更好的图形卡,它可以使用手刹在我的机器上加速h264编码吗?
如果是这样,我如何知道哪种显卡将支持此功能?
我知道GPU可以对h264进行硬件解码,但是不确定编码。
我想知道是否能获得更好的图形卡,它可以使用手刹在我的机器上加速h264编码吗?
如果是这样,我如何知道哪种显卡将支持此功能?
我知道GPU可以对h264进行硬件解码,但是不确定编码。
Answers:
使用手刹,答案是否定的。Handbrake是仅CPU的h.264编码器,尽管它现在 可以使用OpenCL进行视频缩放,并且对DXVA进行视频解码也有一些支持。
slhck链接的问题提到了MediaCoder,但它需要Nvidia显卡或具有第二代图形内核的Intel CPU。
有一些较旧的产品已经过时,特别是Badaboom和ATi Avivo软件。
Badaboom可以使用Nvidia和Intel图形处理器来加快编码过程,但现在已经到期,并且不支持更新的图形卡。
ATi拥有自己的视频编码器,该视频编码器在被合并到包含AMD视频转换器的AMD编解码器程序包中之前就被称为“ Avivo”,尽管它不再可用。
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
目前,Handbrake支持以下用于H.264 / AVC的硬件加速编码器:
英特尔QuickSync(在Windows和Linux上)。这至少与基于Intel的Sandybridge(第二代Core)-系列处理器系列兼容,该系列处理器系列启用了集成显卡并向操作系统公开。为获得可接受的编码质量而推荐的硬件:Haswell(第四代Core系列)及其以后的产品,引入了细粒度目标级别(TU),超前功能(例如LA-BRC和ICQ编码模式)的概念,具有明显更好的性能。请参阅此处的手刹文档中的使用指南。
NVIDIA的NVENC:这至少需要NVIDIA的Kepler(GK +)系列GPU和更高版本,以及高性能消费类SKU(GTX系列)和专业产品(基于Kepler及更高版本的Quadro和Tesla GPU)。Windows和Linux均可使用。
值得注意的是,使用NVENC,您将被人为地限制为在消费者SKU上最多同时进行两个编码会话,而专业阵容则不受此影响。有关特定编码器功能的参考,请参阅GPU矩阵。为了获得最佳的编码器性能和质量,请坚持使用Pascal和Volta GPU 的最新版本。
可选地:
就苹果公司的支持而言,这充其量只是暂时的。该VideoToolBox API,其中超过手刹的范围内实施,也似乎有一个非常有限的控制。即使Handbrake在上游采用了它,也不要期望在质量保持和产量方面出现奇迹。
请注意,与目前一样,您可能需要使用最新的每晚版本才能使用平台上的最新编码器功能。将来肯定会改变。