首页
社区
课程
招聘
[原创]使用Wireshark和rtmpdump抓取微信公众平台视频
2015-3-20 10:11 14610

[原创]使用Wireshark和rtmpdump抓取微信公众平台视频

2015-3-20 10:11
14610
发现问题:

县委办一同事跑到我办公室请教我怎么样下载微信公众平台上的一个视频。

分析问题:

一、让他通过分享的方式把微信视频网页地址发到我的QQ上。这样我就取得了网页地址。

http://mp.weixin.qq.com/s?__biz=MzA3NTEzOTczNQ==&mid=203975879&idx=1&sn=228eb4323f77e9ecfc907e974c2c187b&scene=1&from=singlemessage&isappinstalled=0#rd

二、通过分析微信网页,发现是分享了江西今视网的一个专题。

网址:http://news.jxntv.cn/jiangxi/20150313/100904.shtml

三、打开江西今视网相关网页,查看网页代码,如下图:



发现真正的视频文件地址是MP4,使用的视频服务方式是RTMP协议。

四、我使用的是Fedora + FireFox,下载使用了好几个相关的视频下载插件都下载不了,没办法只有自己动手了。

解决问题

一、内事不决问百度,关键字:RTMP  视频 下载 。找到下面的网页:

http://blog.sina.com.cn/s/blog_639771ef0101dd24.html

发现rtmpdump可以下载RTMP协议的视频。问题是这个程序需要填写几个参数,网上的教程都是Windows的。幸好,rtmpdump是GNU软体!

二、安装rtmpdump:

yum install rtmpdump


三、获取相关RTMP参数。

网络协议分析利器Wireshark登场,打开Wireshark,点捕获数据。打开视频网页,点播放。开始播放后,Wireshark将会开始捕获数据了。

显示数据过滤:

因为WIRESHARK上面数据太多,我们需要过滤掉其它非RTMP协议数据。在过滤窗口输入下面条件并应用:

rtmpt.header.typeid == 0x14


指的是只显示RTMP协议中的AMF0数据。

如下图:



上面我们感兴趣的只有两条数据,一个是connect,一个是play

如上图,查看一下connect数据,找到AMF0对象属性tcUrl的值为:rtmp://dianbo01.jxntv.cn/videoPlay ,这个是RTMP服务器地址。



如上图,查看一下play数据,找到所要播放的视频地址:mp4:2015/1/jtymlx/wlbm/3m/0319/1.mp4

这样我们就取得了运行 rtmpdump 命令所需要的相关参数信息。

四、下载保存视频

打开控制台窗口,输入如下命令:

rtmpdump -r rtmp://dianbo01.jxntv.cn/videoPlay -y mp4:2015/1/jtymlx/wlbm/3m/0319/1.mp4 -o video.mp4


开始下载视频,下载完成后文件名为video.mp4

结束语:

能够将技术应用到工作中还是挺开心的。。。。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工 作,每周日13:00-18:00直播授课

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 74
活跃值: (588)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wodexinren 2015-3-20 14:24
2
0
不错,赞一个
雪    币: 90
活跃值: (80)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
hulucc 2015-3-20 14:51
3
0
这不是技术,只是rtmpdump的使用方法
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
XiaoAiWhc 2015-3-23 22:56
4
0
关键还结合了wireshark呀, 另外rtmp协议不也给讲了, 把相关技术综合利用才是王道, 这样的文章应该仅此一篇吧, 其它我遇到的都是讲 rtmp相关工具的
游客
登录 | 注册 方可回帖
返回