写在前面
今天上课使用了钉钉的直播功能, 想要录屏却发现效果不好, 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全局代理.