流媒体基础知识

iOS系统自带播放器
1、MPMoviePlayerController
2、MPMoviePlayerViewController
3、AVPlayer
4、AVFoundation
视频播放器原理
1、通过流媒体协议如RTSP+RTP,HTTP,MMS等下载的数据通过解协议获得封装格式的数据。
(封装格式的数据是指如:AVI,MP4,FLV等)
2、对封装格式的数据进行解封装,提取音频流,视频流,字幕流进行分离待下一步处理
3、分离后获得音视频文件编码文件(音视频文件过大,需要进行压缩传输,即编码)常见的编码如:H.264编码的视频码流和AAC编码的音频码流。压缩编码的视频数据输出成为非压缩的颜色数据,如RGB;压缩编码的音频数据输出成为非压缩的音频抽样数据,如PCM数据
4、视音频同步,音频,视频,字母同步播放。

流媒体传输协议
RSVP:资源预留协议
RTP:实时传输协议
RTCP:实时传输控制协议
MMS:微软流媒体服务协议
RTSP:实时流传输协议
MIME:多目因特网电子邮件扩展协议
RTMP:adobe实时消息协议族
RTMFP:Adobe实施消息流协议(P2P协议)

封装格式
也叫容器,主要作用是把视频码流和音频码流按照一定的格式存储在一个文件中。
常见格式
AVI:微软在90年代初创立的封装标准,是当时为对抗quicktime格式(mov)而推出的,只能支持固定CBR恒定比特率编码的声音文件。
FLV:针对于h.263家族的格式。
MKV:万能封装器,有良好的兼容和跨平台性、纠错性,可带 外挂字幕。
MOV:MOV是Quicktime封装。
MP4:主要应用于mpeg4的封装 。
RM/RMVB:Real Video,由RealNetworks开发的应用于rmvb和rm 。
TS/PS:PS封装只能在HDDVD原版。
WMV:微软推出的,作为市场竞争。

播放方式
视频直播,视频实时播放,不能进行快播,对网络延迟要求比较高
视频点播,可以播放以往的视频,进行快进或者后退等操作

FFmpeg
多媒体视频处理工具,功能非常强大包括视频的采集功能,视频格式转换,视频抓图,给视频加水印等
1、容器:就是文件格式,在FFmpeg中用来抽象文件格式的容器就是AVFormatContext
2、数据流:包含视频流,音频流,字幕流,在FFmpeg中指AVStream
3、解复用器或分流器:FFmpeg把要处理的多媒体文件看成多媒体数据流,先把多媒体数据流放入AVFormatContext,然后将数据流传入解复用器(在FFmpeg抽象为AVInputFormat),解复用器实际上就是把视频流,音频流,字幕流识别然后分开处理,把数据流分别送到视频,音频,字幕编解码器处理
4、数据包:分离的视频流在送往编解码器之前,要先放于缓存缓存中,同时添加一些附加信息,如时间戳。这个缓存空间就是数据包。由于数据流都是在时间轴上交错放置,所有的视频,音频,字幕都被分割成一段一段的数据,这些一段一段的数据从数据流中解析出来之后,就放到各自的数据包中(对于单纯的视频数据包来说,一个视频数据包可以存放一个视频帧,对于单纯的音频数据包来说,如果抽样率是固定的,一个音频数据包可以存放多个音频帧,如果是可变的,一个音频数据包只能存档一个音频帧)

三方库
Kxmovie


学习资料
流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)  http://blog.csdn.net/tttyd/article/details/12032357 
视频流传输协议RTP/RTCP/RTSP/HTTP的区别  http://blog.csdn.net/yangxt/article/details/7467457
视频编码标准汇总及比较  http://blog.csdn.net/leixiaohua1020/article/details/12031631
视音频编解码技术零基础学习方法  http://blog.csdn.net/leixiaohua1020/article/details/18893769
FFmpeg

HTTP Live Streaming直播(iOS直播)技术分析与实现: http://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html
HTT Live Streaming官方文档: https://developer.apple.com/streaming/ 
FFmpeg深入分析之零-基础   http://blog.chinaunix.net/uid-26611383-id-3976154.html
一篇大学论文,很长但是能让小白了解iOS流媒体都需要什么  http://www.doc88.com/p-7098896030363.html 
流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)  http://blog.csdn.net/tttyd/article/details/12032357 
视频流传输协议RTP/RTCP/RTSP/HTTP的区别  http://blog.csdn.net/yangxt/article/details/7467457
ffmpeg框架解读  http://blog.csdn.net/allen_young_yang/article/details/6576303 
流媒体博客   http://blog.csdn.net/leixiaohua1020/article/details/15811977 
http://blog.csdn.net/beitiandijun/article/details/8280448 FFmpeg的基本概念
视频编码标准汇总及比较  http://blog.csdn.net/leixiaohua1020/article/details/12031631
视音频编解码技术零基础学习方法  http://blog.csdn.net/leixiaohua1020/article/details/18893769


流媒体学习的基本步骤:

1.先学会使用系统的播放器进行视频播放
2.学会使用第三方Kxmovie
学会这两个,可以应付基本的视频开发
3.深入学习AVFoundation框架 我买的这本书 AV Foundation开发秘籍:实践掌握iOS & OS X 应用的视听处理技术 我还没看完
4.需要深入的话,需要多FFmpeg框架。当然需要先学习音视频开发的基础如RGB、YUV像素数据处理、PCM音频采样数据处理、H.264视频码流解析等等。


源文件

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容由流媒体协议等基本知识,视频媒体基本知识,流媒体服务器搭建实战,流媒体工具使用实战等内容组成。由本人“天地会珠海分舵”(http://blog.csdn.net/zhubaitian)耗时一个月整理而成,现分享给大家。 章节内容分布如下: 第1章Streaming 协议和服务器概览学习摘录 7 1.1 Protocol support 8 1.2 Media Container format support 12 第2章Streaming 协议学习摘录 15 2.1 MMS协议简介 15 2.2 RTP相关协议简介 15 2.2.1 RTP与RTCP协议简介 15 2.2.2 RTSP协议简介 16 2.2.3 流传输过程 17 2.3 RTMP vs RTMFP 18 2.3.1 RTMP协议简介 18 2.3.3 RTMFP 简介 19 2.3.4 RTMP VS RTMFP 20 2.4 MPEG-TS 20 2.4.1 MPEG2-TS与MPEG2-PS的区别 20 2.4.2 PES/ES/TS简介 20 2.5 Smooth Streaming 21 2.5 HLS简介 24 2.6 MPEG-DASH 26 2.6.1 简介 26 2.6.2 Dash播放器列表 28 2.6.3 MPD格式 30 2.6.5 MPD在线检查器 31 2.6.5 MPD 格式理解个人小结 31 2.6.6 PMD格式的多样性 32 2.6.7 MPD 支持的Profiles 44 2.6.8 DASH传输协议支持 44 2.7 HLS VS MPEG-DASH 45 2.8 Real Data Transport Protocol 45 2.9 webM 45 第3章 视频容器格式学习摘录 47 3.1 视频容器VS 视频编码 47 3.2 3GP容器 48 3.2 AVI容器(.avi) 49 3.3 WMV vs ASF 容器(.wmv/.asf) 49 3.3.1 ASF高级串流格式简介以及和WMA/WMV的区别 49 3.3.2 ASF和WMA/WMV的区别官方解析 50 3.4 QuickTime容器(.mov) 50 3.5 Ogg vs Ogm容器(.ogg) 51 3.5.1 Ogg容器格式 51 3.5.2 Ogm 51 3.5.3 Ogg vs Ogm 52 3.6 Matroska容器(.mkv|.mka|.mks) 52 3.7 MP4容器 53 3.7.1 简介 53 3.7.2 MP4格式详解 53 3.8 MPEGE TS容器 61 3.9 FLV容器 62 3.10 ABS – Adaptive Bitrate Streaming 自适应串流容器 62 3.11 码率 63 3.12 流媒体的3种格式 63 3.12.1 压缩媒体文件格式 63 3.12.2 流文件格式 64 3.12.3 流媒体发布格式 64 第4章 视频编码格式学习摘录 66 4.1视频编码格式简介 66 4.2主流视频编码格式比较 67 4.2.1 MPEG编码格式 67 4.2.2 DivX/XviD编码格式 68 4.2.3 H.264/X264编码格式 69 4.2.4 WMA-HD/VC-1编码格式 71 4.2.5 各主流编码格式比较 72 4.3 视频解码 73 第5章ffmpeg学习摘录 74 5.1 简介 74 5.2 功能 74 5.3 支持的格式和编码 75 5.4 支持的流媒体协议 76 5.5 ffmpeg视频解码架构示例简略 76 5.5.1 解复用(Demux) 77 5.5.2 解码 (Decode) 78 5.5.3 Ffmpeg中解码流程对应的API函数 78 第6章GStreamer学习摘录 80 6.1 GStreamer简介 80 6.2 GStreamer编写MP3播放器实例 80 6.2.1 初始化GStreamer 80 6.2.2 创建GStreamer管道元件 81 6.2.3 创建元件三元组之GStreamer数据源 81 6.2.4 创建元件三元组之解码器 (即GStreamer过滤器) 插件 81 6.2.5 创建元件三元组之GStreamer接收器 81 6.2.6 链接GStreamer元件三元组到管道 – 播放 82 6.2.7 启动GStreamer管道数据处理流程 82 6.2.8 MP3命令行播放器源代码完整实例 82 第7章 ffmpeg VS GStreamer比较学习摘录 85 7.1 Pipeline设计模式简介 85 7.2 ffmpeg vs GStreamer 86 7.2.1 网上解析翻译 86 7.2.1 FFmpeg和GStreamer异同小结 87 第8章 流媒体服务器搭建摘录 88 8.1 VLC 88 8.1.1 VLC编码和容器兼容性 88 8.1.1 VLC 配置VOD点播 88 8.1.2 VLC 配置组播服务器 90 8.2 Wowza Streaming Engine 91 8.2.1 简介及安装 91 8.2.2 MPEG-DASH 支持 92 8.2.3 如何使用VLC作为直播源 95 8.2.4 点播VOD配置 112 8.3 Nex Gen Media Server (NGMS) 114 8.3.1 Introduction 114 8.3.2 Feature List 115 8.3.3 Practice in Action 116 8.4 IIS Smooth Streaming(IIS Media Service) 117 8.4.1 Getting Started with IIS Smooth Streaming 117 8.4.2 Use VLC to play the Smooth Stream 128 8.4.3 创建Smooth Stream 文件 129 8.4.4 提供DASH服务时IIS的关键设置 129 8.4.5 Dash on IIS步骤 130 第9章 相关工具学习摘录 137 9.1 Bento4 MP4工具包 137 9.1.1 Introduction 137 9.1.2 所包含的工具简介 138 9.1.3 MPEG DASH Adaptive Streaming 139 9.1.4 Serving DASH Streams 147 9.2 MP4Box 149 9.2.1 简介 149 9.2.2 对DASH的支持命令帮助 150 9.2.3 MP4Box: fragmentation, segmentation, splitting and interleaving 153 9.2.4 把MP4转换成TS 155 9.2.5生成不同profile的MPD 155 9.2.6指定每个Representation的bandwidth 156 9.2.7生成多个period的MPD 156 9.2.8生成多个Representation的MPD 156 9.2.9 生成多个Segment的MPD 156 9.2.10 生成(Subsegment) SegmentBase拥有 indexRangeExact 为true的MPD 157 9.2.11 生成多个AdaptionSet的MPD 158 9.2.12 模拟live直播 158 第10章 流媒体服务器搭建指导 159 10.1 所需搭建服务器Matrix 159 第11章 附录 163 11.1 Wowza支持格式 163 11.2 ISO Base Media File Format (IBMFF) 163 11.3 DASH所支持Profile分类 164
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值