目录

前言:

1.iso/os x平台

2.windows平台

3.linux平台

4.Tips:

5.结论:


前言:

视频硬解码的过程就是把视频提取成图片变显示出来,就是播放器播放视频的过程,就可以理解为解码的过程。

在不同的系统平台上,ffmpeg支持不同的硬件加速框架。

FFmpeg编解码的那些事(3)-视频硬解码的基础知识-LMLPHP

1.iso/os x平台

普遍支持videotoolbox和opencv对视频进行硬加速,只是对h264可以进行硬解码。

2.windows平台

可以使用 ffmpeg -hwaccels 命令来查看支持哪些

FFmpeg编解码的那些事(3)-视频硬解码的基础知识-LMLPHP

可以看到windows下有很多硬加速框架

3.linux平台

普遍支持opencv和vulkan的硬加速框架

4.Tips:

cuda:nvdia显卡

vaapi:有intel主导的一套开源的库(LibVA) 以及API规范

qsv:有intel开发的专门用于视频编码和解码的技术

opencl:一套跨平台的视频加速框架

dxva2和d3d11va:由windows系统开发的一套视频加速框架。

5.结论:

在ffmpeg开发硬解码的过程中,首先要了解上面的一些基本信息,根据自身需求调用不同的硬加速api,如果要做通用的硬解码,最好需要系统提供的api,免去识别硬件,例如如果选用了qsv那么只能支持intel的cpu,用amd的cpu就不能进行加速。所以windows下开发,我喜欢选用dxva2来进行视频加速。

06-20 09:03