上篇介绍了m3u8文件,本篇介绍MPEG2-TS文件:
MPEG2-TS是一种封装格式,所有的video,audio以及辅助信息(PAT,PMT)都被封装成为188bytes的TS_packet.在TS中用PID来区分不同的stream.其中有一些特殊的PID,如PAT的pid固定是0x0000.
标准是:iso13818-1
优点是每个包都有固定大小,在网络传输中和文件切割时比较方便;
缺点是因为每个包都是188bytes,所以必然会有padding;从而浪费一定的空间,当sample比较小的时候浪费是比较严重的,此时能够通过将多个sample压缩进行打包的方式来实现。
在http live streaming中只需要实现部分标准。
PSI(program specific information)信息:
PAT(program_association_table):是由program_association_section构成。
每个PAS的结构如下图所示:
由上图可以看出PAS用来指定program_map_pid和network PID。对于m3u8 streaming 中network PID 并不需要实现。
PMT(program_map_table):用来指定每个节目中有几路es stream,其中每个stream的PID以及一些相关的描述信息。
PES_packet():用来打包es的格式。其中比较重要的信息有DTS、PTS信息。详细信息请查阅iso13818-1标准。
TS_packet(transport_packet):用来打包PES_packet和PSI信息。
在MPEG2-TS中PID是一个很重要的概念,PID是流的唯一标示符,相同的PID指定的是相同类型的内容。服务器和客户端端是通过PID来实现复用和解复用的。
客户端的解码过程:
1.找到TS_packet的开始位0x47。
3.找到PID为0x0000的PAT,将PAT进行解包,得到每路节目对应的PMT PID(在m3u8 streaming中只有一路节目)。
4.根据PAT解包得到的PMT PID得到PMT,同理将PMT进行解包得到ES pid和对应的类型。
5.根据PMT解包得到的ES PID,将该路流解包得到PES_packet,从而得到ES流和DTS,PTS。此时就能送到decoder去解码了。
服务器端的编码过程:
1.更具PMT PID来生成PAT,并打包成TS_packet来写入文件。
2.根据ES的PID和类型生成PMT,并打包成TS_packet来写入文件。
4.接收video/audio sample,并将一个或者多个sample打包成为PES_packet.
5.将打包好的PES_packet封装成TS_packet写入文件。
分享到:
相关推荐
M3U8是HLS(HTTP Live Streaming)协议的一部分,由Apple公司开发,主要用于流媒体视频和音频的分段传输。这种格式允许内容分发网络根据用户的网络条件动态调整流的质量,提供流畅的观看体验。 M3U8文件本身是一个...
m3u8是一种基于HTTP Live Streaming (HLS) 的播放列表文件,用于分段传输多媒体数据。它将长视频分割成多个小片段,每个片段通常为几秒到几十秒不等,以适应网络环境的变化,确保流畅的播放体验。m3u8文件包含了这些...
”M3U”和”M3U8″文件都是苹果公司使用的HTTP Live Streaming格式的基础,这种格式可以在iPhone和Macbook等设备播放。简而言之,M3U8就是一个播放列表。所以问题来了,如果你想下载一个播放列表里的所有视频,然后...
m3u8是一种基于HTTP Live Streaming (HLS) 协议的多媒体播放列表格式,广泛应用于流媒体服务,如在线视频网站和直播平台。 该压缩包“m3u8DL-CLI-v2.9.7.zip”包含的主要内容是“N_m3u8DL-CLI_v2.9.7_with_ffmpeg_...
m3u8是一种基于HTTP Live Streaming (HLS) 的媒体播放列表格式,由Apple公司推出,主要用于分段式传输高质量的流媒体内容,如高清视频。它将大文件分割成多个小片段(通常为几秒),以便在网络条件变化时动态调整...
M3U8是一种基于文本的媒体播放列表格式,广泛应用于流媒体服务,特别是在 HLS(HTTP Live Streaming)协议中。标题中的"M3U8Downloader"是一个专门针对M3U8文件进行下载的工具,主要功能是对M3U8文件进行解析和分段...
M3U8是一种基于HTTP Live Streaming (HLS)协议的媒体播放列表格式,广泛应用于在线流媒体服务。它将视频分割成多个小段(通常为TS格式),通过M3U8索引文件指示这些片段的位置,从而实现流式传输。由于这种分段传输...
m3u8文件实际上是一种播放列表,它包含了多个ts视频片段的路径,这些片段可能是由HTTP Live Streaming (HLS)协议分发的。这种格式常用于在线流媒体服务,因为它可以适应不同的网络条件。 描述中提到的步骤包括: 1...
在数字媒体领域,m3u8格式的资源广泛应用于在线视频流传输,它是一种基于HTTP Live Streaming (HLS)的播放列表文件。m3u8文件本身并不存储视频内容,而是包含一系列指向视频切片(或称为碎片)的URL,这些切片通常以...
HLS http live streaming 白皮书 draft-pantos-http-live-streaming
它最初由苹果公司开发,为HTTP Live Streaming(HLS)协议提供支持。M3U8文件采用UTF-8编码,包含了一系列URI链接,指向媒体文件或其他嵌套的M3U8文件。其结构简单清晰,常用于实现自适应码率、分片传输的视频播放。...
它由Apple公司推出,主要用于HLS(HTTP Live Streaming)流媒体系统。m3u8文件本质上是一个文本文件,包含一系列URL,这些URL指向媒体内容的分片,即所谓的“segment”。 m3u8-segmenter工具则扮演了将原始视频或...
它最初由苹果公司开发,为HTTP Live Streaming(HLS)协议提供支持。M3U8文件采用UTF-8编码,包含了一系列URI链接,指向媒体文件或其他嵌套的M3U8文件。其结构简单清晰,常用于实现自适应码率、分片传输的视频播放。...
其次,M3U8是HLS(HTTP Live Streaming)协议下的播放列表文件格式,广泛用于流媒体传输。M3U8文件包含了一系列TS(Transport Stream)片段的URL,这些片段通常由编码器实时生成。DPlayer支持M3U8格式,意味着它可以...
其中,m3u8格式作为一种基于HTTP Live Streaming (HLS)的播放列表文件,广泛应用于在线视频、直播等领域。然而,对于普通用户来说,直接下载m3u8链接并将其转换为可离线观看的本地文件,如MP4,通常需要借助专门的...
m3u8是一种基于HTTP Live Streaming (HLS) 的多媒体播放列表格式,广泛用于互联网流媒体传输。这种格式由Apple开发,主要优点在于能够适应不同的网络条件,提供流畅的视频体验。 1. **m3u8格式**:M3U8文件是m3u...
m3u8文件是HLS(HTTP Live Streaming)协议下的媒体播放列表,广泛应用于在线视频服务,尤其是适应不同网络条件的自适应流媒体播放。这款工具的独特之处在于其支持CBC(Cipher Block Chaining)和ECB(Electronic ...
m3u8-dl 一个CLI程序,用于下载m3u8播放列表中的视频,将其写入单个视频文件,然后使用ffmpeg将其转换为mp4。 在此处阅读有关m3u8的信息 依存关系 在激活virtualenv之后,使用pip install -r requirements.txt...
go-m3u8可以轻松生成和解析Apple发行的HTTP Live Streaming(HLS)Internet草案中定义的m3u8播放列表。 该库完全实现了HLS Internet Draft版本20。 提供从任何File,io.Reader或字符串将m3u8播放列表解析为对象...
`MP4`是一种包含视频、音频、字幕等多轨道的容器格式,而`M3U8`则是一个用于流媒体播放的 playlist 文件,常用于 HLS(HTTP Live Streaming)协议,适应于移动端和网络带宽变化大的场景。本篇文章将详细讲解如何使用...