`
a_10jqka_2010
  • 浏览: 35044 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

我看RTMPDump

阅读更多
RTMPDump是一个匈牙利人的作品。他在Adobe未公开RTMP协议的条件下,写出了针对RTMP协议的客户端程序,实在了得。他和Adobe的故事,大家也看在网上看看。

时至今日,RTMP协议草案已经公布,RTMPDump源码也被请出了主流网站。那还有什么可以谈的呢?我想将自己在RTMP客户端的一些开发经历,对照着RTMPDump,说说自己的感受。RTMP的一些特点,可以参看我的其他博文。

应用RTMP协议的服务器较好能较好的保护视频,不被用户轻易的下载到本地。但是万事万物都有突破口,RTMP协议是为传输视频文件而服务的,这些视频站点都有选用FLV格式的视频文件,FLV文件格式是对外公开的。翻阅RTMPDump的源码,就能看到这个特点。但是过程远远没有说的这么简单。我想说一细节,是在Adobe已经公开了RTMP草案的前提下,我来编写RTMP客户端程序。

当时我参阅了RTMP草案中提到的各个步骤,依次执行后,视频流开始传输,可是传送了一段时间后,服务器不再发送数据,但是整个TCP连接没有中断。让我很苦恼的是,明明严格按照RTMP草案中提到的各个步骤执行,最终没有下载完成。唯一能解释的,RTMP草案中提到的步骤,不是应用RTMP服务器FMS执行效果的全部。

大家如果有兴趣,可以看看Adobe公开的RTMP协议草案,在谈到createStream成功后,执行play命令就可以源源不断的接收视频流。而实际上,应用RTMP协议的服务器在发送完一段数据后,会等待客户端的Acknowledgement响应,没有此响应,服务器就一直等着,不再传送新的数据。

这还是有一个相对完全的草案进行开发,都会引出这些事情来。更何况RTMPDump当时连这个都没有。

凡是学习,总要能有所提高才好。假如,有谁直接使用RTMPDump,会发现有诸多不便。例如,RTMPDump要求用户提供app和tcUrl。但要知道有些站点,处于保护的目的,会动态改变这两项值,致使RTMPDump下载不成功。据我所知,www.cbs.com就采用了相应的技术进行保护。国内的cctv却没有采用动态保护机制。

这就是我看RTMPDump,所想说的。

最后,有一点忘记了。本文说的RTMP客户端程序,是指不引用任何Adobe提供的code源码,STL、库等已有资源。完全以RTMP的协议为开发标准,自行编程开发。
2
0
分享到:
评论
5 楼 a_10jqka_2010 2012-09-18  
CNprober 写道
你说,“时至今日,RTMP协议草案已经公布,RTMPDump源码也被请出了主流网站。那还有什么可以谈的呢?”但是我在网上找rtmp的C/C++相关库的时候却只找到了这一个呀?不知道你还知道其他的可以用的C/C++库吗?谢谢


我相信以 C/C++ 写的 RTMP 客户端肯定是有的。因为我陆续收到过,来自高校、公司等技术人员的邮件,都提到他们在做类似的工作。

至于你提到在网上找不到,可能是大家不想自己的成果被人无偿使用吧!我多说一句,这和“开源思想”看似矛盾,实质是统一的。

“开源”是着重在主流大型软件,让更多的人能参与进来,维护整个业态的多样性; RTMP 客户端拥有者不想将对 Adobe 的私有协议的研究成果,以源码形式和大家分享,也是为了自身的应用得以延续,也是为了多存活一家业内企业!
4 楼 CNprober 2012-08-31  
你说,“时至今日,RTMP协议草案已经公布,RTMPDump源码也被请出了主流网站。那还有什么可以谈的呢?”但是我在网上找rtmp的C/C++相关库的时候却只找到了这一个呀?不知道你还知道其他的可以用的C/C++库吗?谢谢
3 楼 a_10jqka_2010 2012-03-01  
在我看来,自行编写 rtmp 客户端,最恼火的地方是:很难找到基于 RTMP 协议的服务器。

最气人的的是,WWW.CBS.COM 倒是用 RTMP 协议部署的服务器,但是他们对“亚洲太平洋”的区域,有节目限制。若你们留意 cookie,就会发现这一情况!
2 楼 fpeter 2012-02-20  
关于rtmpdump出现错误:

Streaming on rtmp://0.0.0.0:1935
WARNING: Trying different position for client digest!
ERROR: Handshake failed
Closing connection... done!

WARNING: Trying different position for client digest!

rtmpdump -r "rtmp://localhost:1935/vod" -a "vod" -f "LNX 10,3,183,11" -y "mp4:sample2_1000kbps.f4v" -o mp4_sample2_1000kbps.flv

RTMPDump v2.3
(c) 2012 fanxin; license: GPL
Closing connection... done!

Connecting ...
INFO: Connected...
Duplicate request, skipping.
Closing connection... done!

Caught signal: 13, cleaning up, just a second...
ERROR: WriteN, RTMP send error 32 (42 bytes)
ERROR: RTMP_ReadPacket, failed to read RTMP packet header
1 楼 yuenkin 2011-12-29  
兄弟,请问你是怎么研究rtmp的,有什么好的抓包工具没,或者你的个人总结,发我一份,谢谢,我看官方文档根本就没办法写程序。yang595590034@163.com

相关推荐

    rtmpdump-2.3-android.zip_ rtmpdump andro_android_android librtmp

    rtmpdump是一款开源的命令行工具,主要用于抓取和回放RTMP(Real Time Messaging Protocol)流媒体数据。这个工具在IT行业中对于网络流媒体处理和分析有着重要的作用。RTMP是一种广泛应用于在线视频流传输的协议,由...

    rtmpdump 编译成功 所有支持的库

    **rtmpdump与librtmp库** rtmpdump是一款开源工具,主要用于从RTMP(Real Time Messaging Protocol)服务器上下载和播放流媒体内容。它基于librtmp库,这是一个小型但功能强大的库,用于与RTMP服务器进行通信。...

    rtmpdump.zip

    rtmpdump是一个开源工具,主要用于从RTMP(Real-Time Messaging Protocol)流中捕获和下载媒体内容,如视频和音频。这个压缩包“rtmpdump.zip”包含了在Visual Studio环境中编译rtmpdump项目所需的所有关键文件,...

    rtmpdump-2.4资源

    **rtmpdump-2.4资源详解** rtmpdump是一款开源的命令行工具,主要用于从RTMP(Real-Time Messaging Protocol)服务器上下载流媒体内容,如直播视频或音频。这个资源包是rtmpdump的2.4版本,适用于Linux操作系统,...

    rtmpdump-2.2e.tar.gz_dump_rtmp_rtmp server_rtmpdump

    rtmpdump是一款强大的工具,主要用于从RTMP服务器流式传输或导出数据。这个压缩包“rtmpdump-2.2e.tar.gz”包含了rtmpdump的源代码,允许用户深入理解其工作原理并可能进行自定义修改。下面将详细讨论RTMP协议、rtmp...

    rtmpdump for vs2008

    《rtmpdump在Visual Studio 2008下的移植与应用》 rtmpdump是一款开源的命令行工具,主要用于从RTMP(Real Time Messaging Protocol)流媒体服务器上下载或播放音视频内容。它由Hans-Christoph Steiner和Ingo von ...

    rtmpdump源代码.rar

    rtmpdump是一款强大的开源工具,主要用于从RTMP(Real-Time Messaging Protocol)服务器上抓取流媒体内容,如视频和音频。这个压缩包“rtmpdump源代码.rar”包含rtmpdump的源代码,使得开发者可以深入理解其工作原理...

    rtmpdump.2.4.tar.gz

    rtmpdump.2.4.tar.gz rtmpdump 是一个可以通过RTMP协议上传和下载流媒体的工具.

    rtmpdump 真实的

    rtmpdump是一款强大的工具,主要用于从RTMP(Real-Time Messaging Protocol)流中抓取和下载媒体内容,如视频和音频。RTMP是一种广泛应用于在线流媒体服务的协议,例如Adobe Flash Media Server。在这个主题中,我们...

    rtmpdump-2.4.zip_rtmpdump_rtmpdump 2.4

    rtmpdump是一款强大的开源工具,主要用于从RTMP(Real-Time Messaging Protocol)服务器上抓取流媒体内容。RTMP是一种广泛用于在线视频传输的协议,由Adobe Systems开发。rtmpdump的2.4版本是我们讨论的重点。 这个...

    rtmpdump-2.3

    首先,让我们来看看rtmpdump的核心功能。它主要支持以下操作: 1. **抓取RTMP流**:rtmpdump可以捕获RTMP服务器上的直播或点播内容,将其保存为本地文件,便于离线观看或进一步处理。 2. **记录RTMP流**:通过实时...

    rtmpdump-v1.6.tar.gz_rtmp_rtmpdump

    《rtmpdump:深入解析RTMP流媒体抓取工具》 RTMP(Real Time Messaging Protocol)是Adobe Systems开发的一种协议,主要用于在互联网上传输实时音视频数据,广泛应用于在线直播、视频会议等领域。rtmpdump是一款...

    rtmpdump实现rtmp视频拉流存储的demo程序

    rtmpdump是一款强大的开源工具,主要用于从RTMP服务器上接收和录制流媒体内容。这个“rtmpdump实现rtmp视频拉流存储的demo程序”旨在展示如何利用rtmpdump来捕获并保存RTMP视频流,这对于直播内容的录制、回放或者...

    rtmpdump.rar_it_rtmpdump

    《rtmpdump:深入解析RTMP协议与C语言实现》 RTMP(Real Time Messaging Protocol)是Adobe Systems公司开发的一种实时传输协议,主要用于在互联网上传输音视频数据。rtmpdump是一个开源工具,用于交互式地捕获、...

    基于海思3516v300编译的rtmpdump库文件以及源码

    本主题聚焦于“基于海思3516v300编译的rtmpdump库文件以及源码”,这是一个专为海思3516v300处理器优化的工具,用于处理RTMP(Real-Time Messaging Protocol)流媒体数据。RTMP是Adobe Systems开发的协议,广泛应用...

    rtmpS.rar_rtmp_rtmpdump_rtmps_rtmp客户端_读取RTMP

    在本项目"rtmpS.rar"中,我们可以看到它涉及到RTMP、RTMPS、rtmpdump以及RTMP客户端的相关内容。下面将详细解释这些概念及其在流媒体传输中的应用。 1. RTMP:由Adobe Systems开发,主要用于实时传输音频、视频和...

    vc6.0编译的rtmpdump.exe

    **VC6.0编译RTMPDump.exe** RTMPDump是一款强大的开源工具,主要用于分析和交互RTMP(Real-Time Messaging Protocol)流媒体协议。在IT领域,尤其是网络视频流处理和直播服务中,RTMP协议扮演着至关重要的角色,...

    rtmpdump2.3 librtmp 静态库、动态库、源代码

    rtmpdump2.3与librtmp是网络流媒体处理工具和库,主要用来与Adobe的Real Time Messaging Protocol (RTMP)服务器进行交互。在本文中,我们将深入探讨这两个组件,以及如何使用它们来实现多媒体数据的抓取、播放和分析...

    rtmpdump 2.3

    《rtmpdump 2.3:深入理解与应用》 rtmpdump 2.3 是一个开源工具,专为从RTMP(Real Time Messaging Protocol)流媒体服务器上抓取和下载点播视频文件而设计。它由Alexander Zerbe开发,广泛应用于网络视频内容的...

    基于rtmpdump的rtmp包转解码打包ts(h264+aac)

    在本文中,我们将深入探讨如何基于rtmpdump将RTMP数据包转换并解码为H264视频和AAC音频,然后将这些流打包成TS(Transport Stream)格式。RTMP(Real-Time Messaging Protocol)是一种协议,常用于实时传输音频、...

Global site tag (gtag.js) - Google Analytics