
多媒体封装格式详解
文章平均质量分 68
陈纪建
关注行业动态,找出最适合自己的发展道路
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【多媒体封装格式详解】---MP4【1】
MP4(MPEG-4 Part 14)是一种常见的多媒体容器格式,它是在“ISO/IEC 14496-14”标准文件中定义的。1.最小组成单元 BOX像FLV的tag、MKV的EBML、ASF文件中的 ASF object.mp4 是由一系列的box组成,他的最小组成单元就是box.size;指明了整个box所占用的大小,包括header部分.type;表示转载 2017-08-16 17:34:44 · 558 阅读 · 0 评论 -
MPEG2/TS 获取PMT PID
一个简单的从指定MPEG2/TS文件中获取PMT PID的函数,注意代码中的注释。 #define MAKE_PID(p) (((p[0][html] view plain copyushort GetPmtPid(const char* filename) { #define TSPACKET_SIZE转载 2017-09-04 11:57:43 · 863 阅读 · 0 评论 -
MPEG2/TS获取PCR PID方法
一个简单的从指定MPEG2/TS文件中获取PCR PID的函数,PMT的头结构中有PCR PID,我们首先得到PMT PID,然后分析PMT包,就可以得到PCR PID了。GetPmtPid函数的实现见:http://blog.youkuaiyun.com/myaccella/article/details/6982596MAKE_PID:#define MAKE_PID(p)转载 2017-09-04 11:58:51 · 1807 阅读 · 0 评论 -
MPEG2/TS 获取Video PID
从PMT表中获取Video PID的函数代码 GetPmtPid函数的实现见:http://blog.youkuaiyun.com/myaccella/article/details/6982596#define MAKE_PID(p) (((p[0]#define MAKE_WORD(h, l) (((h) Little endian 的结构定义type转载 2017-09-04 11:59:47 · 979 阅读 · 0 评论 -
媒体格式分析之flv -- 基于FFMPEG
本来是应该先写一个媒体文件格式的简单讲解的,还没来得及写,以后再写。今天就先根据ffmpeg的flv.c的flv_demux这个结构体来讲解一下当前比较流行的媒体格式flv.FLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能.当前主流的媒体网站像国内的优酷、国外youtub转载 2017-08-30 10:32:44 · 429 阅读 · 0 评论 -
TS流讲解--什么是ts流
一 从TS流开始 数字电视机顶盒接收到的是一段段的码流,我们称之为TS(Transport Stream,传输流),每个TS流都携带一些信息,如Video、Audio以及我们需要学习的PAT、PMT等信息。因此,我们首先需要了解TS流是什么,以及TS流是怎样形成、有着怎样的结构。(一) TS流、PS流、PES流和ES流都是什么? ES流(Ele转载 2017-09-01 10:13:26 · 1371 阅读 · 0 评论 -
什么是DVB-SI?对PSI(PAT,PMT,CAT,NIT,SDT,EIT)的理解
数字电视与传统模拟电视节目选择的方式完全不同, 传统电视的每一个频道对应一个节目,只要调到相应的频率, 就可以看到节目。 而在数字电视信号中,一路码流对应多路节目,使用复用技术就可以做到了。一个物理的频道只能给出包含多路节目的一路传输流。要观看其中的某一路节目,还必须从该传输流中提取出该路节目的...转载 2018-03-12 14:53:20 · 1335 阅读 · 0 评论 -
mpeg2 ts流PAT,PMT,SDT的定义
更具体准确的信息请参考iso13818-1,都在里面定义的 PAT的定义:Table_id:为8bit字段,该字段标识节目关联分段,对于PAT,置为0x00。Section_syntax_indicator:1bit字段,对于PAT,置为0x01。Reserved:2bit保留字段,用于将来扩展,置为11。Section_length:12bit字段,指示当前section的长度,计数值从分段长...转载 2018-03-12 15:19:28 · 895 阅读 · 0 评论 -
TS各个表 与 SECTION 的解析 CAS原理
TS流,通过一个个的TS包来传送;TS包可以是传送PSI SI等各表的数据包,也可以是传送节目音视频数据(携带的PES包:音视频基本流包)的包;TS携带 PSISI等表的数据时,各个表以各表对应的Section语法格式做为传输单元存放到TS包中 以便传输;TS包,有一个TS包的PID,系统就是根据这个PID来找对应的TS包;对于包含音视频数据(PES包)的TS包,系统通过TS的PID找到对应TS数...转载 2018-03-12 16:20:04 · 897 阅读 · 0 评论 -
PSI/SI深入学习3——SI信息解析2(SDT, EIT, TDT,TOT)
PSI/SI 深入学习BASIC KNOWLEDGE LEARNING OF PSI/SI SDT解析PARSINGOF SDT"SDT描述了业务内容及信息,连接了NIT与EIT和PMT(PSI)" SDT即服务描述表(Service Description Table),它描述了一个业务中的内容以及信息,它承上启下,以transport_stream_ID连接了NIT和EIT;SD...转载 2018-03-14 10:00:54 · 2222 阅读 · 0 评论 -
PSI/SI深入学习2——PSI信息解析(PAT,PMT,CAT)
转自:http://blog.youkuaiyun.com/kkdestiny/article/details/12994085PSI/SI 深入学习BASIC KNOWLEDGE LEARNING OF PSI/SI PSI信息INFORMATION OF PSI"PSI是对单一TS流的描述,是TS流中的引导信息" PSI信息由节目关联表PAT、条件接收表CAT、节目映射表PMT和网络信息表...转载 2018-03-14 12:17:34 · 1017 阅读 · 0 评论 -
CA解扰的那点事
1、名词概念:接收控制系统/条件接收系统 :该系统的任务是保证DVB业务仅被授权接收的用户所接收,其主要功能是对信号加扰,对用户电子密钥的加密以及建立一个确保被授权的用户能接收到加扰节目的用户管理系统控制字或密钥:CW (Control Word )节目映射表:PMT (Program Map Table )条件接收表:CAT (Conditional Access Table )授权控制信息:...转载 2018-03-14 15:39:36 · 1918 阅读 · 1 评论 -
MPEG2/TS 包结构简述
TS 包由以下3部分组成:包头: 4字节, 同步,识别,检错和加密用自适配域:可选包数据:最大184字节(不存在自适配域)4字节184字节包头自适配域包数据 4字节包头结构:1字节1比转载 2017-09-04 11:56:41 · 512 阅读 · 0 评论 -
RTP解包
同前篇类似,修改自vc下的程序,跟打包相反,原理就是从udp接收一个数据包,判断这个数据包是单个发送还是分片发送,进而获取rtp包中的h264NAL数据,并加上0x00000001起始字节一并写进文件中即可。[cpp] view plaincopy#include #include #include转载 2017-08-22 10:37:10 · 1123 阅读 · 0 评论 -
RTP 打包H.264
#include #include #include #include #include #pragma comment( lib, "ws2_32.lib" ) #define PACKET_BUFFER_END (unsigned int)0x00000000 #define MAX_RTP_PKT_LENGTH转载 2017-08-22 10:35:47 · 420 阅读 · 0 评论 -
【多媒体封装格式详解】---MP4【2】
1.File Type BoxBox Type: `ftyp’这种box一般情况下都会出现在mp4文件的开头,它可以作为mp4容器格式的可表示信息。就像flv头‘F’ 'L' 'V' 3字节,MKV头部的1A 45 DF A3 、ASF_Header_Object 可以作为ASF容器格式的可辨识信息一样。ftyp box内容结构如下[cpp] view转载 2017-08-16 17:38:44 · 361 阅读 · 0 评论 -
【多媒体封装格式详解】---MP4【3】
2.2.2 Media BoxBox Type: ‘mdia’mdia box 结构十分复杂。来个例子。2.2.2.1 Media Header BoxBox Type: ‘mdhd’[cpp] view plain copyaligned(8) class MediaHeaderBox extends FullBo转载 2017-08-16 17:42:06 · 371 阅读 · 0 评论 -
【多媒体封装格式详解】---MP4【4】
前面介绍过的几种格式flv、mkv、asf等。他们音视频的数据包一般都是按照文件的顺序交叉安放。你解析完头部信息后。剩下的一般就按照文件顺序一个数据包一个数据包的解析就行了。但是MP4完全不是这种概念。他的媒体信息和数据是分开存放的。就是你想获得数据之前必须要解析出每个帧数据所有的位置。mp4存放这个帧信息的是放在stbl这个box里。而真实的数据放在mdat中。接下来就讲讲stbl与mdat的对转载 2017-08-16 17:43:25 · 302 阅读 · 0 评论 -
Mp4结构图
原创 2017-08-17 09:48:25 · 1087 阅读 · 0 评论 -
FFmpeg使用手册 - MP4的格式解析
FFmpeg使用手册 - MP4的格式解析视频文件转MP4在互联网中常见的格式中,跨平台最好的,应该是MP4文件,因为MP4文件既可以在PC平台的Flashplayer中播放,又可以在移动平台的Android,IOS等平台中进行播放,而且是默认播放,那么就可以理解为MP4为最常见的多媒体文件格式,所以重点介绍MP4封装,说到MP4封装,下面简单介绍一下MP4封装的基本格式.3.1.转载 2017-08-17 13:39:31 · 1632 阅读 · 0 评论 -
Mp4文件中提取H264码流
一、MP4格式基本概念MP4格式对应标准MPEG-4标准(ISO/IEC14496) 二、MP4封装格式核心概念1 MP4封装格式对应标准为 ISO/IEC 14496-12(信息技术 视听对象编码的第12部分: ISO 基本媒体文件格式/Information technology Coding of audio-visual objects Part 12转载 2017-08-17 16:55:09 · 9920 阅读 · 0 评论 -
成功在MP4封装的H264视频中提取能播放的裸流
原理说明如下,.h264文件只需要写入sps,pps以及后面的视频裸流(nalu)就可以播放了,播放器可以选择VLC或者迅雷看看播放器,其它的没有测试过。MP4文件是由一个一个box组成的文件,每个box的开头是box的length(4 byte),紧接着是4 byte的box type,如果length是0x01的话,那么在box type后面接着的就是8 byte的box length转载 2017-08-17 17:15:14 · 2510 阅读 · 0 评论 -
区分mp4格式里面mdat中的音频和视频数据
首先在minf里面有个vmhd和smhd,那么vmhd代表视频,smhd代表音频然后在stsz中stsz Box00 00 73 D8 size of stsz,2073 74 73 7A: stsz00 00 00 00: version00 00 00 00: sample-size00 00 1C F1: sample-count00 0转载 2017-08-17 18:05:40 · 3252 阅读 · 0 评论 -
Mp4文件播放原理分析
原创 2017-08-18 10:17:49 · 3331 阅读 · 0 评论 -
MP4文件格式解析
一、概述 MP4文件格式中,所有的内容存在一个称为movie的容器中。一个movie可以由多个tracks组成。每个track就是一个随时间变化的媒体序列,例如,视频帧序列。track里的每个时间单位是一个sample,它可以是一帧视频,或者音频。sample按照时间顺序排列。注意,一帧音频可以分解成多个音频sample,所以音频一般用sample作为单位,而不用帧。MP4文转载 2017-08-18 11:08:54 · 977 阅读 · 0 评论 -
MP4文件格式解析 之 二 (Sample table atom )
http://www.52rd.com/Blog/Detail_RD.Blog_wqyuwss_7934.html C stbal sample table atom 存储媒体数据的单位是samples。一个sample是一系列按时间顺序排列的数据的一个element。Samples存储在me转载 2017-08-18 11:09:39 · 1199 阅读 · 1 评论 -
将es打包成pes时,处理PTS和DTS的方法
PES包格式:分组开始码前缀:0x00 0x00 0x01流ID:视频为0x0E,音频为0x0CPES分组长度:这个包中此后数据的长度,包括此后剩余的PES包头长度和帧数据长度。PES首部数据长度:可选字段长度+填充字节长度。其中PTS/DTS标志位的意义为:0x01:表示pes包头长度后面跟一个DTS数据(一个DTS或PTS的长度为5个字节。)0x02:表示pes包头长度后面跟一个PTS数据0x...转载 2018-07-03 22:14:48 · 694 阅读 · 0 评论