1.安装Linxu版本Intel Media Server Studio 2017
- 操作系统:CentOS Linux release 7.2.1511 (Core)
- 下载Intel Media Server Studio 2017,参考media server studio getting started guide
- 使用install_sdk_CentOS.sh进行安装;
- 使用 vainfo进行测试, 使用sample进行测试,若无错误,则安装成功
2.安装编译ffmpeg
- 下载ffmpeg ,需要是2.8以后的版本才支持Intel Quick Sync Video
- 安装参考文档quicksync-video-ffmpeg-install-valid
- 配置FFmpeg(–enable-libmfx --enable-nonfree),编译,安装:需要拷贝头文件到/opt/intel/mediasdk/include/mfx目录,并且增加libmfx.pc文件.
- 安装libpciaccess:apt install *pciaccess*
- 重装 libdrm和libva
- 查看是否编译成功:ffmpeg -codecs | grep qsv
- 使用h264_qsv进行转码调试:
ffmpeg -hwaccel qsv -c:v h264_qsv -vsync 0 -i udp://224.2.2.2:9000 -look_ahead 0 -pix_fmt nv12 -c:v h264_qsv -c:a copy -b:v 2M -preset veryfast -f mpegts udp://127.0.0.1:10000
2.qsv在ffmpeg中的CODEC
2.1.命令
ffmpeg -codecs | grep qsv
2.2.decoders
h264_qsv Supported pixel formats: nv12 p010le qsv
hevc_qsv Supported pixel formats: nv12 p010le qsv
mpeg2_qsv Supported pixel formats: nv12 qsv
vc1_qsv Supported pixel formats: nv12 qsv
2.3.encoders
h264_qsv Supported pixel formats: nv12 qsv
hevc_qsv Supported pixel formats: nv12 qsv
mpeg2_qsv Supported pixel formats: nv12 qsv
2.4.pixel formats
YV12:YUV420Planar,Y,V(Cr),U(Cb)依次占用3个平面,先V后U
IYUV,I420:YUV420Planar,Y,U(Cb),V(Cr)依次占用3个平面,与YV12的U、V平面顺序相反,先U后V;
NV12:YUV420 Semi Planar, Y,U(Cb)V(Cr)依次占用2个平面,后面是UV占用一个平面,先U再V交错的一个平面。
NV21:YUV420 Semi Planar, Y,V(Cr)U(Cb)依次占用2个平面,与NV12的UV交错平面中的UV交错顺序相反,其后面也是VU占用一个平面,先V再U交错的一个平面。
参考
Intel_Media_Developers_Guide
integrating-intel-media-sdk-with-ffmpeg-for-muxdemuxing-and-audio-encodedecode-usages
cloud-computing-quicksync-video-ffmpeg-white-paper
quicksync-video-ffmpeg-install-valid