写在前面
今天上课使用了钉钉的直播功能, 想要录屏却发现效果不好, obsCPU过载严重, 调整好之后也收效甚微, 正好听同学说钉钉上课的话有直播回放, 但是不能下载, 这让我十分不爽, 开始Google!
大致思路
还真找到了很不错的解决方案, 参考1. 大致方法就是
-
下载安装Mac下使用的抓包工具
Charles, 当然这个软件是付费的, 可以通过一些特殊手段进行安装; -
配置Charles, 需要安装证书, 信任证书, 然后开启代理;
-
打开钉钉开启直播回放然后看Charles的抓包情况, 找后缀是
m3u8的链接然后复制下来; -
通过
brew下载ffmpqg这个强大的视频处理工具, 然后执行ffmpeg -i <刚才的视频链接> aa.mp4即可完成下载.
具体的部分这里就不列举了, 原文写的很详细了.
Charles部分
下载安装
官网下载(或者brew下载), 安装, 然后找一个注册码网站注册一下.
配置
-
Proxy -> macOS Proxy菜单开启代理 -
Proxy -> Proxy Settings菜单,对代理进行配置,需要开启HTTP代理——选择Use HTTP proxy。 -
安装 Charles 根证书,选择
Help -> SSL Proxying -> Install Charles Root Certificate即可完成安装未出现可自行打开 Mac 系统自带软件——钥匙串访问 ,如果证书显示不被信任,则双击进行设置,设置为始终信任
-
设置 SSL 代理,选择
Proxy -> SSL Proxying Settings菜单,出现如下界面后,选中Enable SSL Proxying,然后添加一个代理规则,Host 设置为*,由于是抓取 HTTPS 协议请求,Port 设置为443。
抓包部分
Charles 配置完成后,
- 打开钉钉群直播视频,然后观察 Charles 抓包内容,获取到如下请求信息,其中
*.alicdn.com格式的请求,为钉钉群视频直播地址。 - 展开抓取到的请求信息后,发现了完整的视频地址,最后我们要做的就是想办法下载
m3u8格式的视频。
下载部分
-
通过brew 下载FFmpeg, 然后粘贴上面的m3u8视频链接:
ffmpeg -i "https://dtliving-bj.dingtalk.com/live_hp/xxx" --threads 3 video1.mp4
需要注意的地方
- 我电脑是
m1的MacBook Air, CPU8核, 运行的时候全部跑满, 烫的不行, 后来找到了解决方案, 添加线程数限制-threads 3, 参考了23. 就可以以43%左右的CPU占用下载视频并进行合并等操作了. - 注意Charles开启代理之后, 如果关闭Charles电脑就不能联网了, 需要记得用完之后关掉Mac全局代理.