1.前言:
本篇是到大神博客http://blog.csdn.net/leixiaohua1020/article/details/18893769参考和学习,读者感兴趣就直接到大神博客学习就好,因为下面本人总结的笔记,都是参考他的。
2.介绍我们生活中的视音频的技术:
1.封装格式:
电影文件的格式分别有:avi,rmvb,mp4,fiv,mkv等等一下
概念:把视频数据和音频数据打包成一个文件的规范,叫做封装格式
但是,观看封装格式是无法知道这个视音频文件用了什么视音频编码标准,下面我在Mac电脑上用一个软件来查看视音频文件的编码标准。
其实如果你阅读了大神的博客http://blog.csdn.net/leixiaohua1020/article/details/18893769你就会发现Windows的很多软件自带了这个功能。
image.png
看的出:未命名.mov采用MPEG-4的Apple QuickTIme的封装格式(MOV),采用了H.264(AVC)的压缩编码标准。
另外:关于Mediainfo的简介和源码分享:
http://blog.csdn.net/leixiaohua1020/article/details/18893769
3.视频播放的原理:
视音频技术:
1.封装技术
2.视频压缩编码技术
3.音频压缩编码技术
4.流媒体协议技术(应用于网络传输)
视频播放器播放互联网的视频文件,需要的步骤是:
解协议->解封装->解码视音频->视音频同步。
视频播放器播放本地的视频文件,需要的步骤是:
解封装->解码视音频->视音频同步
示意图.png
1.解协议的作用:
1. 将流媒体协议的数据,解析为标准的相应的封装格式数据
2.视音频在网络上传输的时候,常常会采用各种各样的媒体协议,例如:HTTP,RTMP,或者是MMS等等一些
3.这些协议在传输视音频的时候,也会传输一些信令数据
4.这些信令数据包括对播放的控制(播放,暂停,停止)或者对网络状态的描述等
5.解协议的过程中会除掉信令数据而保留视音频数据.例如:采用Rtmp协议传输的数据,经过解协议操作后,输出FLV格式的数据
2.解协议的作用:
1.就是讲输入的封装格式的数据,分离成为音频流压缩编码和视频压缩编码数据
2.封装格式种类有很多。前面有介绍,如果avi,rmovb,mp4,fiv,mkv等格式,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放在一起!
3.解封装的过程就是例如FLV格式的数据,经过解封装操作后,输出h.264编码的视频码流和AAC编码的音频码流
3.解码的作用
1.就是将视频、音频压缩编码数据,解码成为非压缩的视频、音频原始的数据
2.音频的压缩编码标准包含AAC,MP3,AC-3等等
3.视频的压缩编码的标准包含H.264.MPEG2,VC-1等
4. 通过解码,压缩编码的视频数据转换成非压缩的颜色数据,例如YUV420P,RGB等等
5.通过解码,压缩编码的音频数据输出成为非压缩的音频抽烟数据,例如PCM数据
4.视音频同步的作用:
1.根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据,并将视频音频数据传送到系统的显卡和声卡播放出来
5.推荐几个视频参数对比的资源
流媒体系统对比: [http://en.wikipedia.org/wiki/Comparison_of_streaming_media_systems](http://en.wikipedia.org/wiki/Comparison_of_streaming_media_systems) 封装格式对比: [http://en.wikipedia.org/wiki/Comparison_of_container_formats](http://en.wikipedia.org/wiki/Comparison_of_container_formats) 视频编码器对比: [http://en.wikipedia.org/wiki/Comparison_of_video_codecs](http://en.wikipedia.org/wiki/Comparison_of_video_codecs) 音频编码格式对比: [http://en.wikipedia.org/wiki/Comparison_of_audio_formats](http://en.wikipedia.org/wiki/Comparison_of_audio_formats) 视频播放器对比: [http://en.wikipedia.org/wiki/Comparison_of_video_player_software](http://en.wikipedia.org/wiki/Comparison_of_video_player_software)
4.IOS的音视频解码工具FFmpeg类库的学习地址:就是雷晓华的博客笔记:
[最简单的基于FFmpeg的移动端例子:IOS HelloWorld](http://blog.csdn.net/leixiaohua1020/article/details/47071547)
[最简单的基于FFmpeg的移动端例子:IOS 视频解码器](http://blog.csdn.net/leixiaohua1020/article/details/47072257)
[最简单的基于FFmpeg的移动端例子:IOS 推流器](http://blog.csdn.net/leixiaohua1020/article/details/47072519)
[最简单的基于FFmpeg的移动端例子:IOS 视频转码器](http://blog.csdn.net/leixiaohua1020/article/details/47072673)
[最简单的基于FFmpeg的移动端例子附件:IOS自带播放器](http://blog.csdn.net/leixiaohua1020/article/details/47072861)
网友评论