博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Intel® Media SDK Media Samples Linux 学习笔记(转)
阅读量:4615 次
发布时间:2019-06-09

本文共 3561 字,大约阅读时间需要 11 分钟。

最近折腾intel media sdk,主要硬件平台是在HD4600的核显上进行测试,intel media sdk是intel提供的一种基于核显的硬件编解码的解决方案,之前已经有使用ffmpeg进行了测试,可以极大的降低CPU的使用情况。只与编解码出来的画质如何,并没有做多大的对比。从其官方文档来看,可以支持的近9路1080P(H264)的转码。但是对H265的支持,则需要专业版才行,通过so插件扩展的方式才能编解码成功。因此主要做的还是H264的编解码测试。

其提供的samples代码,是使用C++写的,功能很是完善,我这边是在centos7.1(使用ubuntu安装过,不过稳定性不敢恭维,不介意内核经常挂掉的,可以在ubuntu上测试),也就是官方文档中推荐的操作系统上做的一些测试。下面会简单说一下几个测试。

首先,解压了samples的代码后,在每个模块的源码中,都有几个readme-xxx.pdf的文档,也就是对应模块的readme说明文档。有详细说明了对应模块的参数,以及使用示例等,对后面做简单的测试,还是很有帮助的,下文只是对sample做一个简单的说明,并没有readme中的文档详细。

测试,主要有几个,一个是sample_decode,也就是解码的sample;一个是sample_encode,也就是编码的sample;一个是sample_vpp,是视频图像处理的sample;还一个是sample_multi_transcode,做的是编码转换的一个工作。配合intel_gou_top对gpu的使用情况进行关注。

带上-vaapi参数,则说明使用的是显存的数据,这里没有-o做输出,sample_decode的代码是可以不用输出参数的。解码会以最高的GPU使用率进行输出。如果是有输出文件,输出为yuv的文件,默认nv12格式的yuv数据。

由于输入是yuv的数据文件,yuv是不包含分辨率信息的,因此必须-w 宽 -h 高,来告知编码器需要进行编码的分辨率大小是多少。

sample_vpp则是作为视频合成,视频缩放等视频处理的操作,输入为yuv的数据,输出为处理后的yuv的数据,可以通过配置文件的方式,对数据进行多路合成。目前合成一个1080P 2×2的视频图像。由于yuv文件相对较大,因此合成的时候,都使用同一个输入源。

执行操作命令如下:

如果想要查看输入文件的合成情况,可以使用ffplay进行播放:

而由于输入是yuv的数据,数据量比较大,而输出也是yuv的数据,其实vpp的操作,用显存进行操作,反倒效率会比较低,毕竟需要将内存的yuv数据拷贝到显存,然后合成后的显存数据再拷贝到内存。所以可以将-vaapi参数去掉。

sample_multi_transcode是可以执行多路的转码,可以将一个文件作为解码后的输入源,根据这个源再做其余的转码,有个join session的概念,据说join的操作,可以提高不少的效率,具体多少,这个还没研究太深。

这边的配置,1080P_30fps.264解码后作为后面几个的输入源,-i::sink说明其作为输出源,而后面两个-i::source,则说明使用-o::sink作为输入源。

执行的话,只需要执行

执行期间,都可以通过intel_gpu_top进行对gpu使用情况的查看。intel提供的sample代码已经将所有的API都有做了相关的演示,可以很方便的对API进行一个理解以及自己往上面添加log之类的操作,可以很好的调试一些信息。整体来说,实现了一个GPU该有的大部分功能。有初步做了一些测试,编解码/VPP操作一个分辨率的视频,GPU使用情况是编码>解码>VPP。

转载请注明: 转载自

本文链接地址:

转载于:https://www.cnblogs.com/gune/p/6488770.html

你可能感兴趣的文章
CSS-上下文选择器
查看>>
ionic repeat 重复最后一个时要执行某个函数
查看>>
1.初识代码审计-基础
查看>>
[Vue-rx] Stream an API using RxJS into a Vue.js Template
查看>>
解决VC几个编译问题的方法——好用
查看>>
SPOJ #11 Factorial
查看>>
City Upgrades
查看>>
“人少也能办大事”---K2 BPM老客户交流会
查看>>
关于七牛进行图片添加文字水印操作小计
查看>>
DataSource数据库的使用
查看>>
CentOS开启samba实现文件共享
查看>>
MSSQL使用sqlbulkcopy批量插入数据
查看>>
证明一个数能被3整除,当且仅当它的各位数的和能被3整除
查看>>
2018秋寒假作业4—PTA编程总结1
查看>>
android自适应屏幕
查看>>
2019-北航面向对象-电梯作业总结
查看>>
SqlHelper
查看>>
初识算法、数据结构
查看>>
Luogu4069 SDOI2016 游戏 树链剖分、李超线段树
查看>>
Java的内部类真的那么难以理解?
查看>>