学习使用fiddler 去分析视频网站在线视频播放的网络流协议,将在线视频下载到本地保存。
一、准备工作
Fiddler的下载
官方下载地址:https://www.telerik.com/fiddler
ffmpeg的下载
官网下载地址:https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z
二、开始下载
-
打开fiddler,同时播放视频,找到这种图标是蓝白相间的,这就是刚刚播放的视频和音频,视频和音频是分开的,随便点击一个,点击inspector,在响应里点击header,接着来看绿色的矩形框,里面的Content-Range是一项很关键的数据,其中1276-83960表示这个数据包,所包含的那一截视频内容,而完整的视频内容为2202409。所以我们要获取0-2202409的数据。
-
可以看到Content-Range写的是1365-1375372,表示数据包的内容是1365-1375372,而完整的内容是44643310,
和上面的2202409是不同的。遂认定这个2202409是完整的音频数据,而44643310是完整的视频数据。
一般来说大的那个就是视频
-
下一步是:保存视频和音频的完整内容,也就是下载第一个数据包的0-44643310作为完整的视频
内容,下载第二个数据包的0-2202409作为完整的音频内容。
于是就需要用到Composer
选择对应数据包,再点击Composer,鼠标左键第一个数据包,把它拖到右边红色的矩形框里
- 看到最后一行,Range:byte=1276-83960,这表示向服务器请求下载276-83960的内容,但我们需要完整
的0-2202409,于是将它改为0-2202409,再点一下右上角蓝色矩形框的Execute。
注: 视频的相同操作
5.回到左边,下拉到最后,会看到一个崭新的蓝白色图标。
(如果是一个绿色的下载箭头,表示它还没有下载完毕,还正在向服务器请求下载)。选中它,鼠标右键,Save→Response→Response Body
它默认的是后缀是.m4s.txt,我们保存为.m4s格式。
到这里,第一个数据包(视频文件)就处理结束了。
接下来,我们用同样的方式处理第二个数据包(音频文件),得到一个名为audio.m4s的文件。
于是就拥有了完整的m4s格式的音频和视频
三、合并视频与音频
我们需要借助ffmpeg工具将它们俩合并,这里我就另开一贴,专门
介绍如何将m4s文件合并为mp4格式的视频文件
- 将下载的ffmpeg解压后,点开文件夹,进入bin目录。
复制地址栏的路径。再系统环境变量path中添加该路径 - 打开cmd,输入ffmpeg,回车。
出现ffmpeg的版本信息和一大堆configuration就表示安装成功
- 开始合成
打开cmd,输入
ffmpeg -i 完整视频路径名 -i 完整音频路径名 -vcodec copy -acodec copy -f mp4 新合成视频的完整路径名
我的两个m4s文件的完整路径——
视频完整路径:D:\文件夹\video.m4s
音频完整路径:D:\文件夹\audio.m4s
合成后,我想要将mp4视频存放在:D:\文件夹\final.mp4
ffmpeg -i I:\IOT\aiProject\video\video.m4s -i I:\IOT\aiProject\video\audio.m4s -vcodec copy -acodec copy -f mp4 I:\IOT\aiProject\video\final.mp4
四、参考
https://www.cnblogs.com/northwest332/p/13917481.html
https://www.cnblogs.com/northwest332/p/13917479.html