视频心得经iOS DeveloperiOS开发

iOS-视频大纲总结

2017-06-08  本文已影响100人  JackJin

本次博客思路来自与公司的一次技术分享。前段时间被公司委派做视频相关的开发,就把视频总体内容梳理一下当做备忘。

下面是本博文的写作思路:

iOS-视频大纲总结.png

流媒体数据接收到播放

在网络传输过程中我们接收到相关媒体数据要经过一些列的处理来实现对媒体数据的播放,具体过程如下图:

iOS 视频播放流程图.png

可以看出我们在获取流媒体协议需要经过一下处理方式:

解协议 ---> 解封装 ---> 音视频的解码 (实现音视频同步 & 播放)

流媒体数据解析

在获取流媒体数据后,要对其进行协议的解析来获取封装的媒体数据进行播放。我们常见的协议:HTTPRTMPMMS媒体协议

协议简介

<ul>
<li>HTTP:超文本传输协议(HyperText Transfer Protocol)是一个客户端(用户)和服务端(网站)请求和应答的标准。
参考地址:
</li>

<li>RTMP:实时信息传输协议(Real Time Message Protocol)基于TCP实现持久链接和低延迟通信。流分解成片,客户端和服务端可设置大小(音:64,视频:128)。
参考地址1:
参考地址2:</li>

<li>MMS:串流媒体传送协议(Microsoft Media Server)用来访问并流式接受 Windows Media 服务器中 .asf 文件协议。
参考地址:</li>

<li>HLS:流媒体网络传输协议(HTTP Live Streaming)把数据源分解为基于 HTTP 的片段,每次下载一些。下载数据之前需要一个包含数据的 m3u8 playlist文件来查找可用的媒体流。
参考地址:
</li>

<li>RTP:实时传输协议(Real-time Transport Protocol)被设置为多播协议,和 RTP 协议、RTP 控制协议一起使用。
参考地址:</li>

<li>RTCP:实时传输控制协议(Real-time Transport Protocol)搜集媒体链接统计信息,为 RTP 提供服务质量反馈。
参考地址:
</li>

<li>RTSP:实时流协议,用于建立和控制终端之间的媒体会话,和 RTP 、RTCP 结合的,媒体流传输。
参考地址:</li>
</ul>

媒体封装格式

媒体封装就是把视频数据和音频数据进行按照一定的格式进行封装。我们常见的封装格式:AVIMP4TSFLVMKVRMVB

媒体封装格式简介

下面是对媒体封装格式的整理和简介:

媒体封装格式整理.png

音视频编码格式

在音视频录制完成后为方便传输需要对其进行编码压缩处理,我们常见的音视频编码格式:

视频编码格式:H.264H.265(HEVC)MPEG4MPEG2VP9VP8VC-1

音频编码格式:AACAC-3MP3WMP

视音频编码格式

视音频编码格式.png

编码格式地址

下面是编码格式地址:

H.264 :

地址 链接
地址1 https://zh.wikipedia.org/wiki/H.264/MPEG-4_AVC
地址2 https://abson.github.io/2016/11/15/深入浅出理解视频编码H264结构/

H.265 :

地址 链接
地址1 www.4k123.com/thread-6369-1-1.html

AAC:

地址 链接
地址1 www.4k123.com/thread-6369-1-1.html

AC-3:

地址 链接
地址1 blog.csdn.net/leixiaohua1020/article/details/11822737

MP3:

地址 链接
地址1 https://zh.wikipedia.org/zh-hans/MP3

解码简介

在视频播放过程中我们需要对视频进行解码处理,常见的解码方式:硬解码和软解码。

解码方式简介

软解码&硬解码对比.png

编码资料地址

|框架名称 | 资料地址-1 | 资料地址-2
| ------------- |:-------------
|AVFoundation | http://yoferzhang.com/post/20160803AVFoundation01Introduction/ | http://www.superqq.com/blog/2015/08/24/avfoundation-gpuimage-find/|
| VideoToolBox | http://www.4k123.com/thread-6369-1-1.html |
|FFMpeg | blog.csdn.net/leixiaohua1020/article/category/1360795 | www.tuicool.com/articles/22A7na3 |

CPU & GPU 的参考:

框架名称 资料地址-1
CPU https://zh.wikipedia.org/wiki/中央处理器
GPU https://zh.wikipedia.org/zh/圖形處理器

AVFoundation 框架介绍

AVFoundation 可以用来播放和创建基于时间视听媒体的框架之一,提供基于时间的视听数据详细的 Objective-C上的接口。

AVFoundation 功能介绍

使用 AVFoundation 可以实现视频的播放、编辑、静态媒体的捕捉、输出和时间媒体的表现等功能,如果仅仅是播放电影的话可以使用 AVKit框架。

AVFoundation 接口介绍

iOS-AVFoundation-AVMutableComposition-AVAssetTrack.png iOS-AVFoundation-AVMutableComposition-AVMutableAudioMix.png iOS-AVFoundation-AVMutableComposition-AVMutableVideoComposition.png iOS-AVFoundation-AVMutableComposition-AVAssetExportSession.png

AVFoundation 类继承关系

公司分享 PPT 下载地址

上一篇下一篇

猜你喜欢

热点阅读