[转载]下载rtmpe协议的视频文件

这时我此生第二次有录制视频的想法——因为这个视频真的很难被下载。
第一次是面对acfun变态的超码率+摧毁文件头,播放器根本不能播放,最终手工修复文件头解决(教程有时间再写吧,资料目前还不足);第二次,也就是这次,真的很郁闷。
  • 什么是rtmpe协议:

实时消息 协议(RTMP)是Adobe公司开发的专利协议,是为 了flash播放器和服务器之间通过因特网交换流化的音频,视频及其他数据的交换。

使用rtmpe协议通信,所以的数据均不在本地存储。

这也就是意味着,视频没有缓冲,只能在线播放。而播放完成后,不论是/tmp还是cache,甚至是内存中你都不能找到任何相关文件。如果replay,只能再次获取。

因为这个特性,受到很多视频网站青睐(版权问题得以解决),例如brightcove.comhulu,但是访问者将不能再像以前那样下载到视频文件。如何解决这个问题呢?

  • 解决方案

(以mit的这个项目视频为例 <-最初也就是它让我头痛欲裂的)

必须工具:rtmpdump

arch:

yaourt -S rtmpdump

ubuntu等其他发行版请参照这个教程进行编译安装。
windows点此选择并下载二进制文件。

  • 嗅探+rtmpdump法:

打开大杀器wireshark,选择当前网卡(如果已经开启vpn,请选择vpn的虚拟网卡。监听物理网卡将无法获得有效数据)

协议rtmp

然后打开视频网页,加载视频。当视频开始播放后,停止嗅探,对数据进行分析(需要耐心,恒心和信心~)。

不愧是大杀器(如上图)。

然后很简单了,使用rtmpdump进行下载。

rtmpdump -r  rtmpe://{URL}   -o  {FILENAME}.flv
  • 使用get_flash_videos下载:

get_flash_videos是一款由perl写的跨平台flv下载工具,可以用来下载youtubevimeobrightcove(同样需要安装rtmpdump)等网站的视频。强大而易用。(项目主页

安装比较困难(的确非常困难),因为一些依赖难以搞定。

arch为例:

yaourt -S get_flash_vides

但是此方法安装好的文件不能运行!(28-05-2010),所以您需要使用如下方法进行安装:(官方-安装手册

  1. yaourt -S get_flash_videos

    (是的,您需要使用这个命令以安装相关依赖)

  2.  sudo wget http://get-flash-videos.googlecode.com/files/get_flash_videos-1.21 -O /usr/local/bin/get_flash_videos

    //下载最新版程序并覆盖已安装程序

  3. sudo chmod  a+x /usr/local/bin/get_flash_videos

    //赋予执行权限

    debian请安装 libwww-mechanize-perl libxml-simple-perl;您亦可选择combined version此版本可能无需下载Data::AMF::Packet

  4. 设置cpan
     sudo cpan

    此步骤是对cpan进行设置,基本上一路enter即可,最后需要设置源列表,您可以在这里找到源。

  5. 安装安装 Data::AMF::Packet
    cpan -i Data::AMF::Packet

    (此步骤可能需要对编译进行一些设置,基本上一路yes即可。安装编译过程可能需要占用很多cpu资源,请注意)

至此,get_flash_videos安装完毕。例如,您可以通过如下方式使用它进行下载:

get_flash_videos http://web.mit.edu/newsoffice/2010/gesture-computing-0520.html

执行结果如下:

delectate@delectate:~$ get_flash_videos  http://web.mit.edu/newsoffice/2010/gesture-computing-0520.html
Downloading http://web.mit.edu/newsoffice/2010/gesture-computing-0520.html
Using method 'brightcove' for http://c.brightcove.com/services/viewer/federated_f9/36804639001?isVid=1
RTMPDump v2.2d
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
Connecting ...
INFO: Connected...
Starting download at: 0.000 kB
INFO: Metadata:
INFO:   duration              54.86
INFO:   lasttimestamp         54.86
INFO:   datasize              1344999.00
INFO:   metadatacreator       FlixEngineLinux_8.0.15.3 (www.on2.com)
INFO:   canSeekToEnd          FALSE
INFO:   videocodecid          4.00
INFO:   width                 480.00
INFO:   height                320.00
INFO:   videodatarate         160.66
INFO:   framerate             30.00
INFO:   videosize             1125570.00
INFO:   audiocodecid          2.00
INFO:   audiodatarate         31.25
INFO:   audiosize             219429.00
MIT_-_motion-sensing.flv: 100% (1388.94 / 1388.94 KiB)
Done. Saved 1422275 bytes to MIT_-_motion-sensing.flv
delectate@delectate:~$

可以看到,它完美的解析了网页的嵌入式播放器并获得rtmp源,然后调用rtmpdump进行下载。

posted on 2010-12-24 00:41  LT  阅读(1193)  评论(1编辑  收藏  举报

导航

直角体Web动力