海思3518ev200处理器封装MP4的音频和视频同步OK

今天用海思3518ev200处理器封装MP4的音频和视频同步OK,记录一下。

封装mp4用的GPAC开源代码,GitHub上可以搜到。

使用别人封装好的从gpac提取总结的接口函数,网络搜索MP4Writer,或者我上传的经修改过的代码。

用接口在一个线程中同时顺序调用视频和音频demo中的代码,音视频写入一个文件中。

置得注意的是:音频和视频的时间戳要取获取数据中自带的pts,因封装的代码传入时间戳参数单位ms,所以海思自带pts需要除以1000传入到接口函数,采集出的音视频同步啦。

关键代码:

//前面需要对视频数据统一拷贝到dataBase处
MP4WriterWriteVideo2File(hFile, dataBase, len, bKey, stStream.pstPack[0].u64PTS/1000);
//音频需要转到AAC,传入下面。AAC用EasyAACEncoder开源代码转一下即可
MP4WriterWriteAudio2File(hFile,pbAACBuffer,out_len,AudioStream.u64TimeStamp/1000,initParam.u32AudioSamplerate,initParam.ucAudioChannel,initParam.u32PCMBitSize);

主要是音视频存储为MP4格式的视频。

PPS:

录制发现有点问题,最后部分好像无法播放,将时间戳用视频的时间戳带入音频时间戳,录制视频没问题。但这样不知道是否对不对。

你可能感兴趣的:(海思工具环境搭建)