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 条评论
登录 后参与评论

相关文章

来自专栏量子位

Keras 2正式发布,推出深度整合进TensorFlow的新API

允中 编译整理 量子位·QbitAI 出品 今天,深度学习框架Keras在博客上发表文章,介绍了深度整合进TensorFlow的内部版本tf.keras,以及...

3218
来自专栏量子位

Google发布神经机器翻译教程,带你从零开始搭建NMT系统

李林 编译自 Google Research Blog 量子位 报道 | 公众号 QbitAI ? 想自己在TensorFlow上搭神经机器翻译(NMT)模型?...

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

深度学习框架哪家强?MXNet称霸CNN、RNN和情感分析,TensorFlow仅擅长推断特征提取

深度学习框架哪家强:TensorFlow?Caffe?MXNet?Keras?PyTorch?对于这几大框架在运行各项深度任务时的性能差异如何,各位读者不免会有...

3343
来自专栏iOSDevLog

人工智能的 "hello world":在 iOS 实现 MNIST 数学识别MNIST: http://yann.lecun.com/exdb/mnist/ 目标步骤

3218
来自专栏机器之心

GPU捉襟见肘还想训练大批量模型?谁说不可以

2018 年的大部分时间我都在试图训练神经网络时克服 GPU 极限。无论是在含有 1.5 亿个参数的语言模型(如 OpenAI 的大型生成预训练 Transfo...

912
来自专栏深度学习自然语言处理

详谈P(查准率),R(查全率),F1值

怎么来的? 我们平时用的精度accuracy,也就是整体的正确率 acc=predict_right_num/predict_num 这个虽然常用,但...

3379
来自专栏QQ大数据团队的专栏

神盾推荐——离线算法平台

5285
来自专栏AI研习社

Github 项目推荐 | 用 Numpy 实现简单的 GAN

本库能够让开发者用 Numpy 一步步实现简单的 GAN。不使用 GPU 的话,生成所有的数字会花费大量的时间,如果你只想用 CPU 来训练的话,建议只训练一个...

822
来自专栏AI研习社

让AI给颜值打分?应该是最公正的裁判了!

机器学习是不是很无聊,用来用去都是识别字体。能不能帮我找到颜值高的妹子,顺便提高一下姿势水平。 FaceRank 基于 TensorFlow CNN 模型,提供...

3707
来自专栏企鹅号快讯

现在 tensorflow和mxnet 很火,是否还有必要学习 scikit-learn 等框架?

本文整理自作者在知乎问题《现在 tensorflow 和 mxnet 很火,是否还有必要学习 scikit-learn 等框架?》下的回答,AI 研习社获其作者...

2717

扫码关注云+社区