Qt开发笔记之编码x264码流并封装mp4(二):windows平台x264添加mp4支持,gpac库的介绍与编译

简介: Qt开发笔记之编码x264码流并封装mp4(二):windows平台x264添加mp4支持,gpac库的介绍与编译

前言

      上一篇章中编译出来的x264库对.mp4后缀文件不支持(理解为mp4格式),于是添加对mp4文件的支持。

 

windows下x264添加mp4支持

      x264库编译出来是不支持mp4的,如要支持mp4,那么需要添加gpac库。

 

步骤一:下载,放入编译文件夹并解压

      下载地址:https://github.com/gpac/gpac/

      CSDN地址:https://download.csdn.net/download/qq21497936/12010070

     

步骤二:在mysy中configure配置gpac

./configure

      (注意:发现之前的complie写错了,改了下文件夹命名,截图带了prefix,后发现没必要带,直接编进系统即可)

     

步骤三:编译mingw32-make.exe

     

      实际用到的是make编译的,查看makefile是引入了config.mak,修改修改下config.mak文件

     

或者重新配置

./configure --make=mingw32-make

用下面的,直接编译到环境中去(为了添加到x264,笔者尝试包含头文件和库以及库路径失败)

./configure --make=mingw32-make

修改后编译:

      漫长的等待,出现错误

步骤四:解决编译错误“ln -sf libgpac.dll.8.0.0 ../bin/gcc/libgpac.dll.8”,继续编译

      定位错误

      调试ok

      直接修改src下的Makefile如下图:

# ln -sf $(notdir $@).$(VERSION_SONAME) $@.$(VERSION_MAJOR)
# ln -sf $(notdir $@).$(VERSION_SONAME) $@
  ln -sf $@.$(VERSION_SONAME) $@.$(VERSION_MAJOR)
  ln -sf $@.$(VERSION_SONAME) $@

      继续编译,编译成功。

步骤五:直接修改configure文件即可

      此处回到《一》中的“步骤五:linux的常规编译步骤,右键configure配置”,修改”mp4=yes”,如下图,然后配置。

步骤六:编译x264库,mingw32-make

步骤七:找不到gpac头文件,路径已经包含

      检查了路径还是不行,那直接简单粗暴的拷贝吧

      修改源码

步骤八:解决”gf_isom_set_pixel_aspect_ratio少参数问题

      错误如下图:

5个参数,而头文件是6个参数(估计是gpac版本太高,先强制设为1):

改完后,如下图:

      继续编译。

步骤九:解决错误连接问题

简单粗暴将库也拷贝过来,还是不行。

步骤十:暂时无解,调整思路,切换版本至gpac 0.8.0,重新从步骤一至步骤此。

步骤十一:多次配置编译,再三确认是”mp4:yes”,仍不支持.mp4有问题但可转.mp4v2

      此处添加gpac库并定义MP4_OUTPUT 1都尝试了,还是行不通。

结论

      所以,本篇章的目标没有达到!!!

笔者不太明白.mp4与.mp4v2的关系,查到的资料也是mp4v2是可以将.h264编码成.mp4的库,但是后缀.mp4v2与工具mp4v2是什么关系,还也没弄清楚,但是可以确定的是mp4v2可以将h264的裸码流编码成.mp4文件格式。

 

相关文章
|
2月前
|
IDE 关系型数据库 开发工具
使用Visual Basic进行Windows窗体开发
【4月更文挑战第27天】本文介绍了使用Visual Basic进行Windows窗体(WinForms)开发的步骤,从搭建开发环境到创建、设计用户界面,再到编写事件驱动的代码和数据绑定。Visual Basic结合WinForms提供了一种易学易用的桌面应用开发方案。通过调试、优化、部署和维护,开发者可以构建专业应用程序。随着技术发展,掌握最新UI设计和开发工具对于保持竞争力至关重要。本文为初学者提供了基础指导,鼓励进一步探索和学习。
|
2月前
|
编译器 C语言 Windows
cryptopp使用Qt mingw编译,以及海思平台交叉编译
cryptopp使用Qt mingw编译,以及海思平台交叉编译
86 0
|
2天前
|
存储 算法 C++
【Qt应用开发】复刻经典:基于Qt实现Windows风格计算器(加减乘除、删除、归零功能全解析)
在Qt中,"栈"的概念主要体现在两个层面:一是程序设计中的数据结构——栈(Stack),二是用户界面管理中的QStackedWidget控件。下面我将分别简要介绍这两个方面:
|
20天前
|
网络安全 C++ Windows
【Windows驱动开发】(主机)VS2017+(虚拟机)win10系统------双机调试
【Windows驱动开发】(主机)VS2017+(虚拟机)win10系统------双机调试
|
20天前
|
Windows
【Windows驱动开发】注册表的基本操作(创建、打开、修改、读取、枚举)(附源码)
【Windows驱动开发】注册表的基本操作(创建、打开、修改、读取、枚举)(附源码)
|
21天前
|
编解码 Windows
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
XviD是开源MPEG-4视频编码器,与DivX相似但后者非开源。早期MP4常使用XviD或DivX编码,现已被H.264取代。在Windows上集成FFmpeg的XviD编解码库libxvid,需访问<https://labs.xvid.com/source/>下载源码,解压后在MSYS环境中配置、编译和安装。之后重新配置FFmpeg,启用libxvid并编译安装。详细步骤包括configure命令、make和make install。成功后,通过`ffmpeg -version`检查是否启用libxvid。更多音视频开发技术可参考《FFmpeg开发实战:从零基础到短视频上线》。
58 0
FFmpeg开发笔记(二十九)Windows环境给FFmpeg集成libxvid
|
10天前
|
Java Nacos 微服务
Spring Cloud微服务在Windows本地开发时禁用Nacos注册中心注册
Spring Cloud微服务在Windows本地开发时禁用Nacos注册中心注册
|
2月前
|
算法 Linux Windows
FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass
在Windows环境下为FFmpeg集成字幕渲染库libass涉及多个步骤,包括安装freetype、libxml2、gperf、fontconfig、fribidi、harfbuzz和libass。每个库的安装都需要下载源码、配置、编译和安装,并更新PKG_CONFIG_PATH环境变量。最后,重新配置并编译FFmpeg以启用libass及相关依赖。完成上述步骤后,通过`ffmpeg -version`确认libass已成功集成。
52 1
FFmpeg开发笔记(十七)Windows环境给FFmpeg集成字幕库libass
|
2月前
|
编解码 5G Linux
FFmpeg开发笔记(二十一)Windows环境给FFmpeg集成AVS3解码器
AVS3是中国首个8K及5G视频编码标准,相比AVS2和HEVC性能提升约30%。解码器libuavs3d支持8K/60P视频实时解码,兼容多种平台。《FFmpeg开发实战》书中介绍了在Windows环境下如何集成libuavs3d到FFmpeg。集成步骤包括下载源码、使用Visual Studio 2022编译、调整配置、安装库文件和头文件,以及重新配置和编译FFmpeg以启用libuavs3d。
47 0
FFmpeg开发笔记(二十一)Windows环境给FFmpeg集成AVS3解码器
|
24天前
|
Windows
Qtdesigner报错:This application failed to stat could not find or load the Qt platform plugin “windows“
Qtdesigner报错:This application failed to stat could not find or load the Qt platform plugin “windows“