建设银行官方网站,软文网站模板,emlog怎么换wordpress,有哪些实用的网络推广方法文章目录ffmpeg硬解码与软解码的压测一、基本知识二、压测实验1. 实验条件及工具说明2. 压测脚本3. 实验数据结果ffmpeg硬解码与软解码的压测
一、基本知识
本文基于intel集显进行压测
软解码#xff1a;cpu对视频进行解码硬解码#xff1a;显卡或者多媒体处理芯片对视频进…
文章目录ffmpeg硬解码与软解码的压测一、基本知识二、压测实验1. 实验条件及工具说明2. 压测脚本3. 实验数据结果ffmpeg硬解码与软解码的压测
一、基本知识
本文基于intel集显进行压测
软解码cpu对视频进行解码硬解码显卡或者多媒体处理芯片对视频进行解码 ffmpeg可以基于vaapi插件或者qsv加速库进行硬解码 参考 视频和视频帧Intel GPU核显的编解码故事 · FFmpeg-vaapi是一个FFmpeg插件它提供基于低级VAAPI接口的硬件加速利用行业标准VAAPI在英特尔GPU上执行高性能视频编解码器视频处理和转码功能。 · FFmpeg-qsv是一个FFmpeg插件提供基于Intel GPU的硬件加速。 它提供基于Intel Media SDK库的高性能视频编解码器视频处理和转码功能。
二、压测实验
1. 实验条件及工具说明
内存32GB操作系统22.04 UbuntuCPU 12核 12th Gen Intel® Core™ i7-12700 -- 限制使用6核视频2k 分辨率intel_gpu_tools 可通过apt-get install intel_gpu_tools命令安装新建一个窗口键入intel_gpu_top可以观察gpu使用情况
2. 压测脚本
原始版本
#!/bin/bash
read thread_numtmp_fifofile/tmp/$$.fifo
mkfifo $tmp_fifofile # 新建一个FIFO类型的文件
exec 6$tmp_fifofile # 将FD6指向FIFO类型
rm $tmp_fifofile #删也可以#根据线程总数量设置令牌个数
#事实上就是在fd6中放置了$thread_num个回车符
for ((i0;i${thread_num};i))
doecho
done 6start_timedate %s #运行的开始时间
for ((i0;i${thread_num};i)) # 找到data文件夹下所有bam格式的文件
do# 一个read -u6命令执行一次就从FD6中减去一个回车符然后向下执行# 当FD6中没有回车符时就停止从而实现线程数量控制read -u6{ffmpeg -i 10min39.mp4 -f null - -benchmarkecho 6}
done
wait
stop_timedate %sexec 6-
expr $stop_time - $start_time
echo over
但在运行过程中会出现以下问题 -bash: wait: 警告 job stopped 在《Unix 环境高级编程》第9.8节作业控制中讲到“如果后台程序试图读取终端这并不是一个错误但是终端驱动程序将检测这种情况并向后台作业发送一个特定信号SIGTTIN该信号会停止此后台程序并向用户发送通知”。
修改之后的版本加上 /dev/null
#!/bin/bash
read thread_numtmp_fifofile/tmp/$$.fifo
mkfifo $tmp_fifofile # 新建一个FIFO类型的文件
exec 6$tmp_fifofile # 将FD6指向FIFO类型
rm $tmp_fifofile #删也可以#根据线程总数量设置令牌个数
#事实上就是在fd6中放置了$thread_num个回车符
for ((i0;i${thread_num};i))
doecho
done 6start_timedate %s #运行的开始时间
for ((i0;i${thread_num};i)) # 找到data文件夹下所有bam格式的文件
do# 一个read -u6命令执行一次就从FD6中减去一个回车符然后向下执行# 当FD6中没有回车符时就停止从而实现线程数量控制read -u6{ffmpeg -i 10min39.mp4 -f null - -benchmarkecho 6} /dev/null
done
wait
stop_timedate %sexec 6-
expr $stop_time - $start_time
echo over
以上shell脚本为软解码版本硬解码版本只需将ffmpeg -i 10min39.mp4 -f null - -benchmark改成ffmpeg -hwaccel qsv -i 10min39.mp4 -f null - -benchmark
3. 实验数据结果
po出一部分解码速度实验结果
实验结果分析 1、从实验对比数据可以看出硬编码的解码速率更快、cpu使用率更小、内存占用更少皆优胜于软解码软编码不占用gpu硬编码在面对并发数5-100gpu使用率都会达到100% 2、在实验环境下软解码的临界并发数位于21-22区间硬解码在面对100线程并发数仍能达到快于正常视频播放速率的解码速率 3、在实验环境下若想保证解码速率不慢于正常视频播放速率对软解码并发数应控制在不大于20对硬解码并发数不超过100 4、硬解码的cpu使用率先随着并发数增多而增加后随着并发数增多而减少降低可能由于解码速率变慢cpu能够快速应对多个线程的切换
注以上信息欢迎大佬们指正