2012-10
9

RTMP速速下马来

By xrspook @ 17:04:07 归类于:烂日记

昨晚,按照svnpenn指引,我终于攻克下了WWE.COM的视频。

以下教程使用的方法均是svnpenn大神的杰作!我只是做一个详细的中文说明。

我们以WWE.com: Alberto Del Rio runs down the WWE Universe in Albany: WWE App Exclusive为例。

首先分析一下WWE.COM的视频我们可以肉眼从源代码看到的东西:

1
2
3
4
5
6
7
8
9
10
11
12
<!-- PANE video_player_auto_1157 --><div id="video_player_auto_1157" class="pane pane-video_player_auto grid-col-8" data-position="0" data-mnumber="UND" data-id="1157">
<div class="pane-inner">
<div class="content"><div id="wwe-brightcove-player-div"><div class="geoip">To watch WWE videos, please <a href="http://www.wwe.cn/">click here</a> to visit our partner site.</div></div>
<!-- By use of this code snippet, I agree to the Brightcove Publisher T and C
found at https://accounts.brightcove.com/en/terms-and-conditions/.  -->
<script type="text/javascript" src="http://video.wwe.com/geoip/group3.php?format=javascript"></script>
<script type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences_all.js"></script>
<script type="text/javascript" src="http://admin.brightcove.com/js/APIModules_all.js"></script>
<script type="text/javascript" src="http://objects.tremormedia.com/embed/js/banners.js"></script>
<script type="text/javascript">WWEBrightcove.init("wwe-bcplayer");</script>
<div class="info details">
<div class="content">Alberto Del Rio tells the WWE Universe in Albany what he thinks of them.</div></div></div></div></div>

那玩意用的是流媒体,载体是看到就心烦的brightcove,同时,它采用了“geoip”,IP限制,也就是非IP字段内国家你看到的是浮云,比如说我不翻墙的话,在天朝我看不到视频,只会看到“To watch WWE videos, please click here to visit our partner site.”这么一句话。天朝不让你出去已经是很烦的了,别人还要关紧大门不让你进去,这更烦。幸好,WWE在米国,找代理神马容易点,如果是在意大利、西班牙、捷克、匈牙利神马,那就跪了。

所以,在天朝,你要下载WWE.COM的视频,你首先得有一个米国的VPN!而且速度允许你起码能把视频打开,哪怕很慢,里面的东西是每秒皆缓冲地播的。

根据svnpenn大神的指引,我们需要备齐工具。

其中包括

1、下载并安装32位的Firefox——利用Firefox播放视频时防全面宕机的plugin-container。

2、下载并安装Cygwin——简单来说这是一个在Windows下运行多种系统本不支持的语言的玩意,在Windows下学习Linux不一定要庞大吃内存的虚拟机了,哈哈哈。至于安装么,这里有粗略说明

3、下载RtmpDump——这是嗅探和下载rtmp流体文件的核心!

4、下载rtmp-host.sh——你或许会不知道如何从前面的网址下载,我也不知道,所以我的做法是下载整个打包,然后再把rtmp-host.sh解压出来。

好吧,我们开始磨刀霍霍向WWE.COM视频。

1、开启你的米国VPN!

2、把rtmpdump解压到Cygwin的目录下,如果你的Cygwin安装在F盘,那么请解压到这里“F:\cygwin\usr\local\bin”。

3、把rtmp-host.sh放到一个你很容易访问到的地方,比如说根目录下的某处,如“D:\rtmpdump”。

4、启动Cygwin Terminal,初次使用会自动弹一堆东西,尽管让它弹,最后,它会给你一个“用户名@计算机名 ~ $”的东西,在“$”之后你就可以为所欲为了。跟Windows的命令行不同,这里是彩色的!这里的东西可以鼠标右键复制粘贴(Ctrl+C和Ctrl+V不行哦)!

5、转向到rtmp-host.sh所在目录下,也就是在“$”后输入“cd d:/rtmpdump”回车。哟哟,这里不像Windows命令行还要一句“d:”回车,而是直接到这个目录了!之所以之前要把rtmp-host.sh放在简单目录下,就是为了转向不太困难,你可以直接放根目录,但下载期间会生成一些东西,如果你不介意根目录一团糟,这无所谓。

6、用Firefox打开目标视频WWWE.com: Alberto Del Rio runs down the WWE Universe in Albany: WWE App Exclusive,保证视频已经在播了,不一定是正片,广告也可以。

7、在Cygwin里输入“./rtmp-host.sh”并回车,开始运行这个脚本!然后,你会马上看到紫色两行字“Killed flash player for clean dump. Hosts file reset. Restart video then press enter here.”照做呗,Firefox刷新视频网页,然后在Cygwin里回车。

8、回车过后,你会看到Cygwin光标闪烁几秒,然后提示“127.0.0.1 bcvideos.wwe.com 127.0.0.1 cp95906.edgefcs.net Press enter to start RtmpSrv, then restart video.”,当然了,这里是以WWE.COM的视频为对象,理所当然会看到神马wwe.com,如果你对付的是其它流体视频网站,你懂的了。按照这里的提示按回车,然后Firefox刷新视频网页。

9、在Cygwin回车后你马上会看到“RTMP Server v2.4-41-g7bae82a(c) 2010 Andrej Stepanchuk, Howard Chu; license: GPL”,重启视频后,耐心等待,因为这里的页面将在一段时间内没有任何反应,不耐心的你会觉得不成功。于是,你需要做的就是等待,慢慢等,前提是你的VPN工作良好。

10、等待,等待,等待后,突然Cygwin会有一大段走字,在最后那一行你会看到诸如“1688.909 kB / 32.77 sec (18.8%)”的进度条,那么恭喜你,在Cygwin + rtmp-host.sh + RtmpDump的作用下,你的视频已经在下载了,放在rtmp-host.sh的同一目录内。

以下是整个Cygwin过程里你将看到的东西

额外提醒:

1、VPN质量很重要,严重影响到你下载到视频的质量,我的VPN只能让我下载到WWE.COM下720*404分辨率的东西,但如果你网速好,你是可以下载到1280*720的(见这里)!

2、如果你在第10步,Cygwin中遇到“ERROR: RTMP_ReadPacket, failed to read RTMP packet header Closing connection… done! ERROR: Handshake failed Closing connection…done!”,莫怕,Firefox刷新视频继续等待即可。

3、如果你在Firefox视频播放器里遇到“This video stream is currently unavailable. Please try again later. Error Code: VE_FMS_CONNECT_FAILED”,杯具!要不说明你的VPN不好,要不是网络当时有点问题。前者的话,你可以换一个VPN了,后者的话,你可以等一下再试。

大概就是这样了哈。

吐槽一句,WWE.COM的东西真是,无论是720*404还是1280*720都是铺天盖地马赛克,我服了,但无论怎么说,算是下了回来了哈。

PS:这就是我根据上面的教程下回来的WWE.com: Alberto Del Rio runs down the WWE Universe in Albany: WWE App Exclusive,很多马赛克,我懂,但这不是我的错,是墙害的,呜呜呜~~~

2012-10
8

永不停息的流媒体战役

By xrspook @ 17:53:56 归类于:烂日记

今天我才学会了Excel的判断句式,因为我需要做一个条件筛选然后公式计算。

最好用switch去实现,但很多个if也无妨。

最简单的if判断句式是这样的“=if(条件,程序1,程序2)”,如果符合条件,程序1,如果不符合条件,程序2。

通常来说,我们用到的是多层判断,对不同区间作不同处理,那么就得用到嵌套的if句式:

=if(条件1,程序1,if(条件2,程序2,if(条件3,程序3,程序4)))

如此类推,多层判断说白了就是用一个if()取代一个单层判断的程序。

如果你知道你自己在做什么,这都很简单,特别当你已经习惯被从前那些神马分段函数折磨得死去活来后。

WWE.COM的视频我还没找到方法下载回来,但这肯定是可行的,据说用Cygwin + rtmp-host.sh就可以。WWE.COM现在的视频(2012-10-08)是brightcove,加了IP筛选。中国呢,不翻是看不到的了,至于其它不是米国的能不能看到这我就不知道鸟。rtmpdump是神器,可以通杀基本上所有流媒体,但从一开始无情的事实就告诉我们最难整的是如何获取流媒体的地址!

今天我用RTMPDumpHelper对付WWE.COM,未果。常规工具通常不怎么凑效的,那些什么跨学科之类的才是神!不过即便是跨学科,实用性也是有一定时间区域的。神经病的我们想看不让我们看到的视频,而且不只是看到,还要下载回来慢慢咀嚼甚至分享出去。回望那么多年来的互联网生涯,基本上每年我都会和视频下载作斗争。流媒体推陈出新,我也换上了一代又一代神兵利器。

看看说明书,琢磨琢磨,我最终会下载到WWE.COM视频的!

2009-05
30

rtmp,没问题的!

By xrspook @ 21:51:35 归类于:烂日记

还记得在初始上网阶段(约2003年)被那些.rm格式的流体文件弄得团团转,根本不知道如何下载。于是被迫接触到StreamboxVcr,很好很强大,它能下载到部分的流体.rm文件,通常是用来对付那些一般下载软件无能为力的基于rstp协议的文件。接着知道了Net Transport(影音传送带),但他们的嗅探能力都不强,便利用了URL Snooper(它的.ico是只狗头,的确功能也是这样)。

时间飞快,大概去到2005年的时候第一次见识到那种有别于以前.rm,.wmv一般网络视频传播方式的新流体格式,它基于flash,通常和普通的.swf组成整体,那时我们会用右键或源代码去找它们,结果通常是徒劳,怎么按都是那个经典的flash播放器右键菜单,于是就像蝗虫一般,.flv播放格式在世界各地流行了起来。我第一碰到它是在Nat Geo的视频上。

道高一尺,魔高一丈,很快,下载嗅探并转换.flv的方法遍地开花。可用软件下载,我个人更喜欢用网页方法。

但今天,xrspook遇到一个显然是.flv的文件,但Firefox的FlashGot居然探测不到,惊讶!用Maxthon又试了一下,也不行!继续用一些平时下各个视频网站的东东的网址也试了,都嗅探不出来!!!难道就是因为里面用了javascript,做了什么手脚?经典方法都试过了,不行,于是只能先下载那个播放.flv文件的框架.swf来研究一下,虽然我深切地明白到,二者是完全独立的!!!用Sothink SWF Decompiler打开下载回来的.swf,在Action的MainMovie里面居然让我看到如此一句“videoURLType = “rtmp”;”,天啊!原来不是把.flv放在一般的http下面,而是放到了rtmp那里!!!实在很万恶!这个rtmp协议比rstp更麻烦,难就难在你不会在你的缓存里找到视频的任何踪影,因为视频的交换是实时的。

知道了问题所在,马上要问问G老师。老师说这个问题的确棘手,但方法还是有的。首先,我下了个号称可以解决这个问题的Orbit,很快,按照别人的指示转眼间就把要提取文件的地址弄了出来,我的天!居然这么长:

rtmp://63.217.20.96:1935/ondemand?_fcs_vhost=cp31851.edgefcs.net|ondemand?_fcs_vhost=cp31851. edgefcs.net|univisionflash/media/19726/2009/05/090529_ESC_dinamita_armando_400|http://www.univision.com/contentroot/uol/art/systemimages/channel/global/images/embedPlayer.swf|http://www.univision.com/content/flashvideo/embed.jhtml?vars=videoCID=1961820&OBT_fname=090529_ESC_dinamita_armando_400.flv

但Orbit怎么都连接不上,进度一直为0%,直至下载失败,就好像站在橱窗门口,看得到却得不到。

接着,下载了很强大,听说导致Amazon亏了钱Replay Media Catcher。虽然下载了个破解版,但没用,于是只能用demo模式,视频很顺利地下载了,下载完毕的大小是12.21MB,但在文件夹里看到的文件却只有9.38MB,这意味着什么呢?因为demo版本只允许下载100%的YouTube文件75%的其它网站文件。万恶!这个软件可要30多美金啊!!!!于是发了疯了寻找传说中的注册码,寻觅了2个多小时,徒劳~~~~

对于rtmp协议的文件难道就真的没有办法?

不!还有一个万能的方法!截屏!!!!从前的人可以用录像机、录像枪把电视节目录下来然后转录为电脑格式,我们也应该可以依着葫芦画瓢。

幸运地,找到个叫做Camtasia Studio的软件,非常强大!但如果你是想录制简单小巧的软件教程用Wink就绰绰有余了,但我现在要做的是录制视频,如果能用无压缩的.avi格式保存才算完美!!!经过几次尝试后,终于把3:07的藏在rtmp协议中的.flv用一种可行可靠的方式down了下来。不是一般的兴奋啊!也终于解开了心结。

随着时代的发展,科技的进步,或许那种似乎很高难度的rtmp协议会在视频界广泛传播,但那又怎样,到时高手们肯定又会有新的方法解决老问题。

拭目以待!!!

Page 1 of 11
COPYRIGHT @ 我的天 | Theme by xrspook | Power by WordPress | Valid XHTML 1.1 and CSS 3 Go to top