FFmpeg菜鸡互啄#第1篇#一些基本概念

播放一个视频文件的流程

封装格式

视频流和音频流按照一定的格式存储在一个文件中。常见的封装格式有mp4、flv、avi、mkv…

视频编码

将视频像素数据(RGB, YUV等)压缩编码成视频流,从而降低视频的数据量。一般使用H.264的情况会比较多,可以将图像数据压缩100倍以上。

音频编码

将音频采样数据(PCM等)压缩为音频流,从而降低音频的数据量。一般使用AAC的情况会比较多,可以将音频数据压缩10倍以上。

视频像素数据

保存了屏幕上每个像素点的像素值。常见的像素数据格式有RGB24、RGB32、YUV420P、YUV422P、YUV444P等。压缩编码中一般使用的是YUV格式的像素数据, 最为常见的格式为YUV420P。视频像素数据体积很大,一般情况下1小时高清视频的RGB24格式的数据体积为:

3600*25*1920*1080*3=559.9GByte

PS:这里假定帧率为25Hz,取样精度8bit。

音频采样数据

保存了音频中每个采样点的值。音频采样数据体积很大,一般情况下一首4分钟的PCM格式的歌曲体积为:

4*60*44100*2*2=42.3MByte

PS:这里假定采样率为44100Hz,采样精度为16bit。

最后

使用FFmpeg对媒体文件解码之后,大多数情况会直接得到YUV和PCM数据,再把数据利用SDL等媒体库就可以直接播放(其实像VLC这样的FFmpeg的儿子可以直接使用其接口播放媒体文件)。总的来说,我们一开始学习FFmpeg的时候可以先不深入研究各种封装格式、编码格式和数据格式。研究那些的时候应该就不是菜鸟了吧~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量子位

Caffe2推出强化学习库,包含多个基于Caffe2的RL实现

安妮 编译自 Caffe2.ai 量子位 出品 | 公众号 QbitAI 今年4月,Facebook正式发布了轻量化和模块化的深度学习框架Caffe2。将近5个...

3487
来自专栏AI科技大本营的专栏

我们从250个机器学习开源项目中挑出了Top 10,Github平均star979

在过去一个月中, Mybridge 从 250 个机器学习开源项目中挑选出了 Top 10。Mybridge AI 比较了这期间发布的新项目和重大项目,然后依据...

913
来自专栏机器之心

教程 | 盯住梅西:TensorFlow目标检测实战

选自Medium 作者:Nicolas Bortolotti 机器之心编译 参与:黄小天、路雪 近日,一篇题为《Following Messi with Ten...

3787
来自专栏深度学习之tensorflow实战篇

协同过滤算法概述与python 实现协同过滤算法基于内容(usr-item,item-item)

协调过滤推荐概述   协同过滤(Collaborative Filtering)作为推荐算法中最经典的类型,包括在线的协同和离线的过滤两部分。所谓在线协同,...

6224
来自专栏思影科技

《大话脑成像》系列之一:浅谈功能脑网络

最近,经我们team经过数轮研讨之后,决定开辟一个专栏,以寓教于乐的方式和浅显通俗的语言为关注者带来一些原理或方法上的理解,望读者们喜欢吧,如果出现些许...

3937
来自专栏新智元

【TensorFlow开发者峰会】重磅发布TensorFlow.js,完全在浏览器运行机器学习

1637
来自专栏目标检测和深度学习

Github 平均 Star 979!一文了解 Top 10 机器学习开源项目

1212
来自专栏CSDN技术头条

大规模主题模型:对Spark LDA算法的改进

这篇文章由Databricks的Feynman Liang和Joseph Bradley,以及Intel的Yuhao Yang撰写。 在使用LDA之前,请先 下...

2715
来自专栏Duncan's Blog

Personalized Search论文阅读笔记

论文中首先总结了之前的工作中对用户和资源的profile构建的方法,用户和资源的profile的tag的权重计算方法有TF、TF-IDF、BM25,以及用户兴趣...

1003
来自专栏量子位

最强NLP模型BERT喜迎PyTorch版!谷歌官方推荐,也会支持中文

谷歌的最强NLP模型BERT发布以来,一直非常受关注,上周开源的官方TensorFlow实现在GitHub上已经收获了近6000星。

1753

扫码关注云+社区