这时我此生第二次有录制视频的想法——因为这个视频真的很难被下载。
第一次是面对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.htmlDownloading http://web.mit.edu/newsoffice/2010/gesture-computing-0520.htmlUsing method 'brightcove' for http://c.brightcove.com/services/viewer/federated_f9/36804639001?isVid=1RTMPDump v2.2d(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPLConnecting ...INFO: Connected...Starting download at: 0.000 kBINFO: Metadata:INFO:   duration              54.86INFO:   lasttimestamp         54.86INFO:   datasize              1344999.00INFO:   metadatacreator       FlixEngineLinux_8.0.15.3 (www.on2.com)INFO:   canSeekToEnd          FALSEINFO:   videocodecid          4.00INFO:   width                 480.00INFO:   height                320.00INFO:   videodatarate         160.66INFO:   framerate             30.00INFO:   videosize             1125570.00INFO:   audiocodecid          2.00INFO:   audiodatarate         31.25INFO:   audiosize             219429.00MIT_-_motion-sensing.flv: 100% (1388.94 / 1388.94 KiB)Done. Saved 1422275 bytes to MIT_-_motion-sensing.flvdelectate@delectate:~$

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

转载于:https://www.cnblogs.com/niuniu502/archive/2010/12/24/1915424.html

[转载]下载rtmpe协议的视频文件相关推荐

  1. java读取视频_【转载】Java 后端读取视频文件获取视频流后 前端进行播放/下载...

    /** * 获取视频流 * @param response * @param videoId 视频存放信息索引 * @return * @author xWang * @Date 2020-05-20 ...

  2. python下载文件并改名_用 Python 给下载的 B 站视频文件批量改名

    有好几位网友私下里问我如何学习平面设计?我告诉他们:如果只想自学的话,可以先到"哔哩哔哩"网站(俗称 B 站)找视频教程看看.要是觉得哪个教程不错,还可以下载到电脑或手机上随时随地 ...

  3. Delphi/XE2 使用TIdHttp控件下载Https协议服务器文件[转]

    之前的一篇博文详细描述了使用TIdhttp控件下载http协议的文件,在我项目的使用过程中发现对于下载Https协议中的文件与Http协议的文件不同,毕竟Https在HTTP协议基础上增加了SSL协议 ...

  4. mediarecorder 录制的文件无法拖动进度条_如何下载网络ts视频文件

    所需工具:火狐浏览器(v66).IDM 1.打开目标视频网页,空白区域右键-查看元素,选中"网络"项: 2.拖动视频进度条至所需下载片段的起始位置,刷新网页,网络监视器中出现的第一 ...

  5. 关于m3u8格式的视频文件ts转mp4下载和key加密问题

    一,利用网站浏览器F12键,利用谷歌浏览器插件找到视频的.m3u8文件,并打开. 二,打开m3u8文件后,里面有很多.ts的链接,和key的链接. 三,保存为html文件,下载ts文件,代码如下:可加 ...

  6. Delphi/XE2 使用TIdHttp控件下载Https协议服务器文件

    之前的一篇博文详细描述了使用TIdhttp控件下载http协议的文件,在我项目的使用过程中发现对于下载Https协议中的文件与Http协议的文件不同,毕竟Https在HTTP协议基础上增加了SSL协议 ...

  7. 使用ffmpeg合并视频文件的三种方法

    ffmpeg合并视频的方法有三种.国内大多数仅介绍了其中之一.于是觉得有必要翻译一下.其实在ffmpeg的 FAQ文档中有比较详细的说明. 使用concat协议进行视频文件的合并 这种方式的适用场景是 ...

  8. 视频文件太大?使用FFmpeg来无损压缩它

    咱们平时如果经常拍视频的话,都会遇到一个困境:视频文件太大了,存储的时候需要占用很多的空间.如果直接使用视频压缩工具来压缩码率的话,又会担心损失了视频的画质,这该怎么办呢? 这个时候,我们就可以使用f ...

  9. Windows环境下视频文件转成RTSP视频流和RTMP流

    文章目录 一. 需要的工具 二.部署EasyDarwin服务器 三.ffmpeg命令行推rtsp流进行测试 四.采用ffmpeg代码方式推rtsp流到服务器 五.使用nginx搭建RTMP服务器 一. ...

  10. QT5.6 MSVC编译器 实现-海康摄像头,获取H.264裸码流并通过libmp4V2实现MP4写封装生成MP4视频文件

    前言 当前,在国内安防领域,海康摄像头一直是受各个解决方案比较青睐的摄像头选择.本项目主要应用海康摄像头对桥梁道路车辆运行情况进行监控.当桥梁称重系统检测到车辆异常信号后,触发摄像服务程序,采集摄像头 ...

最新文章

  1. MSE病毒库离线更新包
  2. 除非换行符在格式字符串中,否则为什么在调用后printf不会刷新?
  3. 完全背包:以重量分阶段
  4. fir.im Weekly - 给 Mac 应用开发者的教程
  5. 正则表达式入门之位置匹配
  6. “约见”面试官系列之常见面试题之第一百零六篇之css只在当前组件中起作用(建议收藏)
  7. 小程序云开发实战 - 口袋工具之“历史上的今天”
  8. linux那些事之follow_page
  9. python multiprocessing.Process 应用
  10. ERP知识普及连载(13)
  11. 微信小程序开发04-打造自己的UI库
  12. 微信小程序----评价系统中的评星
  13. Minimax算法——井字棋
  14. 黑马程序员最新Python教程——第一阶段(1)
  15. android半透明闪退,移动端常见面试题一:移动端兼容解决方案
  16. db2取数据库日期时间_DB2日期和时间函数汇总
  17. 微信吸粉秘籍之人气论坛吸粉方法
  18. 2019年有效的rtsp流媒体测试地址整理汇总
  19. 对搜索引擎排名不友好的五种网站-SEO
  20. Mac 查询是否支持VT(Intel的Vanderpool的虚拟技术)

热门文章

  1. 经典排序算法(二十二)--图书馆排序(Library Sort)
  2. Linux运行多个openssl,linux – 使用多选项解释rsa的openssl速度输出
  3. 关于oracle存储微信表情emoji问题 “[[%F0%9F%A4%AA]]“
  4. python输出到指定文件夹_python实现指定文件夹下的指定文件移动到指定位置
  5. 印第安纳大学计算机语言学,语言学
  6. oracle 12.1.0.1.0,oracle_linux安装oracle_12.1.0
  7. jack插头_防水连接器航空插头特点
  8. mysql 事务_详解mysql如何做事务
  9. Vue:echarts异步加载数据显示
  10. Vue:解决实现留言回复功能时,点击回复某一条所有回复面板都弹出