xhx520 发表于 2023-2-16 11:46

某威13版本低效率思路

本帖最后由 xhx520 于 2023-2-20 19:38 编辑

#开始

**最近发现某威更新版本了,12版本才搞出来就过时了:'(weeqw ,基于对新技术的热情,迫不及待的开始了13版本的分析之路 **
***
1.首先当然是先按照12版本的思路分析,12版本的wasm解密函数为_get,发现13版本改为了_sendData。

2.之后就是对_sendData一顿分析,发现在$func2523函数中解密了pts;然后就懵逼了,解密后的数据播放只有音频,没有画面,道听途说是加密了es流,一顿废寝忘食的分析后还是一无所获,只能大概猜测ts解复用是直接用的ffmpeg(原来是js解复用),这下就难倒了小白我了。

3.一条路走不通只能另辟蹊径了,12版本就知道是wasm解码视频为一帧一帧的图片后,再用canvas绘制播放。那么我们能不能也这样做,把一帧一帧的图片保存下来,再合成为视频。有了这个思路,实现就比较简单了。

4.选择使用electron来实现,直接new Worker加载官方js,postMessage发送所需参数来获取每一帧图片的yuv数据及音频数据,通过yuv-canvas绘制图片并调用nodejs的fs库保存图片,通过ffmpeg命令合并图片为ts,最后合并ts为mp4即可

***
ffmpeg图片转视频命令:
```
ffmpeg -r 视频帧率 -f image2-i %d.png-i 音频数据 -b:v 码率(我设置的10M) 0.ts -y
```
# 存在的问题
1.效率很差,特别是分辨率较大的视频(wasm解码视频很耗时)
2.合成视频较大,因为视频码率设置的高(低了视频就模糊了),暂时不知道咋办



# 总结
该方案只能算投机取巧的方式了,且视频质量较差,无非是没有办法的办法了。听说有巨佬还原出算法了,只能怪自己太菜。

***
# 20230220更新:
1.yuv绘制为图片再转视频效率太差了,可以直接保存yuv流数据,再用ffmpeg命令转为ts,可以提升一点点效率
***

xhx520 发表于 2024-4-17 18:35

已经可以高速下载了

雨之幽 发表于 2023-2-16 14:27

打破零回复

tunnel213 发表于 2023-2-16 14:31

热爱技术,向你学习

taolike 发表于 2023-2-16 16:56

学习学习

ucu520 发表于 2023-2-16 18:34

向大佬学习

zhang7069 发表于 2023-2-16 18:57

互相学习,共同探索

guyongchao 发表于 2023-2-16 19:34

互相学习,共同探索

liuyanjie2012 发表于 2023-2-16 20:41

互相学习,共同探索

wasm2023 发表于 2023-2-16 21:18

楼主,请问较暗水印是不是wasm生成的呢

zjh889 发表于 2023-2-16 21:48

好技术,俺向大师学习!
页: [1] 2 3 4
查看完整版本: 某威13版本低效率思路