Qt开发笔记之编码x264码流并封装mp4(四):mp4v2库的介绍和windows平台编译

简介: Qt开发笔记之编码x264码流并封装mp4(四):mp4v2库的介绍和windows平台编译

Qt开发笔记之编码x264码流并封装mp4

Qt开发笔记之编码h264码流并封装mp4(一):x264介绍、windows平台x264库编译

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

Qt开发笔记之编码h264码流并封装mp4(三):Qt使用x264库对.yuv文件编码为.h264文件

Qt开发笔记之编码h264码流并封装mp4(四):mp4v2库的介绍和windows平台编译

Qt开发笔记之编码h264码流并封装mp4(五):ubuntu平台编译x264》

Qt开发笔记之编码h264码流并封装mp4(六):ubuntu平台编译mp4v2并封装mp4

 

前言

      x264的码流已经拿到,接下来需要使用mp4v2库对裸x264码流进行封装,本篇章对mp4v2库进行介绍并进行编译。

     

Mp4

      MP4文件可以理解为本身就是一个容器,对于视频来说就是把不同的内容放按照mp4的规则存放。

      MP4是一套用于音频、视频信息的压缩编码标准,由国际标准化组织(ISO)和国际电工委员会(IEC)下属的动态图像专家组Moving Picture Experts Group,即MPEG)制定,第一版在199810月通过,第二版在199912月通过。MPEG-4格式的主要用途在于网上流、光盘、语音发送(视频电话),以及电视广播。

MPEG-4包含了MPEG-1MPEG-2的绝大部份功能及其他格式的长处,并加入及扩充对虚拟现实模型语言(VRML VirtualReality Modeling Language)的支持,面向对象的合成档案(包括音效,视讯及VRML对象),以及数字版权管理(DRM)及其他互动功能。而MPEG-4MPEG-2更先进的其中一个特点,就是不再使用宏区块做影像分析,而是以影像上个体为变化记录,因此尽管影像变化速度很快、码率不足时,也不会出现方块画面。

 

mp4v2库介绍

      MP4V2的前身是MPEG4IP开源项目中的一个功能库,可是如今MPEG4IP已经不在更新了。可是MP4V2还在更新,而且独立出来了。MP4V2主要是作为MP4文件的录制一个开源库。

 

mp4v2库下载

第三方下载地址:https://launchpad.net/ubuntu/artful/+source/mp4v2

CSDN下载:https://download.csdn.net/download/qq21497936/12012169

      (CSND更新了库,包含了缺少win32的两个头文件的库和谷歌的源码补充2个头文件)

 

Windows下mp4v2库编译

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

步骤二:在msys中configure配置mp4v2

./configure --prefix=/home/21497/compile/mp4v2/mp4v2-2.0.0/install
./configure --prefix=/home/21497/compile/mp4v2/mp4v2-2.0.0/install --enable-shared --disable-debug

步骤三:编译mingw32-make.exe,缺少头文件“platform_win32_impl.h”

步骤四:将平台文件夹copy过去

      继续mingw32-make。

步骤五:编译错误“error:definition of static member mp4v2::impxxxx”

      直接注释掉

步骤六:编译错误“error:definition of static member xxxxxx”

      解决方法同步骤五,找到源文件直接注释

步骤七:修改configure文件

      添加如下

步骤七:编译其他定义错误,各种奇葩错误,不一一记录,修改源码改变量都上了,未解决。

 

结论

      暂时先放弃,有其他方案选择。

这里提供另一种方案:windows下的msvc编译器,编译mv4v2库,笔者已编译成功编,由于x264不支持msvc,需要mingw32编译后,使用.def文件将其函数抽出来供msvc版本使用,有点饶,但可行,笔者就不折腾了。

最终笔者决定,测试还是切换至ubuntu系统,且后续的事实证明ubuntu下编译那是一帆风顺的。


相关文章
|
2月前
|
XML C# 数据格式
掌握了在Windows平台上查看DLL依赖的方法
掌握了在Windows平台上查看DLL依赖的方法
321 4
|
2月前
|
NoSQL Shell MongoDB
Windows 平台安装 MongoDB
10月更文挑战第10天
66 0
Windows 平台安装 MongoDB
|
3月前
|
监控 C# 块存储
Windows平台RTSP|RTMP播放器如何叠加OSD文字
做Windows平台RTSP|RTMP播放器的时候,特别是多路播放场景下,开发者希望可以给每一路RTSP或RTMP流添加个额外的OSD台标,以区分不同的设备信息(比如添加摄像头所在位置),本文主要探讨,如何动态添加OSD台标。
Windows平台RTSP|RTMP播放器如何叠加OSD文字
|
3月前
|
编译器 Windows
plugin cannot be loaded for module “QtQuick“ && Could not load the Qt platform plugin “windows“
本文讨论了在Qt应用程序中遇到的平台插件加载问题,包括具体的错误信息、解决方案和参考链接。问题表现为无法加载“QtQuick”模块的插件,并且无法找到“windows”平台插件。解决方案是修改环境变量`Qt5_DIR`以使用正确的Qt版本和编译器环境。
|
2月前
|
并行计算 开发工具 异构计算
在Windows平台使用源码编译和安装PyTorch3D指定版本
【10月更文挑战第6天】在 Windows 平台上,编译和安装指定版本的 PyTorch3D 需要先安装 Python、Visual Studio Build Tools 和 CUDA(如有需要),然后通过 Git 获取源码。建议创建虚拟环境以隔离依赖,并使用 `pip` 安装所需库。最后,在源码目录下运行 `python setup.py install` 进行编译和安装。完成后即可在 Python 中导入 PyTorch3D 使用。
292 0
|
1月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
|
1月前
|
监控 安全 网络安全
使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
Windows服务器面临多重威胁,包括勒索软件、DoS攻击、内部威胁、恶意软件感染、网络钓鱼、暴力破解、漏洞利用、Web应用攻击及配置错误等。这些威胁严重威胁服务器安全与业务连续性。EventLog Analyzer通过日志管理和威胁分析,有效检测并应对上述威胁,提升服务器安全性,确保服务稳定运行。
|
1月前
|
监控 安全 网络安全
Windows Server管理:配置与管理技巧
Windows Server管理:配置与管理技巧
84 3