流媒体基础

第一点:一个视频播放流程?
    通常看到视频格式:mp4、mov、flv、wmv等,称之为:封装格式
    第二点:视频播放器
    两种播放器
     第一种:可视化界面播放器(直接用户直观操作->简单易懂)腾讯视频、爱奇艺视频
     第二种:非可视化界面播放器->命令操作播放器->用户看不懂,使用起来非常麻烦
            FFmpeg-ffplay(命令)播放器(内置播放器)  VLC播放器 mplayer播放器
    第三点:播放器信息查看工具
        整个视频信息:MediaInfo工具-帮助我们查看视频完整信息
        二进制查看信息:直接查看视频二进制数据(0101010011)-UItraEdit
    视频单项信息
             封装格式信息工具->Elecard Format Analyzer
             视频编码信息工具->Elecard Stream Eye
             视频像素信息工具->YUVPlayer
             音频采样数据工具->Adobe Audition

    第四点:音视频-封装格式
        1、封装格式:mp4、mov、flv、wmv等
        2、封装格式作用?
            视频流+音频流按照格式进行存储在一个文件中
        3、MPEG2-TS格式?
            视频压缩数据格式,MPEG2-TS
            特定:数据排版,不包含头文件,数据大小固定(188byte)的TS-Packet
        4、FLV格式?
            优势:由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使得导出的SWF文件文件体积庞大,不能在网络上很好的使用等问题
            文件结构:FLV是一个二进制文件,由头文件(FLV header)和很多tag组成。tag又可以分成三类:audio、video、script,分别代表音频流、视频流、脚本流(关键字或者文件信息之类)
            FLV文件=FLV头文件+tag1 + tag内容1 + tag2 + tag内容2 + .... tagN + tag内容N
             FLV头文件:(9字节)
             1-3: 前3个字节是文件格式标识(FLV 0x46 0x4C 0x56).
             4-4: 第4个字节是版本(0x01)
             5-5: 第5个字节的前5个bit是保留的必须是0.
             6-9: 第6-9的四个字节还是保留的.其数据为 00000009 .
             整个文件头的长度,一般是9(3+1+1+4)

    第五点:视频编码数据了解
        1、视频编码作用?
            将视频像素数据(YUV,RGB)进行压缩成为视频码流,从而降低视频数据量。(减小内存占用)
        2、视频编码格式
        3、H.264视频压缩数据格式
            非常复杂算法-压缩-占用内存少-(如:帧间预测、帧内预测) -提高压缩性能
    第六点:音频编码数据
        1、音频编码作用?
            将音频采样数据(PCM格式)进行压缩成为音频码流,从而降低音频数据量。(减小内存暂用)
        2、音频编码格式?
            AAC、MP3等等
         3、AAC 格式
         AAC,全称Advanced Audio Coding,是一种专为声音数据设计的文件压缩格式。与MP3不同,它采用了全新的算法进行编码,更加高效,具有更高的“性价比”。利用AAC格式,可使人感觉声音质量没有明显降低的前提下,更加小巧。苹果ipod、诺基亚手机支持AAC格式的音频文件。
         优点:相对于mp3,AAC格式的音质更佳,文件更小。
         不足:AAC属于有损压缩的格式,与时下流行的APE、FLAC等无损格式相比音质存在“本质上”的差距。加之,传输速度更快的USB3.0和16G以上大容量MP3正在加速普及,也使得AAC头上“小巧”的光环不复存在。
         ①提升的压缩率:可以以更小的文件大小获得更高的音质;
         ②支持多声道:可提供最多48个全音域声道;
         ③更高的解析度:最高支持96KHz的采样频率;
         ④提升的解码效率:解码播放所占的资源更少;
    第七点:视频像素数据?
        1、作用?
            保存了屏幕上面每一个像素点的值
        2、视频像素数据格式种类?
            常见格式:RGB24、RGB32、YUV420P、YUV422P、YUV444P等,一般常见的:YUV420P
        3、视频像素数据文件大小计算?(1小时时长)
            体积:3600 * 25 * 1920 * 1080 * 3 = 559GB(非常大)
            假设:帧率25HZ、采样精度8bit,3个字节
        4、YUV播放器
            人类对色度不敏感,对亮度敏感
            Y表示亮度,UV表示:色度
    第八点:音频采样数据格式
        1、作用:保存了音频中的每一个采样点值
        2、音频采样数据文件大小计算?
            例如:1分钟PCM格式歌曲
            体积:60 *44100 * 2 * 2 = 11M
            分析:60表示时间,44100表示采样率(一般情况下,都是这个采样率,人的耳朵能够分辨的声音),2表示声道数量,2表示采样精度(16位) = 2个字节
        3、音频采样数据查看工具
        4、PCM格式-存储顺序
    第九点:FFmpeg应用
        1、FFmpeg.exe (视频压缩、转码来完成)
            作用:用于对视频进行转码
            将mp4-mov ,mov-mp4,wmv-mp4等
            命令格式:ffmpeg -i{指定输入文件路径} -b:v {输出视频码率} {输出文件路径}
        2、ffplay.exe
             作用:播放视频
             格式:ffplay {路径}
内容由流媒体协议等基本知识,视频媒体基本知识,流媒体服务器搭建实战,流媒体工具使用实战等内容组成。由本人“天地会珠海分舵”(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、付费专栏及课程。

余额充值