H264 封装格式

H264有两种封装格式,一种是MP4格式,一种是annexb格式

MP4格式是以4个字节长度分割

annexb格式是以0x000001 or 0x00000001分割

有些时候需要把MP4格式转换成annexb格式(例如写ts),可以使用下面代码把MP4格式转换为Annexb格式

void ConvertMP4BitstreamToANNB(uint8_t *pdata, const uint32_t size)
{
    auto p = pdata;
    auto end = pdata + size;

    while (p < end) {
        uint32_t nalSize = p[0] << 24 |
            p[1] << 16 |
            p[2] <<  8 |
            p[3];
        p[0] = 0;
        p[1] = 0;
        p[2] = 0;
        p[3] = 1;
        p += 4+nalSize;
    }
}
时间: 2024-08-07 04:32:52

H264 封装格式的相关文章

转 音视频封装格式、编码格式知识

常见的AVI.RMVB.MKV.ASF.WMV.MP4.3GP.FLV等文件其实只能算是一种封装标准. 一个完整的视频文件是由音频和视频2部分组成的.H264.Xvid等就是视频编码格式,MP3.AAC等就是音频编码格式. 例如:将一个Xvid视频编码文件和一个MP3音频编码文件按AVI封装标准封装以后,就得到一个AVI后缀的视频文件,这个就是我们常见的AVI视频文件了. 由于很多种视频编码文件.音频编码文件都符合AVI封装要求,则意味着即使是AVI后缀,也可能里面的具体编码格式不同.因此出现在

最简单的基于FFmpeg的封装格式处理:视音频分离器(demuxer)

打算记录一下基于FFmpeg的封装格式处理方面的例子.包括了视音频分离,复用,封装格式转换.这是第2篇. 本文记录一个基于FFmpeg的视音频分离器(Simplest FFmpeg demuxer).视音频分离器(Demuxer)即是将封装格式数据(例如MKV)中的视频压缩数据(例如H.264)和音频压缩数据(例如AAC)分离开.如图所示.在这个过程中并不涉及到编码和解码. 本文记录的程序可以将一个MPEG2TS封装的视频文件(其中视频编码为H.264,音频编码为AAC)分离成为两个文件:一个H

[转]【流媒體】H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流

[流媒體]H264—MP4格式及在MP4文件中提取H264的SPS.PPS及码流 SkySeraph Apr 1st 2012  Email:[email protected].com 一.MP4格式基本概念 MP4格式对应标准MPEG-4标准(ISO/IEC14496) 二.MP4封装格式核心概念 1  MP4封装格式对应标准为 ISO/IEC 14496-12(信息技术 视听对象编码的第12部分: ISO 基本媒体文件格式/Information technology Coding of a

最简单的基于FFmpeg的封装格式处理:视音频复用器(muxer)

打算记录一下基于FFmpeg的封装格式处理方面的例子.包括了视音频分离,复用,封装格式转换.这是第3篇. 本文记录一个基于FFmpeg的视音频复用器(Simplest FFmpeg muxer).视音频复用器(Muxer)即是将视频压缩数据(例如H.264)和音频压缩数据(例如AAC)合并到一个封装格式数据(例如MKV)中去.如图所示.在这个过程中并不涉及到编码和解码. 本文记录的程序将一个H.264编码的视频码流文件和一个MP3编码的音频码流文件,合成为一个MP4封装格式的文件. 流程 程序的

最简单的基于FFmpeg的封装格式处理:视音频分离器简化版(demuxer-simple)

打算记录一下基于FFmpeg的封装格式处理方面的例子.包括了视音频分离,复用,封装格式转换.有关封转格式转换的例子在之前的文章:<最简单的基于FFMPEG的封装格式转换器(无编解码)>中已经有过记录,不再重复.因此计划写3篇文章分别记录视音频的复用器(Muxer)和分离器(Demuxer).其中视音频分离器(Demuxer)记录2篇:一篇简单的,一篇标准的.简单的版本更适合初学者学习.本文是第1篇.首先记录一个基于FFmpeg的视音频分离器简单版(Simplest FFmpeg Demuxer

FFmpeg封装格式处理:视音频复用器(muxer)

打算记录一下基于FFmpeg的封装格式处理方面的例子.包括了视音频分离,复用,封装格式转换.这是第3篇. 本文记录一个基于FFmpeg的视音频复用器(Simplest FFmpeg muxer).视音频复用器(Muxer)即是将视频压缩数据(例如H.264)和音频压缩数据(例如AAC)合并到一个封装格式数据(例如MKV)中去.如图所示.在这个过程中并不涉及到编码和解码. 本文记录的程序将一个H.264编码的视频码流文件和一个MP3编码的音频码流文件,合成为一个MP4封装格式的文件. ,一共初始化

音视频处理之FFmpeg封装格式20180510

一.FFMPEG的封装格式转换器(无编解码) 1.封装格式转换 所谓的封装格式转换,就是在AVI,FLV,MKV,MP4这些格式之间转换(对应.avi,.flv,.mkv,.mp4文件). 需要注意的是,本程序并不进行视音频的编码和解码工作.而是直接将视音频压缩码流从一种封装格式文件中获取出来然后打包成另外一种封装格式的文件. 本程序的工作原理如下图1所示: 由图可见,本程序并不进行视频和音频的编解码工作,因此本程序和普通的转码软件相比,有以下两个特点: 处理速度极快.视音频编解码算法十分复杂,

转 常见视频编码方式以及封装格式

常见视频编码方式以及封装格式 常见视频编码方式 所谓视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式.视频流传输中最为重要的编解码标准有国际电联的H.261.H.263.H.264.H.265,运动静止图像专家组的M-JPEG和国际标准化组织运动图像专家组的MPEG系列标准,此外在互联网上被广泛应用的还有Real-Networks的RealVideo.微软公司的WMV以及Apple公司的QuickTime等. AVI AVI 是 Audio Video I

(转)【多媒体封装格式详解】--- AAC ADTS格式分析

 出自:http://blog.csdn.net/tx3344/article/details/7414543 http://www.it6655.com/2012/08/aac-adts-html 1.ADTS是个啥 ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式. 记得第一次做demux的时候,把AAC音频的ES流从FLV封装格式中抽出来送给硬件解码器时,不能播;保存到本地用pc的播放器播时,我靠也不能播.当时崩溃了,后来通过查找资