前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >移动直播、实时音视频、即时通信终端新版解压工具

移动直播、实时音视频、即时通信终端新版解压工具

作者头像
105号运维实习生
修改2022-08-22 17:31:02
8910
修改2022-08-22 17:31:02
举报
文章被收录于专栏:随手写写随手写写

原文地址:https://cloud.tencent.com/developer/article/1502366

主要处理sdk版本9.9之后,日志加密方式改变了,生成的文件是后缀.cLog的文件,以下脚本为提工单获取,仅保证当前可用。

留档日期:2022/8/22

工具说明:

1、在你电脑系统要有 python 2.x 环境

2、在终端运行 python decode_mars_log_file.py 就行了(log 文件要和 decode_mars_log_file.py放在同一目录下)

复制以下代码保存到文件重命名为decode_mars_log_file.py

代码语言:javascript
复制
#!/usr/bin/python

import sys
import os
import glob
import zlib
import optparse
import struct
import binascii
import traceback
IO_BUFFER_SIZE = 4096

# This variable defines how deep you want the tool to
# scan subfolders to find clog files
recursive_level = 5
lastseq = 0
def DecompressFile(file, outfile):
    dec = zlib.decompressobj(-zlib.MAX_WBITS)
    fin = open(file, "rb")
    fout = open(outfile, "wb")
    buffer = fin.read(IO_BUFFER_SIZE)
    while buffer:
      decompressed = dec.decompress(buffer)
      buffer = fin.read(IO_BUFFER_SIZE)
      fout.write(decompressed)
    decompressed = dec.flush()
    fout.write(decompressed)
    fout.close()
    fin.close()
    print(outfile)

def processfolder(folder, recursive_level):
  if(recursive_level<=0):
    return
  filelist = glob.glob(folder + "/*.clog")
  for file in filelist:
    DecompressFile(file, os.path.splitext(file)[0] + '.log')
  subfolders = glob.glob(folder + "/*/")
  for folder in subfolders:
    processfolder(folder, recursive_level-1)

def process(arg):
  if(arg.endswith('.clog') and os.path.isfile(arg)):
    DecompressFile(arg, os.path.splitext(arg)[0] + '.log')
  elif(os.path.isdir(arg)):
    processfolder(arg, recursive_level)

# decompress_clog.py now accept folder or file as arugments
# scenario 1 several files:       python decompress_clog.py 1.clog 2.clog
# scenario 2 current folder:      python decompress_clog.py ./
# scenario 3 several subfolders:  python decompress_clog.py clogs 202101

def main():
  global lastseq
  args = sys.argv[1:]
  if len(args) >= 1:
    for arg in args:
        process(arg)
  else:
    filelist = glob.glob("*.clog")
    for filepath in filelist:
        lastseq = 0
        process(filepath)

if __name__ == "__main__":
  main()

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
实时音视频
实时音视频(Tencent RTC)基于腾讯21年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档