H264码流封装成MP4
背景说明:第一次接触音视频领域,现在有多个设备厂家的视频文件通过解析得到了‘每帧’的数据流(视频H264,音频acc,pcm),之前是将这些数据流分别保存到xx.H264文件和xx.ACC,PCM文件,然后在使用FFmpeg合成指令合成MP4文件。
现在需求不通过中间文件H264和ACC...和合成指令,要求在处理得到‘每帧’数据流的时候就将它们写到MP4文件
遇到的困难:第一次接触,网上查找的都是文件到文件的方式结合定义的结构体进行转换(http://blog.csdn.net/nil_lu/article/details/50780207可参见如上URL),和我的预想不符合。
现在遇到的困难点在于不知道数据流到MP4文件需要经过哪些步骤,每个步骤或者过程需要实现哪些功能,获取数据流之后要进行什么SPS,PPS的解析吗,如何保存成MP4格式才能达到通用的播放效果
ps:之前的一些文件解析,就是要把 fwrite替换掉,更换成需要编写的接口函数
fread(&nNextFrameLen, 1, 4, fileIn);
if (nNextFrameLen > LF_READBUF_LEN)
{
continue;
}
nReadLen = fread(m_pReadBuf, 1, nNextFrameLen, fileIn);
if (1 == nType)//视频
{
fwrite(m_pReadBuf, 1, nReadLen, fileVideoOut);
}
if (2 == nType)//音频
{
fwrite(m_pReadBuf, 1, nReadLen, fileAudioOut);
}