音视频入门基础:MPEG2-TS专题(20)——ES流简介

《T-REC-H.222.0-202106-S!!PDF-E.pdf》第27页对ES进行了定义。ES流是PES packets(PES包)中编码的视频、编码的音频或其他编码的比特流。一个ES流(elementary stream)在具有且只有一个stream_id的PES packets序列中携带:

在《音视频入门基础:MPEG2-TS专题(18)------PES流简介》 中讲到,PES流中一个PES packet由PES packet header(PES包的包头)和PES packet data bytes(PES包的负载)组成。而PES packet data bytes中携带的就是ES流,即包含视频、音频或数据的连续码流。

PES packet的PES packet header中有一个占1字节stream_id属性,指定ES流的类型和编号:

从《音视频入门基础:MPEG2-TS专题(16)------PMT简介》中也可以知道,在PMT表中存在一个stream_type属性,指定媒体流的类型:

下面通过两个具体的例子进行验证:

(一)当某TS流中的PMT表中stream_type属性的值为0x1B时,从上面表格中可以查到对应的媒体流类型为AVC,即H.264视频流:

通过Elecard Stream Analyzer工具可以查看到其对应elementary_PID的视频就是以0x000001作为起始码的AnnexB格式的H.264码流(关于AnnexB可以参考:《音视频入门基础:H.264专题(3)------EBSP, RBSP和SODB》)。也就是说该TS流中对应elementary_PID的ES流就是AnnexB格式的H.264码流:

(二)当某TS流中的PMT表中stream_type属性的值为0x0F时,从上面表格中可以查到对应的媒体流类型为ADTS包装的AAC音频流:

通过Elecard Stream Analyzer工具可以查看到其对应elementary_PID的音频就是syncword属性固定为0b111111111111的ADTS包装的AAC音频流(关于ADTS可以参考:《音视频入门基础:AAC专题(3)------AAC的ADTS格式简介》)。也就是说该TS流中对应elementary_PID的ES流就是ADTS包装的AAC音频流:

相关推荐
陕西企来客12 小时前
2026年7月AI智能搜索曝光趋势研判
大数据·人工智能·机器学习·ai智能搜索曝光
hangyuekejiGEO13 小时前
GEO技术服务选型指南
大数据·人工智能·python
1名持续学习的码农15 小时前
GPT Plus、GPT Pro用户第一次用Codex,项目权限和Git分支怎么设置?
人工智能·git·gpt·elasticsearch·ai编程·codex
风途科技~16 小时前
雷达与压力一体式设计,可同时选用或单独选用—一体式管网液位计灵活配置
大数据·人工智能
大大大大晴天17 小时前
浅析StarRocks 表设计:表类型、分布策略与索引
大数据
小罗水17 小时前
附录A 各微服务完整 application.yml 配置汇总
数据库·elasticsearch·微服务
APItesterCris18 小时前
Open Claw 实战教程:5 分钟搭建京东商品自动化监控与数据分析系统
大数据·运维·数据库·数据仓库·自动化
程序员老陆19 小时前
从零写一个 FFmpeg 播放器:架构设计远比“解码显示”复杂
ffmpeg·音视频·播放器
Elasticsearch19 小时前
使用 Gemma、Hugging Face 和 Elasticsearch 构建 RAG 系统
elasticsearch
Elasticsearch20 小时前
使用 NVIDIA NeMo Retriever、Unstructured 和 Elasticsearch 处理非结构化数据
elasticsearch