由技入道:迅捷学习RTMP
2 E币
成为会员,免费下载资料
文件大小:8.26 MB
上传者:药导
时间:2016-08-15 17:00:17
下载量:33
本帖最后由 药导 于 2016-8-16 14:54 编辑
先把做好的思维导图发上来,具体的内容,晚上来完善(都是围绕思维导图来写的,有兴趣的可以先把思维导图下下来先看一下)。
思维导图是用mind manager做的,个人比较喜欢mind manager,有兴趣的也可以下下来用一下,我买的是mind manager 15,这里给大家提供一个破解版的。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
先来张整体思维导图,有说得不对的地方,还请大家多多指正。
[attach]4423[/attach]
在我学习 RTMP 开发时,有幸找到雷霄骅博士的 [url=http://blog.csdn.net/leixiaohua1020/article/details/15814587]RTMP流媒体技术零基础学习方法[/url],不得不说,雷博对 libRtmp的研究是非常深入的,吃得很透。但雷博的这些文章,从我现在来看,很多是做 RTMP Client 开发没必要一上来就看的,而且他对 RTMP 具体数据打包封装的部分没有讲到。我写这篇《由技入道:迅捷学习RTMP》的目的,是为了给想要做 RTMP 开发的朋友一个快速上手开发 RTMP 一站式的教程。争取所有人在看完之后,都可以马上进行 RTMP Client 的开发。
(本文引用了很多其他网友的图片及文章,在本文最后都附有引用文章的连接,如有侵权,请联系我。)
基础要求:稍微有点音视频技术基础即可。
亮点:从实际应用出发,深入剖析 RTMP Client 开发中的重点、难点,避开枯燥的协议概念,迅速上手;
以下正文
///////////////////////////////////////////////////////////////////////////////////////////////////////
一、RTMP 简介
RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,可用于实现直播、点播应用,最初由 Macromedia 公司创建,后来归Adobe公司所有,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver等。
除 RTMP 外,httpflv 以及 HLS 等直播协议也被广泛使用,其中 httpflv 比较成熟,比较容易使用第三方的 CDN(Content Delivery Network :内容分发网络),而支持 RTMP 的 CDN 成本要比 http 高,因此现在很多的直播平台都是采用主线路cdn 提供的 httpflv + 次线路 RTMP 的模式(比如 Youtube);而 HLS 相对于 RTMP 及 httpflv 的优点是,它可以 html5 播放,适用于手机端看,所以目前大部分跨平台直播都选择 HLS 协议来做直播,但 HLS 延迟比较大,9秒以上(Twich在用)。
RTMP 协议的优势在于,它本身就是为直播而开发的,延迟低(3秒左右),架构比较简单,使用 Flash Player 作为播放器客户端,而 Flash Player 现在已经安装在了全世界将近 99% 的 PC 上,因此一般情况下收看RTMP流媒体系统的视音频是不需要安装插件的,用户只需要打开网页,就可以直接收看流媒体,十分方便,据不完全统计,国内目前直播量最多的就是 RTMP。
可以这样概括一下:凡是想实现“无插件直播”的流媒体系统,都会使用RTMP。
RTMP 采用典型的 C/S架构,服务器端软件有比较多的选择:
[table=50%]
[tr][td]名称[/td] [td]开发语言[/td][td]所属公司[/td][td]备注[/td][/tr]
[tr][td]FMS [/td] [td] [/td][td]Adobe [/td][td] [/td][/tr]
[tr][td]Red5 [/td] [td]java [/td][td]开源 [/td][td] [/td][/tr]
[tr][td]CRtmpServer [/td] [td]C++ [/td][td]开源 [/td][td]目前非常活跃 [/td][/tr]
[tr][td]Simple Rtmp Server[/td] [td] [/td][td]开源 [/td][td]国人开发的 [/td][/tr]
[tr][td]Wowza Media Server[/td] [td] [/td][td]Wowza [/td][td] [/td][/tr]
[/table]
客户端可以使用 FMLE(Flash Media Live Encoder )、OBS(Open Broadcaster Software)(内部还是使用的 libRtmp,编码使用的是 x264 和 faac)免费软件抓取 PC 是摄像头和麦克风的数据,不过毕竟它们应用范围有限,想要把它嵌入到自己的程序中,还是要自己来实现RTMP协议的推送,目前使用得最多的是一个开源项目 RtmpDump(libRtmp)。
注:RtmpDump 和 libRtmp 的关系,RtmpDump 只是 libRtmp 的一个使用 demo ,通过它可以抓取 rtmp 服务器的音视频流进行保存等,除此之外, libRtmp 还提供了 RtmpSrv (轻量级 Rtmp 服务器)等几个 demo。
二、FMS的安装及使用
因为我们的主要目标是学习 RTMP Client 的开发,所以在这里服务器端我们选择安装简单,可靠性比较高的 FMS(或者叫AMS,附件中提供了 64 位的 FMS 5 的安装包,你也可以去FMS官网下载其他版本的),下面是 FMS 的安装及使用:
1、在Windows上安装 FMS
首先,将下载下来的 FMS 5 安装包解压,得到 AdobeMediaServer_5_LS1_win64.exe,双击打开
[attach]4424[/attach]
点击 next
[attach]4425[/attach]
选择接受协议,然后 next
[attach]4426[/attach]
这里不需要输入注册码,安装后为开发版,有10个连接数限制。
[attach]4427[/attach]
继续 next
[attach]4428[/attach]
选择你想安装的位置(最好不要带中文)
[attach]4429[/attach]
这里可以选择安装 Apache,不装也没关系
[attach]4430[/attach]
next 就好了
[attach]4431[/attach]
这里设置你的管理账户的用户名和密码,设个自己喜欢的吧
[attach]4432[/attach]
这里设置 RTMP 的端口等,一般不改,如果你装了 Apache ,端口冲突的话,就把这里的 80 改为其他没用的吧
[attach]4433[/attach]
最后确认一下,OK的话就 Install 了,不出意外你会看到这个
[attach]4434[/attach]
点击 Finish 之后,会弹出一个页面
[attach]4435[/attach]
还是蛮酷的,这个页面可以在这里打开
[attach]4436[/attach]
第二个 Adobe Media Server Start Screen 打开刚才那个页面
第一个 Adobe Media Administrator Console 可以打开管理页面
[attach]4437[/attach]
输入你刚才设置的账号密码,就可以进行管理,不过一般也用不到
好了,到这里, RTMP 的服务器 FMS 就搭建好了,默认是直接打开了的,如果没打开,在开始->Adobe->Adobe Media Server 5 里面有相应的选项打开
[attach]4421[/attach]
[attach]4422[/attach]
[attach]4453[/attach][attach]4452[/attach][attach]4451[/attach]
先把做好的思维导图发上来,具体的内容,晚上来完善(都是围绕思维导图来写的,有兴趣的可以先把思维导图下下来先看一下)。
思维导图是用mind manager做的,个人比较喜欢mind manager,有兴趣的也可以下下来用一下,我买的是mind manager 15,这里给大家提供一个破解版的。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
先来张整体思维导图,有说得不对的地方,还请大家多多指正。
[attach]4423[/attach]
在我学习 RTMP 开发时,有幸找到雷霄骅博士的 [url=http://blog.csdn.net/leixiaohua1020/article/details/15814587]RTMP流媒体技术零基础学习方法[/url],不得不说,雷博对 libRtmp的研究是非常深入的,吃得很透。但雷博的这些文章,从我现在来看,很多是做 RTMP Client 开发没必要一上来就看的,而且他对 RTMP 具体数据打包封装的部分没有讲到。我写这篇《由技入道:迅捷学习RTMP》的目的,是为了给想要做 RTMP 开发的朋友一个快速上手开发 RTMP 一站式的教程。争取所有人在看完之后,都可以马上进行 RTMP Client 的开发。
(本文引用了很多其他网友的图片及文章,在本文最后都附有引用文章的连接,如有侵权,请联系我。)
基础要求:稍微有点音视频技术基础即可。
亮点:从实际应用出发,深入剖析 RTMP Client 开发中的重点、难点,避开枯燥的协议概念,迅速上手;
以下正文
///////////////////////////////////////////////////////////////////////////////////////////////////////
一、RTMP 简介
RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,可用于实现直播、点播应用,最初由 Macromedia 公司创建,后来归Adobe公司所有,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver等。
除 RTMP 外,httpflv 以及 HLS 等直播协议也被广泛使用,其中 httpflv 比较成熟,比较容易使用第三方的 CDN(Content Delivery Network :内容分发网络),而支持 RTMP 的 CDN 成本要比 http 高,因此现在很多的直播平台都是采用主线路cdn 提供的 httpflv + 次线路 RTMP 的模式(比如 Youtube);而 HLS 相对于 RTMP 及 httpflv 的优点是,它可以 html5 播放,适用于手机端看,所以目前大部分跨平台直播都选择 HLS 协议来做直播,但 HLS 延迟比较大,9秒以上(Twich在用)。
RTMP 协议的优势在于,它本身就是为直播而开发的,延迟低(3秒左右),架构比较简单,使用 Flash Player 作为播放器客户端,而 Flash Player 现在已经安装在了全世界将近 99% 的 PC 上,因此一般情况下收看RTMP流媒体系统的视音频是不需要安装插件的,用户只需要打开网页,就可以直接收看流媒体,十分方便,据不完全统计,国内目前直播量最多的就是 RTMP。
可以这样概括一下:凡是想实现“无插件直播”的流媒体系统,都会使用RTMP。
RTMP 采用典型的 C/S架构,服务器端软件有比较多的选择:
[table=50%]
[tr][td]名称[/td] [td]开发语言[/td][td]所属公司[/td][td]备注[/td][/tr]
[tr][td]FMS [/td] [td] [/td][td]Adobe [/td][td] [/td][/tr]
[tr][td]Red5 [/td] [td]java [/td][td]开源 [/td][td] [/td][/tr]
[tr][td]CRtmpServer [/td] [td]C++ [/td][td]开源 [/td][td]目前非常活跃 [/td][/tr]
[tr][td]Simple Rtmp Server[/td] [td] [/td][td]开源 [/td][td]国人开发的 [/td][/tr]
[tr][td]Wowza Media Server[/td] [td] [/td][td]Wowza [/td][td] [/td][/tr]
[/table]
客户端可以使用 FMLE(Flash Media Live Encoder )、OBS(Open Broadcaster Software)(内部还是使用的 libRtmp,编码使用的是 x264 和 faac)免费软件抓取 PC 是摄像头和麦克风的数据,不过毕竟它们应用范围有限,想要把它嵌入到自己的程序中,还是要自己来实现RTMP协议的推送,目前使用得最多的是一个开源项目 RtmpDump(libRtmp)。
注:RtmpDump 和 libRtmp 的关系,RtmpDump 只是 libRtmp 的一个使用 demo ,通过它可以抓取 rtmp 服务器的音视频流进行保存等,除此之外, libRtmp 还提供了 RtmpSrv (轻量级 Rtmp 服务器)等几个 demo。
二、FMS的安装及使用
因为我们的主要目标是学习 RTMP Client 的开发,所以在这里服务器端我们选择安装简单,可靠性比较高的 FMS(或者叫AMS,附件中提供了 64 位的 FMS 5 的安装包,你也可以去FMS官网下载其他版本的),下面是 FMS 的安装及使用:
1、在Windows上安装 FMS
首先,将下载下来的 FMS 5 安装包解压,得到 AdobeMediaServer_5_LS1_win64.exe,双击打开
[attach]4424[/attach]
点击 next
[attach]4425[/attach]
选择接受协议,然后 next
[attach]4426[/attach]
这里不需要输入注册码,安装后为开发版,有10个连接数限制。
[attach]4427[/attach]
继续 next
[attach]4428[/attach]
选择你想安装的位置(最好不要带中文)
[attach]4429[/attach]
这里可以选择安装 Apache,不装也没关系
[attach]4430[/attach]
next 就好了
[attach]4431[/attach]
这里设置你的管理账户的用户名和密码,设个自己喜欢的吧
[attach]4432[/attach]
这里设置 RTMP 的端口等,一般不改,如果你装了 Apache ,端口冲突的话,就把这里的 80 改为其他没用的吧
[attach]4433[/attach]
最后确认一下,OK的话就 Install 了,不出意外你会看到这个
[attach]4434[/attach]
点击 Finish 之后,会弹出一个页面
[attach]4435[/attach]
还是蛮酷的,这个页面可以在这里打开
[attach]4436[/attach]
第二个 Adobe Media Server Start Screen 打开刚才那个页面
第一个 Adobe Media Administrator Console 可以打开管理页面
[attach]4437[/attach]
输入你刚才设置的账号密码,就可以进行管理,不过一般也用不到
好了,到这里, RTMP 的服务器 FMS 就搭建好了,默认是直接打开了的,如果没打开,在开始->Adobe->Adobe Media Server 5 里面有相应的选项打开
[attach]4421[/attach]
[attach]4422[/attach]
[attach]4453[/attach][attach]4452[/attach][attach]4451[/attach]
展开》
折叠》