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

保定专业做网站公司android 网站模板

保定专业做网站公司,android 网站模板,施工企业降本增效的方法和措施,二级域名wordpressQt6新出了WebAssmebly功能,可以将C写的软件到浏览器中运行,最近一段时间正在研究这方便内容,普通的控件响应都能实现,今天主要为大家分享如何将FFmpeg中的功能应用到浏览器中。 开发环境:window11,Qt6.8.2…

Qt6新出了WebAssmebly功能,可以将C++写的软件到浏览器中运行,最近一段时间正在研究这方便内容,普通的控件响应都能实现,今天主要为大家分享如何将FFmpeg中的功能应用到浏览器中。

开发环境:window11,Qt6.8.2

功能介绍

(一)编译FFmpeg

之前使用FFmpeg解码器时没有编译过,想要在WebAssmebly套件环境中使用FFmpeg时,不能使用dll的方式,所以只能手动编译,这个步骤对我来说还是有一定难度的,不是不会编译,而是编译出来的内容,无法在QtCreator中应用。

接下来我来详细讲述下如何编译FFmpeg并使用。

1:下载MSYS2环境

因为FFmpeg不支持在window环境下编译,所以这里借助了MSYS2环境,具体的安装包可以从官网上下载就行。MSYS2官网链接

安装的时候默认是C盘,考虑到后期电脑运行状态,我选择安装到了D盘,不受任何影响的。

 选择MSYS2 MINGW64方式进行编译

2:更新MSYS2和MINGW

控制台输入以下命令

pacman --sync --refresh --refresh
pacman --sync --sysupgrade

3:安装GIT

主要是使用git更新代码的,在这里需要注意的是,即使是在windows环境下已经安装过git了,在MSYS2中也是无法同步的。我之前就犯过这种错误,总觉得是在windows环境下应该是想通的才对,其实不是!

3.1:判断MSYS2中有没有安装git
pacman -Q git

如果能输出版本号,说明git已经被安装过

3.2:安装git
pacman -S git

安装后再次执行就能看到git的版本号了。

4:安装emscripten

为了编译FFmpeg为WebAssmebly可应用版本,需要安装emscripten

4.1:下载emscripten资源
git clone https://github.com/emscripten-core/emsdk.git

 下载完成后切换到emsdk文件夹中

cd emsdk

这时候只是下载了一个emsdk的框架,因为要匹配Qt6.8.2,根据QtCreator文档说明得知,需要搭配emscripten的3.1.56版本,因此在更新安装时指定安装版本,这很重要!

4.2:安装指定版本
./emsdk install 3.1.56
4.4:安装后激活当前版本
./emsdk activate 3.1.56
4.5:激活emscripten环境
source /emsdk/emsdk_env.sh
4.6:配置环境变量

为了以后每次启动时不需要每次都激活emscripten环境,需要将激活功能放到环境变量中,方便使用

找到MSYS2中你的用户下“xx.bashrc”文件,将下面这句话添加到文件末尾。

source /D/msys64/home/sutong/emsdk/emsdk_env.sh

在这里需要写绝对路径的

此时,在命令行中输入

emcc -v

就能看到版本号了,说明安装成功了。

 5:编译FFmpeg

最近我发现deepseek是个好东西,有啥问题都可以用这个咨询,我使用deepseek搜素了很多方案,以及各种博友的回答,都说使用“emconfigure ./configure”方式,但是,我也不知道是哪里出了问题,一直返回不是win32的有效应用程序,我简直跪了!

后来发现,直接使用"./configure"方式照样也能编译成功。下面是我配置FFmpeg编译项参数

第一步:

./configure --prefix=/home/sutong/ffmpeg/build-wasm --target-os=none --arch=x86_32 --enable-cross-compile --disable-asm --disable-programs --disable-doc  --cc="emcc" --cxx="em++" --ar="emar" --cpu=generic --disable-avdevice --disable-swresample --disable-postproc --disable-avfilter --disable-logging --enable-small --enable-decoder=h264 --enable-demuxer=mov --enable-network

第二步:

emmake make

第三步

emmake make install

等待编译完成就行,会将结果输出到“/home/sutong/ffmpeg/build-wasm”我们指定的文件夹中。

以上操作但凡发现有错误后,需要进行清理再次进行编辑

make clean

(二)代码应用

1:创建Qt项目

创建一个套件是WebAssmebly的项目,在这里我选择的是多线程

 2:将编译好的FFmpeg资源添加到项目中

# 添加FFmpeg头文件路径
INCLUDEPATH += $$PWD/ffmpeg/src
LIBS += -L$$PWD/ffmpeg/lib \-lavformat \-lavcodec \-lswscale \-lavutil#WebAssembly特定配置
QMAKE_CXXFLAGS += -s USE_PTHREADS=0 -s ALLOW_MEMORY_GROWTH=1
# 添加以下标志以保留未使用的函数并导出符号
QMAKE_LFLAGS += -s ERROR_ON_UNDEFINED_SYMBOLS=0 -s EXPORT_ALL=1

在这里需要记住,静态库的加载一定是按照这个顺序,否则代码应用一直报错,我已经踩坑过了。

3:代码调用

在.h中

extern "C"{
#include "libavformat/avformat.h"
#include "libavcodec/avcodec.h"}

在.cpp中

avformat_network_init();
// 初始化AVFormatContext
AVFormatContext* m_avFormCtx_Out = nullptr;
const char* filename = "F:\\11.mp4";
int nErrorCode = avformat_alloc_output_context2(&m_avFormCtx_Out, nullptr, nullptr, filename);
if(nErrorCode < 0)
{qDebug() << "调用<avformat_alloc_output_context2>,失败,错误码 = " << nErrorCode;
}
else
{qDebug() << "调用<avformat_alloc_output_context2>,成功,正确码 = " << nErrorCode;
}

运行代码,可以在浏览器中输出日志,说明FFmpeg接口调用成功

总结

虽然编译过程很简答, 主要是环境配置以及在项目中的兼容程序,之前总是查询emconfigure的使用,浪费了很长时间,发现不用调用“emconfigure”也可以编译成功。

大家有什么问题可以留言告诉我,我也是第一次尝试,接下来我会继续分享Qt程序在WebAssmebly中使用,毕竟要学一学新技术呀!

我是糯诺诺米团,一名C++程序媛~

http://www.yayakq.cn/news/103281/

相关文章:

  • 资阳建设网站广州的企业网站建设
  • 网站数据库一般多大南昌网站建设案例
  • 网站seo外链怎么做网站html地图制作
  • 做网站卖广告校园网站建设情况说明书
  • 一起做业官方网站唐山免费做网站
  • 隆基泰和 做网站淘宝客网站需要多大空间
  • 番禺网站建设培训班建设网站网站设计
  • 新公司需要做网站黄冈网站建设效果
  • 深圳广东网站建设套餐网站开发是什么语言
  • 福建福清市住房和建设局网站网页设计实训报告记录和结果分析
  • 百度企业云网站建设网站建设顶层设计
  • 网站布局选择网页的设计流程是怎样的
  • 简洁大方网站建设wordpress 扩展数据库
  • 网站开发公司的生产制作游戏的软件有哪些
  • 装修设计网站哪个平台最好网站制作备案上线流程
  • 曲靖手机网站建设扬州公司注册
  • 用电脑做网站服务器公司网站开发费用计入哪个科目
  • 发号网站源码做我女朋友好吗网站
  • 推广网络网站江苏企业建设网站公司
  • 厦门旅游网站25个经典网站源代码
  • 杭州做网站小芒设计品质网站建设
  • 网站建设ag优书网书库
  • 昆山高端网站建设开发网络服务包括哪些
  • 做网站要到通信管理局备案能看任何网站的浏览器
  • 运城建设银行网站seo网站做推广的公司
  • 360站长wordpress 开启缓存
  • cad dwt模板做网站模版网站制作开发平台
  • 青岛网站优化多少钱注册网站免费注册邮箱
  • 高校网站模板网站域名过期
  • 延庆免费网站建设东莞网站建设优化排名