适用场景:直播时可免费观看,但回放收费。若用录屏软件录屏,磁盘占用又太大。
工具:Fiddler、批量修改文件名工具
1)打开Fiddler,依次点击 “Rules > Customize Rules...” 打开Fiddler ScriptEditor(或者通过点击右侧面板中的FiddlerScript标签进入);
2)在电脑微信中打开直播页面,这时 Fiddler 会抓到很多数据请求,找到直播数据相关的数据获取相关的域名(直播流数据的识别:后缀为ts、前方有视频图标标识、数据量较大);
3)在 Fiddler ScriptEditor 中找到 OnBeforeResponse 函数,在其内部添加如下的代码片段(红框中的域名替换为上一步得到的域名,代码中的filename的获取也需根据实际地址做适当调整),修改后保存;
if (oSession.fullUrl.Contains('liveplay-dx.xiaoeknow.com') && oSession.fullUrl.Split('?')[0].EndsWith('.ts')) {
var directory = "E:\\Temp\\video\\";
var urlArr = oSession.fullUrl.Split('?')[0].Split('_');
var filename = urlArr[urlArr.length - 1];
var pathName: String = System.IO.Path.Combine(directory, filename);
FiddlerApplication.Log.LogString("path2="+pathName);
oSession.SaveResponseBody(pathName);
}
4)上一步修改完成后,Fiddler会重载脚本,然后抓取直播流数据保存到本地,这时打开本地目录可以看到会间歇性地出现很多ts文件;
5)在直播结束后,因为电脑对文件名的排序规则与人不同,所以需要梳理ts文件的文件名以保证它们的先后顺序正确(比如文件99.ts和100.ts在排序的时候,电脑会把100.ts排在99.ts前面,应该把99.ts改为099.ts,使所有文件的名称长度相等,不足就在前面补0)。因文件较多,可使用第三方软件来改名,这一步主要是为下一步合并文件做准备(本例中视频未乱序,就不改名了);
6)使用 Win+R 打开命令行窗口,将众多的ts片段合并为一 copy /b E:\Temp\video\*.ts D:\1.mp4(命令中的目录和文件名根据实际情况自行修改);
7)合并后的文件如果过大,可再使用其它视频压缩工具进行压缩。