8221
- 收藏
- 点赞
- 分享
- 举报
由技入道:迅捷学习RTMP
本帖最后由 药导 于 2016-8-16 14:54 编辑
先把做好的思维导图发上来,具体的内容,晚上来完善(都是围绕思维导图来写的,有兴趣的可以先把思维导图下下来先看一下)。
思维导图是用mind manager做的,个人比较喜欢mind manager,有兴趣的也可以下下来用一下,我买的是mind manager 15,这里给大家提供一个破解版的。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
先来张整体思维导图,有说得不对的地方,还请大家多多指正。

在我学习 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,双击打开

点击 next

选择接受协议,然后 next

这里不需要输入注册码,安装后为开发版,有10个连接数限制。

继续 next

选择你想安装的位置(最好不要带中文)

这里可以选择安装 Apache,不装也没关系

next 就好了

这里设置你的管理账户的用户名和密码,设个自己喜欢的吧

这里设置 RTMP 的端口等,一般不改,如果你装了 Apache ,端口冲突的话,就把这里的 80 改为其他没用的吧

最后确认一下,OK的话就 Install 了,不出意外你会看到这个

点击 Finish 之后,会弹出一个页面

还是蛮酷的,这个页面可以在这里打开

第二个 Adobe Media Server Start Screen 打开刚才那个页面
第一个 Adobe Media Administrator Console 可以打开管理页面

输入你刚才设置的账号密码,就可以进行管理,不过一般也用不到
好了,到这里, RTMP 的服务器 FMS 就搭建好了,默认是直接打开了的,如果没打开,在开始->Adobe->Adobe Media Server 5 里面有相应的选项打开
附件:RTMP 迅捷开发.zip
附件:mind manger 15破解版下载地址.zip
附件:rtmp规范翻译1.0.pdf附件:ISO-14496-3(2009-09).pdf附件:ISO_IEC_14496-15_2010.pdf
先把做好的思维导图发上来,具体的内容,晚上来完善(都是围绕思维导图来写的,有兴趣的可以先把思维导图下下来先看一下)。
思维导图是用mind manager做的,个人比较喜欢mind manager,有兴趣的也可以下下来用一下,我买的是mind manager 15,这里给大家提供一个破解版的。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
先来张整体思维导图,有说得不对的地方,还请大家多多指正。

在我学习 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,双击打开

点击 next

选择接受协议,然后 next

这里不需要输入注册码,安装后为开发版,有10个连接数限制。

继续 next

选择你想安装的位置(最好不要带中文)

这里可以选择安装 Apache,不装也没关系

next 就好了

这里设置你的管理账户的用户名和密码,设个自己喜欢的吧

这里设置 RTMP 的端口等,一般不改,如果你装了 Apache ,端口冲突的话,就把这里的 80 改为其他没用的吧

最后确认一下,OK的话就 Install 了,不出意外你会看到这个

点击 Finish 之后,会弹出一个页面

还是蛮酷的,这个页面可以在这里打开

第二个 Adobe Media Server Start Screen 打开刚才那个页面
第一个 Adobe Media Administrator Console 可以打开管理页面

输入你刚才设置的账号密码,就可以进行管理,不过一般也用不到
好了,到这里, RTMP 的服务器 FMS 就搭建好了,默认是直接打开了的,如果没打开,在开始->Adobe->Adobe Media Server 5 里面有相应的选项打开
附件:RTMP 迅捷开发.zip
附件:mind manger 15破解版下载地址.zip
附件:rtmp规范翻译1.0.pdf附件:ISO-14496-3(2009-09).pdf附件:ISO_IEC_14496-15_2010.pdf

下载

下载

下载

下载

下载

下载

下载
我来回答
回答30个
时间排序
认可量排序
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
加载中···
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片
相关问答
-
2022-07-14 10:47:33
-
02014-12-03 17:50:31
-
2015-08-20 21:01:42
-
32015-11-24 10:18:58
-
2020-06-02 08:47:21
-
2020-06-13 12:20:25
-
2020-05-19 15:52:40
-
262014-10-17 13:24:22
-
32016-08-09 11:49:44
-
2017-07-22 16:55:47
-
2019-12-30 10:55:38
-
2016-04-20 09:59:39
-
2015-08-05 16:20:00
-
2018-12-07 14:02:01
-
2020-05-24 13:01:46
-
12019-04-23 11:50:43
-
02013-07-10 12:17:31
-
2018-12-07 11:17:50
-
2018-12-07 14:10:03
无更多相似问答 去提问

点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认