
(FFMpeg学习笔记):FFMpeg视频播放器的制作之基本概念
发布日期:2021-05-07 15:20:04
浏览次数:21
分类:精选文章
本文共 1821 字,大约阅读时间需要 6 分钟。
- 参考视频:
目录
视频播放器原理
- 播放一个视频文件的流程如下所示。
【常用播放器】
- 跨平台系列(非DirectShow框架)
- VLC, Mplayer, ffplay……
- Windows系列(DirectShow框架)
- 完美解码,终极解码, 暴风影音……
【信息查看工具】
- 综合信息查看
- MediaInfo
- 二进制信息查看
- UltraEdit
- 单项详细分析
- 封装格式: Elecard Format Analyzer
- 视频编码数据: Elecard Stream Eye
- 视频像素数据: YUV Player
- 音频采样数据: Adobe Audition
封装格式
- 封装格式的作用
- 视频码流和音频码流按照一定的格式存储在一个文件中。
- 封装格式分析工具
- Elecard Format Analyzer
【MPEG2-TS格式简介】
- 不包含文件头。
- 数据大小固定(188Byte)的TS Packet构成。
【FLV格式简介】
- 包含文件头。
- 数据由大小不固定的Tag构成。
视频编码数据
- 视频编码的作用
- 将视频像素数据(RGB, YUV等)压缩成为视频码流,从而降低视频的数据量。
- 视频编码分析工具
- Elecard Stream Eye
【H.264格式简介】
- 数据由大小不固定的NALU构成
- 最常见的情况下, 1个NALU存储了1帧画面的压缩编码后的数据。
【H.264压缩方法】
- 比较复杂。包含了帧内预测、帧间预测、熵编码、环路滤波等环节构成。
- 可以将图像数据压缩100倍以上。
【Elecard Stream Eye工具】
- 红色的帧: I帧(直接整个图片)
- 蓝色的帧: P帧 (参考前面的帧,记录不一样的地方)
- 绿色的帧: B帧 (参考前面以及后面的的帧,记录不一样的地方)
音频编码数据
- 音频编码的作用
- 将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量。
【AAC格式简介】
- 数据由大小不固定的ADTS构成
- AAC压缩方法
- 比较复杂。
- 可以将音频数据压缩10倍以上
视频像素数据
- 视频像素数据作用
- 保存了屏幕上每个像素点的像素值。
- 格式:
- 常见的像素数据格式有RGB24, RGB32, YUV420P, YUV422P,YUV444P等。
- 压缩编码中一般使用的是YUV格式的像素数据, 最为常见的格式为YUV420P。
- 特点:
- 视频像素数据体积很大,一般情况下1小时高清视频的RGB24格式的数据体积为:
- 3600*25*1920*1080*3=559.9GByte
- PS:这里假定帧率为25Hz,取样精度8bit。
- YUV格式像素数据查看工具
- YUV Player
【RGB格式简介】
- Red、 Green、 Blue三种颜色,可以混合成世界上所有的颜色。
- 彩色图像中每个点,由R、 G、 B三个分量组成。
- 以RGB24为例,图像像素数据的存储方式如下:
- 从图中可以看出, RGB24依次存储了每个像素点的R、 G、 B信息。
- PS: BMP文件中存储的就是RGB格式的像素数据。
【YUV格式简介】
- 相关实验表明,人眼对亮度敏感而对色度不敏感。
- 因而可以将亮度信息和色度信息分离,并对色度信息采用更“狠”一点的压缩方案,从而提高压缩效率
- YUV格式中, Y只包含亮度信息,而UV只包含色度信息。
- 以YUV420P为例,图像像素数据的存储方式如图所示。
- 从图中可以看出, YUV420P首先存储了整张图像的Y信息,然后存储整张图像的U信息,最后存储了整张图像的V信息。
【YUV Player】
音频采样数据
- 音频采样数据作用
- 保存了音频中每个采样点的值。
- 特点:
- 音频采样数据体积很大,一般情况下一首4分钟的PCM格式的歌曲体积为:
- 4*60*44100*2*2=42.3MByte
- PS:这里假定采样率为44100Hz,采样精度为16bit。
- 音频采样数据查看工具: Adobe Audition
【PCM格式简介】
- 单声道的情况下按照顺序存储每个采样点的数据。
- 双声道的情况下按照“左右、左右”的顺序存储每个采样点两个声道的数据
工具总结
任意4个文件的总体信息 MediaInfo MKV、 MP4、 AVI封装格式信息 Elecard Format Analyzer H.264码流分析信息 Elecard Stream Eye YUV视频像素数据 YUV Player PCM音频采样数据 Audition
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月06日 10时34分27秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
KNN 算法-理论篇-如何给电影进行分类
2021-05-09
Spring Cloud第九篇 | 分布式服务跟踪Sleuth
2021-05-09
CODING 敏捷实战系列课第三讲:可视化业务分析
2021-05-09
使用 CODING DevOps 全自动部署 Hexo 到 K8S 集群
2021-05-09
工作动态尽在掌握 - 使用 CODING 度量团队效能
2021-05-09
CODING DevOps 代码质量实战系列最后一课,周四发车
2021-05-09
CODING DevOps 深度解析系列第二课报名倒计时!
2021-05-09
CODING DevOps 线下沙龙回顾二:SDK 测试最佳实践
2021-05-09
翻译:《实用的Python编程》03_01_Script
2021-05-09
数据结构第八节(图(下))
2021-05-09
基础篇:异步编程不会?我教你啊!CompletableFuture
2021-05-09
基于Mustache实现sql拼接
2021-05-09
气球游戏腾讯面试题滑动窗口解法
2021-05-09
POJ 2260 Error Correction 模拟 贪心 简单题
2021-05-09
POJ - 1328 Radar Installation 贪心
2021-05-09
CSUOJ Water Drinking
2021-05-09
自定义博客园博客的背景图片
2021-05-09
Spring MVC+javamail实现邮件发送
2021-05-09
Asp.NET Core 限流控制-AspNetCoreRateLimit
2021-05-09
gRPC在 ASP.NET Core 中应用学习(一)
2021-05-09