./configure --pkg-config-flags="--static" --extra-libs="-lpthread -lm" --enable-gpl --enable-vaapi --enable-libx264 --enable-nonfree
ffmpeg测试:
我这个u不支持265,我选个264的编码测试下
先是软解, fps 0.8
utry@utry:~/ttff$ date +%Y-%m-%d' '%H-%M-%S.%N | cut -b 1-23; ffmpeg -i "video.MP4" -vf "select=eq(pict_type\,I)" -vsync vfr -qscale:v 2 -f image2 "%08d.jpg";date +%Y-%m-%d' '%H-%M-%S.%N | cut -b 1-23
2020-11-24 15-42-53.874
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 20160609
configuration: --pkg-config-flags=--static --extra-libs='-lpthread -lm' --enable-gpl --enable-vaapi --enable-libx264 --enable-nonfree
libavutil 56. 60.100 / 56. 60.100
libavcodec 58.112.103 / 58.112.103
libavformat 58. 64.100 / 58. 64.100
libavdevice 58. 11.103 / 58. 11.103
libavfilter 7. 90.100 / 7. 90.100
libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
libpostproc 55. 8.100 / 55. 8.100
Input
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2020-09-09T03:21:38.000000Z
com.android.version: 10
Duration: 00:03:29.78, start: 0.000000, bitrate: 28358 kb/s
Stream
Metadata:
creation_time : 2020-09-09T03:21:38.000000Z
handler_name : VideoHandle
Stream
Metadata:
creation_time : 2020-09-09T03:21:38.000000Z
handler_name : SoundHandle
Stream mapping:
Stream
Press [q] to stop, [?] for help
[swscaler @ 0x4346980] deprecated pixel format used, make sure you did set range correctly
Output
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
com.android.version: 10
encoder : Lavf58.64.100
Stream
Metadata:
creation_time : 2020-09-09T03:21:38.000000Z
handler_name : VideoHandle
encoder : Lavc58.112.103 mjpeg
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
frame= 209 fps=0.8 q=2.0 Lsize=N/A time=00:03:28.84 bitrate=N/A speed=0.841x
video:93497kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
2020-11-24 15-47-02.418
utry@utry:~/ttff$
硬解 :fps 1.1
utry@utry:~/ttff$ date +%Y-%m-%d' '%H-%M-%S.%N | cut -b 1-23; ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -i "video.MP4" -vf "select=eq(pict_type\,I)" -vsync vfr -qscale:v 2 -f image2 "%08d.jpg";date +%Y-%m-%d' '%H-%M-%S.%N | cut -b 1-23
2020-11-24 15-50-23.331
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 20160609
configuration: --pkg-config-flags=--static --extra-libs='-lpthread -lm' --enable-gpl --enable-vaapi --enable-libx264 --enable-nonfree
libavutil 56. 60.100 / 56. 60.100
libavcodec 58.112.103 / 58.112.103
libavformat 58. 64.100 / 58. 64.100
libavdevice 58. 11.103 / 58. 11.103
libavfilter 7. 90.100 / 7. 90.100
libswscale 5. 8.100 / 5. 8.100
libswresample 3. 8.100 / 3. 8.100
libpostproc 55. 8.100 / 55. 8.100
Input
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2020-09-09T03:21:38.000000Z
com.android.version: 10
Duration: 00:03:29.78, start: 0.000000, bitrate: 28358 kb/s
Stream
Metadata:
creation_time : 2020-09-09T03:21:38.000000Z
handler_name : VideoHandle
Stream
Metadata:
creation_time : 2020-09-09T03:21:38.000000Z
handler_name : SoundHandle
Stream mapping:
Stream
Press [q] to stop, [?] for help
[swscaler @ 0x4d82500] deprecated pixel format used, make sure you did set range correctly
Output
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
com.android.version: 10
encoder : Lavf58.64.100
Stream
Metadata:
creation_time : 2020-09-09T03:21:38.000000Z
handler_name : VideoHandle
encoder : Lavc58.112.103 mjpeg
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
frame= 209 fps=1.1 q=2.0 Lsize=N/A time=00:03:28.84 bitrate=N/A speed=1.13x
video:93497kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
2020-11-24 15-53-29.202
utry@utry:~/ttff$
我这个u太老了,265都解不了。。。硬件相对于软解,帧率提升将近40%,然后cpu基本上单核60%,软解的话,cpu是直接吃满的,集显可以用
目录目的查找资料新发现1.基本库安装VA API相关库驱动安装Libva:intel-vaapi-driver:libva-utils:检测安装的成果下面开始通过vainfo命令验证显卡支持情况:接下来要验证一下对vaapi编解码调用:然后是编译ffmpeg总结目的最近有学习下ffmpeg,以前正好在搞视频的时候,有稍微了解了下qsv这个东东查找资料在的Intel-Media-SDK的官网瞅瞅看到了ffmpeg专门的一个网站https://trac.ffmpeg.org/wiki/Hardware
英特尔-vaapi驱动程序项目
英特尔GEN图形家族的VA-API(视频加速API)用户模式驱动程序
VA-API是一个开放源代码库和API规范,可提供对视频处理的图形硬件加速功能的访问。 它由一个主库和每个受支持的硬件供应商的特定于驱动程序的加速后端组成。
当前的视频驱动程序后端通过缓冲区和命令的打包提供了到GEN GPU的桥梁,这些缓冲区和命令将发送到i915驱动程序,以行使硬件和着色器功能来进行视频解码,编码和处理。
如果您想为intel-vaapi-driver贡献力量,请查看我们的。
我们还建议您查看未解决问题列表中的,因为无需广泛了解intel-vaapi-driver即可解决这些错误。
我们很乐意帮助您开始贡献!
可以通过我们的和IRC上## intel-media频道与intel vaapi媒体开发团队。
我们还使用并托管 。 您可以通过将电子邮件地址提交到我们
在Ubuntu 14.04平台上利用Intel的GPU实现硬件加速–基于VAAPI
二、相关介绍
硬件加速即利用GPU来完成图形相关的操作,将CPU空闲出来处理其他事务,特别是在CPU性能不足的情况下,此类操作就更必要了。NVIDIA有GPU独立显卡,Intel有集成显卡(核显)。在视频处理上,DXVA是微软定制的视频加速规范,而在Linux 平台上则是由NVIDIA和Intel分别提供的VDPAU和VAAPI加速规范。
三、FFmpeg+VAA
在视频处理流程中,视频的解码通常在 CPU 中进行,若用户需要使用集成显卡进行深度学习推理,解码数据需要从 CPU的缓存中拷贝至集成显卡中进行推理。本文旨在通过集成显卡进行硬件解码,使用FFmpeg 集成 VAAPI 进行硬解码并使用滤镜进行图像缩放以及使用OpenVINO™ 的 Remote Blob 来避免解码后数据在集成显卡与 CPU之间的拷贝,最终将视频处理全流程部署在集成显卡中,实现图像数据传输零拷贝的方案。
1. 背景介绍
在日新月异的市场环境下,AI 技术不论是在工业界还是在学术界都.
如果你需要在只保留 h265、h264 和音频的情况下支持硬解码,你需要在编译时添加相应的选项。具体来说,你需要添加 `--enable-hwaccel=h264_vaapi,h265_vaapi --enable-hwaccel=h264_dxva2,h265_dxva2` 选项来启用基于 VAAPI 和 DXVA2 的硬件加速。
完整的编译命令如下所示:
./configure --disable-everything --enable-decoder=h264,h265 --enable-demuxer=mp4 --enable-parser=h264,h265 --enable-protocol=file --enable-encoder=aac --enable-muxer=mp4 --enable-filter=aresample --enable-hwaccel=h264_vaapi,h265_vaapi --enable-hwaccel=h264_dxva2,h265_dxva2
根据官方文档提供的信息,如果使用上述编译选项,生成的静态库文件大小会在3MB到5MB之间。具体的大小还需要根据你的编译环境和其他因素而定。