镜像描述
Intel® iVTAL 是一种用于视频处理 加速的软件库,利用英特尔® 处理器中的硬件加速性能,以提供 快速而优化的视频处理解决方案。通过使用 Intel® iVTAL 库, 开发人员可以轻松地在其应用程序中集成视频处理功能。
视频处理专用镜像是一款集成intel视频处理调优工具iVTAL的专用的视频处理镜像,镜像内置视频抽帧工具ivtalDecoder和视频转码工具FFmepg(intel版),支持常见的音频和视频格式。专用视频处理镜像专为提升视频转码/解码/编码任务的速度和效率而生,告别通用镜像的平庸性能。
配置要求
推荐规格:c7.4xlarge.2或者c8.4xlarge.2
推荐配置:vCPU≥16核,内存≥32G
免责说明
免责声明:本公司发布的视频处理专用镜像,集成的转码和解码工具均来源自第三方或者开源社区,仅供用户参考和使用。本公司不对因不当使用该镜像而导致的任何损害承担法律责任,用户应当确保其使用行为符合相关法律法规,并遵守相应协议。
实践指南
视频转码工具(英特尔版)
视频转码工具介绍
转码是将视频码流转换成另一个视频码流的过程。使用转码功能可以实现将视频转换成流畅、标清、高清以及超清等输出,从而用户可以选择合适的视频播放。视频转码最常用的三个软件工具是FFmpeg,x264,x265。在FFmpeg(version release/4.4),x264( version 0.164),x265(version 3.6)这三个工具的基础上,intel采用MVReuse算法策略实施了进一步的优化,能够在几乎不影响视频质量·压缩率的情况下,显著提升转码速度。
视频转码工具命令参数说明
运行一个最简单的视频转码所需要的参数如下:
-y 覆盖输出文件
-i 指定输入视频
-c:v 指定视频编码器,libx265转码相比于libx264能提供更好的压缩率,但速度也会变慢
-crf 指定视频压缩力度,越小压缩率越低质量越好,越大压缩率越高质量越差
-mvreuse 2表示开启intel优化,如果命令中没有-mvreuse 2则默认不开启英特尔优化,此时转码效果与使用官方的FFmpeg(version release/4.4),x264( version 0.164),x265(version 3.6)效果相同
-psnr 显示转码后的质量分数
指定输出视频文件
更多复杂功能视频转码参数请参见ffmpeg -h full。
运行示例1
#执行命令:
ffmpeg -y -i movie.mp4 -c:v libx264 -mvreuse 2 -crf 22 -psnr out.mp4
#命令解释:
ffmpeg 使用视频转码工具(英特尔版)
-y 想要默认覆盖输出文件
-i movie.mp4 输入1920x1080 24fps的电影场景视频
-c:v libx264 使用libx264编码器
-mvreuse 2 开启intel优化
-crf 22 控制压缩力度为22
-psnr 想看到转码后的质量分数
out.mp4 指定输出视频的名字
执行结果如图
#日志解释:
fps=125 视频转码实时吐帧量,用来衡量视频转码速度指标
avg=48.337 视频转码后质量分数,用来衡量视频转码质量指标
kb/s=6146.21 视频转码后平均码率,用来衡量视频转码压缩率指标
运行示例2
#执行命令:
ffmpeg -y -i movie.mp4 -c:v libx265 -mvreuse 2 -crf 28 -psnr out.mp4
#命令解释:
ffmpeg 使用视频转码工具(英特尔版)
-y 想要默认覆盖输出文件
-i movie.mp4 输入1920x1080 24fps的电影场景视频
-c:v libx265 使用libx265编码器
-mvreuse 2 开启intel优化
-crf 28 控制压缩力度为28
-psnr 想看到转码后的质量分数
out.mp4 指定输出视频的名字
执行结果如图
#日志解释:
58.51fps 视频转码实时吐帧量,用来衡量视频转码速度指标
PSNR:44.283 视频转码后质量分数,用来衡量视频转码质量指标
2094.95kb/s 视频转码后平均码率,用来衡量视频转码压缩率指标
视频抽帧工具(英特尔版)
视频抽帧工具介绍
视频抽帧可以从原始视频中提取关键帧,用于后续AI模型的内容分析、检索或建模。它还能显著降低数据量,加速视频处理流程,如智能分析、转码或特征提取等任务。视频抽帧最常用的软件工具是FFmpeg。参考FFmpeg(version release/6.1),intel实施了视频包预取和自适应线程优化,显著提升抽帧速度。
说明
Decoder功能仅针对6.1版本的ffmpeg且仅针对每400帧抽取1帧的情况下有效率提升。
抽帧工具ivtalDecoder转码参数说明
-mode 0 -fi 指定抽帧间隔
-thread 指定线程数量
指定输入视频
指定输出抽帧后像素文件
运行示例1
# 执行命令
ivtalDecoder -mode 0 -fi 400 -thread 1 movie.mp4 movie-ivtal2.yuv
#命令解释:
ivtalDecoder 使用视频抽帧工具(英特尔版)
-mode 0 -fi 400 指定每隔400帧抽一帧
-thread 1 用一个线程
movie.mp4 输入1920x1080 24fps的电影场景视频
movie-ivtal2.yuv 指定输出像素文件的名字
执行结果如图
#日志解释:
save yuv=2 一共抽出来多少帧
real=0.713 一共耗时多少
性能提升说明
下面是在规格c8.4xlarge.2云主机下的视频转码测试结果对比的数据。
优化前
ffmpeg -i movie.mp4 -c:v libx264 -crf 22 -psnr out.mp4
优化后
ffmpeg -i movie.mp4 -c:v libx264 -mvreuse 2 -crf 22 -psnr out.mp4
过程中cpu利用率为11%。
| 优化前 | 优化后 |
---|---|---|
PSNR | 48.3 | 48.3 |
bitrate | 6399.5 | 6173.9 |
fps | 55 | 85 |
cpu利用率 | 18 | 11 |
优化后相比优化前,cpu利用率明显下降,视频转码fps提升(85-55)/55=55%。