当前位置:网站首页>【读书会第十三期】视频文件的封装格式
【读书会第十三期】视频文件的封装格式
2022-07-04 03:46:00 【华为云】
FFmpeg的视频封装格式
FFmpeg支持很多封装格式,包括MP4、FL.V、 MKV、 TS等视频封装格式、MP3、 MC等音频封装格式以及RTMP、 RTSP、 HILS 等网络协议封装格式。
而我们重点学习MP4视频封装格式。
MP4封装格式
MP4封装格式基本上可以认为是日常生活和工作中最常见的视频文件格式,主要是由于其广泛的适用性,不仅在PC端(windows、 mac、 linux) 支持的非常好,而且在移动端(Android、 i0S) 也能流畅播放。
MP4格式标准
MP4格式标准为ISO- 14496 Part 12 和ISO- 14496 Part 14, 具体特征如下:
- MP4文件由许多Box和FullBox。
- FullBox 是Box的扩展,在lleader 中增加了8位version信息和24位的flags信息。
- 每个Box由Header和Data两部分组成。
- Header 中包含了整个Box 的长度大小(size) 和类型(type) 。
- Data 中包含了实际的数据,可以是纯数据,也可以是子Box。 当Box中的Data 是一系列子Box时,这个Box又被称为Container (容器)。

MP4 ftyp Box
ftyp Box, -般位于文件开始位置,其中包含了MP4视频文件的类型、版本、兼容协
议等信息。
MP4 moov容器
moov容器中包含了MP4视频文件的媒体数据信息,内部又包含两个子容器: mvhd和
trak,前者定义了文件头信息,后者定义了媒体文件中的track信息。
Moov容器一般默认会生成在MP4 文件结尾,在线播放时需要加载完整个文件才能正常打开,为了能够快速打开视频,需要把moov容器放在MP4文件的前面。
MP4 mdat Box
mdat Box,用来存放媒体文件的实际数据内容。
总结:
第二天的学习主要讲解了视频文件的封装格式,以最常见的MP4视频文件格式详细的讲述了格式具体的标准,可以说是将这个在生活中见得最常见的格式重新的理解了一遍,原来是这样进行封装的。
边栏推荐
- functools下的reduce函数
- 疫情来袭--远程办公之思考|社区征文
- Summary of Chinese remainder theorem
- Monitoring - Prometheus introduction
- Database SQL statement summary, continuous update
- Webhook triggers Jenkins for sonar detection
- Don't disagree, this is the most powerful "language" of the Internet
- SQL语句加强练习(MySQL8.0为例)
- Pytest multi process / multi thread execution test case
- Mitsubishi M70 macro variable reading Mitsubishi M80 public variable acquisition Mitsubishi CNC variable reading acquisition Mitsubishi CNC remote tool compensation Mitsubishi machine tool online tool
猜你喜欢

用于TCP协议交互的TCPClientDemo

SQL statement strengthening exercise (MySQL 8.0 as an example)

EV6 helps the product matrix, and Kia is making efforts in the high-end market. The global sales target in 2022 is 3.15 million?

Webhook triggers Jenkins for sonar detection

Infiltration practice guest account mimikatz sunflower SQL rights lifting offline decryption
![[source code analysis] model parallel distributed training Megatron (5) -- pipestream flush](/img/98/3e5f1094141e34d7e77f908e12acda.jpg)
[source code analysis] model parallel distributed training Megatron (5) -- pipestream flush
![[source code analysis] model parallel distributed training Megatron (5) -- pipestream flush](/img/94/2bdc31ec05595dbbc8a7a8d6b22252.jpg)
[source code analysis] model parallel distributed training Megatron (5) -- pipestream flush

2022-07-03: there are 0 and 1 in the array. Be sure to flip an interval. Flip: 0 becomes 1, 1 becomes 0. What is the maximum number of 1 after turning? From little red book. 3.13 written examination.

ctf-pikachu-CSRF

Monitoring - Prometheus introduction
随机推荐
Have you entered the workplace since the first 00???
Explain AI accelerator in detail: why is this the golden age of AI accelerator?
CUDA basic knowledge
Slurm view node configuration information
Formulaire day05
[paddleseg source code reading] paddleseg calculates Miou
The new data center helps speed up the construction of a digital economy with data as a key element
1289_ Implementation analysis of vtask suspend() interface in FreeRTOS
[database I] database overview, common commands, view the table structure of 'demo data', simple query, condition query, sorting data, data processing function (single row processing function), groupi
Code Execution Vulnerability - no alphanumeric rce create_ function()
Don't disagree, this is the most powerful "language" of the Internet
Mitsubishi M70 macro variable reading Mitsubishi M80 public variable acquisition Mitsubishi CNC variable reading acquisition Mitsubishi CNC remote tool compensation Mitsubishi machine tool online tool
Day05 錶格
Jenkins configures IP address access
Object oriented -- encapsulation, inheritance, polymorphism
Cache general management class + cache httpcontext Current. Cache and httpruntime Differences between caches
Apple submitted the new MAC model to the regulatory database before the spring conference
Baijia forum the founding of the Eastern Han Dynasty
Is it really so difficult to learn redis? Today, a fan will share his personal learning materials!
ctf-pikachu-CSRF
