当前位置: 首页 > news >正文

Webrtc支持FFMPEG硬解码之Intel

Intel QSV下载编译

git clone https://github.com/lu-zero/mfx_dispatch.git

1.使用CMake生产VS工程

编译生成libmfx.lib文件
头文件为mfx文件夹

libmfx---include---mfx---lib---libmfx.lib

Webrtc中ffmpeg的修改

因为Webrtc中的ffmpeg是使用gn进行编译的,所以这里先找到对应目录

https://chromium.googlesource.com/chromium/third_party/ffmpeg.git

1、添加库
在FFMPEG路径下添加新文件夹3rd,并把上面打包的libmfx拷贝进入

2.
修改FFMPEG配置
BUILD.gn

//在include_dirs里面,多少行不记得了,你自己找一下
"3rd/libmfx/include/mfx"

config.h---目录为chromium\config\Chromelwin\x64\config.h

#define CONFIG_LIBMFX 1
#define CONFIG_D3D11VA 1
#define CONFIG_HWACCELS 1
#define CONFIG_QSV 1
#define CONFIG_QSVDEC 1
#define CONFIG_QSVVPP 1

config_components.h---目录为chromiumlconfig\Chromelwin\x64\config_components.h

#define CONFIG_H264_QSV_DECODER 1
#define CONFIG_H264_D3D11VA_HWACCEL 1
#define CONFIG_H264_D3D11VA2_HWACCEL 1

bsf_list.c--目录为chromium\config\Chromelwin\x64\libavcodec\bsf_list.c添加

&ff_h264_mp4toannexb_bsf,

ffmpeg_generated.gni加入

if(is_win){ffmpeg_c_sources += ["libavcodec/qsv.c","libavcodec/qsvdec.c","libavcodec/dxva2.c","libavcodec/dxva2_h264.c","libavcodec/h264_mp4toannexb_bsf.c","libavfilter/qsvvpp.c","libavfilter/vf_vpp_qsv.c","libavutil/hwcontext_qsv.c","libavutil/hwcontext_dxva2.c","libavutil/hwcontext_d3d11va.c",]
}

webrtc重新生成工程,编译即可
如果遇到编译错误:修改#include<mfxvideo.h>为#include"3rd/libmfx/include/mfx/mfxvideo.h

注意:这里的3rd是自己上面自己创建的目录,根据你创建的来,这里只是给一个示范

http://www.dtcms.com/a/356194.html

相关文章:

  • 2025五天申请邓白氏编码成功
  • Python 轻量级 HTML 解析器 - lxml入门教程
  • Java研学-SpringCloud(十)
  • Android14 init.qcom.usb.rc详解
  • 设计模式之状态机模式
  • hive udf函数实现在sql查询网站价格
  • Vue3 中的 v-model 语法糖
  • (Nginx)基于Nginx+PHP 驱动 Web 应用(上):配置文件与虚拟主机篇
  • 基于SQL大型数据库的智能问答系统优化
  • 安卓开发---SimpleAdapter
  • 不同卷积不同的滤波效果
  • 如何将OFD文件转换为PDF?总结在线OFD转PDF方法
  • QT5.14.2、CMake 扩展openCV
  • GPT-5原理
  • 第二章 Vue + Three.js 实现鼠标拖拽旋转 3D 立方体交互实践
  • Python- Visual Studio Code配置Anaconda
  • WebIDEPLOY 赋能数字校园建设:智慧管理系统的效能升级与实践路径 —— 以校园资源协同优化构建高效教育生态的探索
  • 洞悉核心,驭数而行:深入理解 Oracle SQL 优化器(RBO 与 CBO)的性能调优哲学
  • C# 一个投资跟踪程序的设计与实现:面向对象与设计模式的深度解析
  • ros、slam、激光雷达、自动驾驶相关学习内容和计划
  • 【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day15
  • PyTorch 机器学习基础(选择合适优化器)
  • 【Big Data】Alluxio 首个基于云的数据分析和开源AI数据编排技术
  • 补题报告08
  • 从零开始的云计算生活——第五十四天,悬梁刺股,kubernetes模块之组件与网络
  • 计算机是如何运行的
  • Kotlin 和 Java 的区别
  • 【Linux系统】线程控制
  • 《C++进阶之STL》【AVL树】
  • PlotJuggler如何安装和使用