Jer*_*nch 1 cpu ffmpeg sandy-bridge
我有一个 Linux 盒子,想用 ffmpeg 编码一些视频。我听说我的 CPU(第二代酷睿 i5 处理器)具有对 h.264 编码的硬件支持。
是否可以让 ffmpeg 使用它,如果可以的话如何?
截至目前,Linux 上支持英特尔的 QuickSync 技术,并通过两种主要方式公开:VAAPI 和英特尔的 Media SDK。
\n经过适当配置后,您将通过 Intel MediaSDK 获得基于 QuickSync 的编码器,h264_qsv
即hevc_qsv
。查看编码器的使用情况:
ffmpeg -h encoder=h264_qsv\n\nffmpeg -h encoder-hevc_qsv\n
Run Code Online (Sandbox Code Playgroud)\n第二种方法,通过 VAAPI API,要求使用--enable-vaapi
在./configure
阶段传递的选项来构建 FFmpeg。这是 Debian 和 Arch Linux 等发行版的默认设置,因此可以开箱即用。
要列出 FFmpeg 构建上可用的基于 VAAPI 的编码器和过滤器,请运行:
\n$ for i in encoders decoders filters; do\n echo $i:; ffmpeg -hide_banner -${i} | egrep -i "vaapi"\ndone\n
Run Code Online (Sandbox Code Playgroud)\n以及使用情况:
\nffmpeg -h encoder=hevc_vaapi \n\nffmpeg -h encoder=h264_vaapi\n\nffmpeg -h encoder=vp8_vaapi\n\nffmpeg -h encoder=vp9_vaaapi\n
Run Code Online (Sandbox Code Playgroud)\n从上面发布的列表中,可以明显看出上面每个编码器在输出上输出视频编解码器的内容,从 H.265/HEVC 到 VP9。
\n平台支持因平台而异:
\n(A)。从 Sandybridge(第二代英特尔酷睿处理器显卡)到现在,一直支持 H.264 编码。
\n(二)。Skylake 及更高版本支持 HEVC 编码,Kabylake 及更高版本支持 10 位编码。
\n(C)。VP8 编码至少可从 Broadwell(第五代英特尔酷睿处理器显卡)及更高版本获得。
\n(d). VP9 编码至少可从 Kabylake 及以上版本获得。Coffelake 及其他版本将提供 10 位 VP9 编码。
\n关于编码质量的一些额外说明:
\n现在,关于 QSV 的小注释,以及对其进行调整以实现高质量编码:
\n与任何其他基于硬件的编码器一样,英特尔的快速同步编码器与 x264 和 x265 等纯软件编码器相比有一些限制,即质量控制,以及对支持的输入纹理类型的严格限制。因此,如果您正在考虑将 QuickSync 用于任何专业工作流程,请在投资之前评估性能优势与感知编码质量。
\n如果您正在寻找 VAAPI 上的高质量编码,请确保您至少使用 Haswell(英特尔第四代 iGPU),因为该架构引入了诸如 \xe2\x80\x9cTargetUsage\xe2\ 概念等功能x80\x9d(TU)。此功能旨在实现对一系列等级的简单访问,而不需要强迫用户选择比特率和速率控制方法的复杂性。在之前的迭代中,虽然技术上有七个步骤,但实际上只有三个步骤可供使用:质量 (TU1)、平衡 (TU4) 和速度 (TU7)。随着最新的英特尔高清显卡的出现,这种情况发生了变化,每个步骤都可以由英特尔媒体 SDK 完全选择和公开。
\n值得注意的是针对比特率控制算法的新优化,值得注意的概念是 LA-BRC。看看这里。请参阅此答案以获取更多相同内容的指示。
\n目前,英特尔将之前的 QuickSync 技术委托给 MediaSDK 平台,当前和未来的产品将基于 OneVPL。\n请参阅Github 上 MediaSDK 项目的这些过渡说明以了解更多详细信息。
\n 归档时间: |
|
查看次数: |
5205 次 |
最近记录: |