mp4v2在Qt中的使用,H264文件封装为mp4文件

一、使用环境

Qt 5.13.1 编译器 MSVC2017 64bit (vs2017) 

mp4v2 版本是 2.0.0  下载地址:https://code.google.com/archive/p/mp4v2/,也可以在CSDN上下载https://download.csdn.net/download/qdwx724/12149903。

注意google网站上有多个版本,要下完整的2.0.0版本,不然会出现各种问题。

二、遇到的问题

(1) 使用VS2017编译mp4v2时,报以下错误:

严重性    代码    说明    项目    文件    行    禁止显示状态
错误    C2371    “int8_t”: 重定义;不同的基类型    libmp4v2   ***\mp4v2\releases\2.0.0\include\mp4v2\platform.h    16    

解决方法:保留 #include  分支,将原先的分支判断注释掉。

#if 0
#ifndef MP4V2_NO_STDINT_DEFS
    #if defined( _WIN32 ) && !defined( __MINGW32__ )
        typedef char      int8_t;
        typedef short     int16_t;
        typedef int       int32_t;
        typedef long long int64_t;

        typedef unsigned char      uint8_t;
        typedef unsigned short     uint16_t;
        typedef unsigned int       uint32_t;
        typedef unsigned long long uint64_t;
    #else
        #include
    #endif
#endif
#endif

//添加以下
//#include

(2)使用库时,mp4文件无法创建,或者mp4文件是乱码。

解决方法:下载的mp4v2版本不是最新的导致的。后来google下载了的2.0.0完整版本后,重新编译,问题解决。

(3)使用库时,Qt程序无法启动,连第一行代码也无法运行。

解决方法:下载的mp4v2版本不是最新的导致的。后来google下载了的2.0.0完整版本后,重新编译,问题解决。

(4)H264文件封装为mp4文件,播放时,出现拖影、模糊的现象。

原因:在网上找到的例子(https://blog.csdn.net/qq_29350001/article/details/73742075   MP4Encoder 作者:firehood),是将h264文件里的图片全部加载到内存中,但是内存申请的不够时,应用软件里会多次解析图像数据以及将已分析数据的丢弃,分析数据部分有BUG,以及在已分析数据的丢弃部分也存在BUG导致的。

解决方法:分析代码,修复BUG. 修改后的代码, 待上传。

你可能感兴趣的:(Qt)