[转载]下载rtmpe协议的视频文件
第一次是面对acfun变态的超码率+摧毁文件头,播放器根本不能播放,最终手工修复文件头解决(教程有时间再写吧,资料目前还不足);第二次,也就是这次,真的很郁闷。
什么是rtmpe协议:
实时消息 协议(RTMP)是Adobe公司开发的专利协议,是为 了flash播放器和服务器之间通过因特网交换流化的音频,视频及其他数据的交换。
使用rtmpe协议通信,所以的数据均不在本地存储。
这也就是意味着,视频没有缓冲,只能在线播放。而播放完成后,不论是/tmp还是cache,甚至是内存中你都不能找到任何相关文件。如果replay,只能再次获取。
因为这个特性,受到很多视频网站青睐(版权问题得以解决),例如brightcove.com,hulu,但是访问者将不能再像以前那样下载到视频文件。如何解决这个问题呢?
解决方案
(以mit的这个项目视频为例 <-最初也就是它让我头痛欲裂的)
必须工具:rtmpdump
arch:
yaourt -S rtmpdumpubuntu等其他发行版请参照这个教程进行编译安装。
windows请点此选择并下载二进制文件。
嗅探+rtmpdump法:
打开大杀器wireshark,选择当前网卡(如果已经开启vpn,请选择vpn的虚拟网卡。监听物理网卡将无法获得有效数据)
协议rtmp
然后打开视频网页,加载视频。当视频开始播放后,停止嗅探,对数据进行分析(需要耐心,恒心和信心~)。
不愧是大杀器(如上图)。
然后很简单了,使用rtmpdump进行下载。
rtmpdump -r rtmpe://{URL} -o {FILENAME}.flv
使用get_flash_videos下载:
get_flash_videos是一款由perl写的跨平台flv下载工具,可以用来下载youtube,vimeo,brightcove(同样需要安装rtmpdump)等网站的视频。强大而易用。(项目主页)
安装比较困难(的确非常困难),因为一些依赖难以搞定。
以arch为例:
yaourt -S get_flash_vides
但是此方法安装好的文件不能运行!(28-05-2010),所以您需要使用如下方法进行安装:(官方-安装手册)
yaourt -S get_flash_videos
(是的,您需要使用这个命令以安装相关依赖)
sudo wget http://get-flash-videos.googlecode.com/files/get_flash_videos-1.21 -O /usr/local/bin/get_flash_videos
//下载最新版程序并覆盖已安装程序
sudo chmod a+x /usr/local/bin/get_flash_videos
//赋予执行权限
(debian请安装 libwww-mechanize-perl libxml-simple-perl;您亦可选择combined version,此版本可能无需下载Data::AMF::Packet)
- 设置cpan
sudo cpan
此步骤是对cpan进行设置,基本上一路enter即可,最后需要设置源列表,您可以在这里找到源。
- 安装安装 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协议的视频文件相关推荐
- java读取视频_【转载】Java 后端读取视频文件获取视频流后 前端进行播放/下载...
/** * 获取视频流 * @param response * @param videoId 视频存放信息索引 * @return * @author xWang * @Date 2020-05-20 ...
- python下载文件并改名_用 Python 给下载的 B 站视频文件批量改名
有好几位网友私下里问我如何学习平面设计?我告诉他们:如果只想自学的话,可以先到"哔哩哔哩"网站(俗称 B 站)找视频教程看看.要是觉得哪个教程不错,还可以下载到电脑或手机上随时随地 ...
- Delphi/XE2 使用TIdHttp控件下载Https协议服务器文件[转]
之前的一篇博文详细描述了使用TIdhttp控件下载http协议的文件,在我项目的使用过程中发现对于下载Https协议中的文件与Http协议的文件不同,毕竟Https在HTTP协议基础上增加了SSL协议 ...
- mediarecorder 录制的文件无法拖动进度条_如何下载网络ts视频文件
所需工具:火狐浏览器(v66).IDM 1.打开目标视频网页,空白区域右键-查看元素,选中"网络"项: 2.拖动视频进度条至所需下载片段的起始位置,刷新网页,网络监视器中出现的第一 ...
- 关于m3u8格式的视频文件ts转mp4下载和key加密问题
一,利用网站浏览器F12键,利用谷歌浏览器插件找到视频的.m3u8文件,并打开. 二,打开m3u8文件后,里面有很多.ts的链接,和key的链接. 三,保存为html文件,下载ts文件,代码如下:可加 ...
- Delphi/XE2 使用TIdHttp控件下载Https协议服务器文件
之前的一篇博文详细描述了使用TIdhttp控件下载http协议的文件,在我项目的使用过程中发现对于下载Https协议中的文件与Http协议的文件不同,毕竟Https在HTTP协议基础上增加了SSL协议 ...
- 使用ffmpeg合并视频文件的三种方法
ffmpeg合并视频的方法有三种.国内大多数仅介绍了其中之一.于是觉得有必要翻译一下.其实在ffmpeg的 FAQ文档中有比较详细的说明. 使用concat协议进行视频文件的合并 这种方式的适用场景是 ...
- 视频文件太大?使用FFmpeg来无损压缩它
咱们平时如果经常拍视频的话,都会遇到一个困境:视频文件太大了,存储的时候需要占用很多的空间.如果直接使用视频压缩工具来压缩码率的话,又会担心损失了视频的画质,这该怎么办呢? 这个时候,我们就可以使用f ...
- Windows环境下视频文件转成RTSP视频流和RTMP流
文章目录 一. 需要的工具 二.部署EasyDarwin服务器 三.ffmpeg命令行推rtsp流进行测试 四.采用ffmpeg代码方式推rtsp流到服务器 五.使用nginx搭建RTMP服务器 一. ...
- QT5.6 MSVC编译器 实现-海康摄像头,获取H.264裸码流并通过libmp4V2实现MP4写封装生成MP4视频文件
前言 当前,在国内安防领域,海康摄像头一直是受各个解决方案比较青睐的摄像头选择.本项目主要应用海康摄像头对桥梁道路车辆运行情况进行监控.当桥梁称重系统检测到车辆异常信号后,触发摄像服务程序,采集摄像头 ...
最新文章
- MSE病毒库离线更新包
- 除非换行符在格式字符串中,否则为什么在调用后printf不会刷新?
- 完全背包:以重量分阶段
- fir.im Weekly - 给 Mac 应用开发者的教程
- 正则表达式入门之位置匹配
- “约见”面试官系列之常见面试题之第一百零六篇之css只在当前组件中起作用(建议收藏)
- 小程序云开发实战 - 口袋工具之“历史上的今天”
- linux那些事之follow_page
- python multiprocessing.Process 应用
- ERP知识普及连载(13)
- 微信小程序开发04-打造自己的UI库
- 微信小程序----评价系统中的评星
- Minimax算法——井字棋
- 黑马程序员最新Python教程——第一阶段(1)
- android半透明闪退,移动端常见面试题一:移动端兼容解决方案
- db2取数据库日期时间_DB2日期和时间函数汇总
- 微信吸粉秘籍之人气论坛吸粉方法
- 2019年有效的rtsp流媒体测试地址整理汇总
- 对搜索引擎排名不友好的五种网站-SEO
- Mac 查询是否支持VT(Intel的Vanderpool的虚拟技术)
热门文章
- 经典排序算法(二十二)--图书馆排序(Library Sort)
- Linux运行多个openssl,linux – 使用多选项解释rsa的openssl速度输出
- 关于oracle存储微信表情emoji问题 “[[%F0%9F%A4%AA]]“
- python输出到指定文件夹_python实现指定文件夹下的指定文件移动到指定位置
- 印第安纳大学计算机语言学,语言学
- oracle 12.1.0.1.0,oracle_linux安装oracle_12.1.0
- jack插头_防水连接器航空插头特点
- mysql 事务_详解mysql如何做事务
- Vue:echarts异步加载数据显示
- Vue:解决实现留言回复功能时,点击回复某一条所有回复面板都弹出