Python实现迅雷看看xv格式转换为flv格式
2012-11-19 21:26
585 查看
用editplus的十六进制查看器查看xv格式的数据,可以发现把xv格式的0到0x200000之间的数据删除,把0x200000到0x200400之间的数据解密,再加上后边的所有的数据,就是flv格式的视频了。
由于flv格式数据最开始的3个二位十六进制数据为:46 4C 56,对应的ASCII码分别为FLV,设第一个二位十六进制数据0x46为newmagicnum。xv格式从0x200000开始的数据不一定,但都是按照一定的密钥加密的,就是flv从0到0x400的所有数据分别加上密钥的值,设第一个二位十六进制数据为oldmagicnum。则密钥magicnum就是newmagicnum减去oldmagicnum。
例子:
flv格式数据为:46 4C 56
xv格式数据为:62 68 72
由于0x46比0x62小,所以密钥为:0x46+0x100-0x62
解密的过程为:删除xv文件0到0x200000之间的数据。0x200000到0x200400之间的数据分别加上magicnum,如果结果数据大于0xFF,则减去0x100。后边添加上所有未加密数据。
代码如下,使用方法为建立一个python文件,放在要转码的xv格式所在文件夹,程序会遍历文件夹内的xv格式的数据,然后新建一个“转码后文件”的文件夹,转码后的文件都在“转码后文件”文件夹内:
转载请注明出处:六楼实验室
链接:http://www.cnblogs.com/sixlab/archive/2012/11/19/python-xv2flv.html
由于flv格式数据最开始的3个二位十六进制数据为:46 4C 56,对应的ASCII码分别为FLV,设第一个二位十六进制数据0x46为newmagicnum。xv格式从0x200000开始的数据不一定,但都是按照一定的密钥加密的,就是flv从0到0x400的所有数据分别加上密钥的值,设第一个二位十六进制数据为oldmagicnum。则密钥magicnum就是newmagicnum减去oldmagicnum。
例子:
flv格式数据为:46 4C 56
xv格式数据为:62 68 72
由于0x46比0x62小,所以密钥为:0x46+0x100-0x62
解密的过程为:删除xv文件0到0x200000之间的数据。0x200000到0x200400之间的数据分别加上magicnum,如果结果数据大于0xFF,则减去0x100。后边添加上所有未加密数据。
代码如下,使用方法为建立一个python文件,放在要转码的xv格式所在文件夹,程序会遍历文件夹内的xv格式的数据,然后新建一个“转码后文件”的文件夹,转码后的文件都在“转码后文件”文件夹内:
# -*- coding: utf-8 -*- import os oldfileslist=os.listdir(os.getcwd()) os.mkdir('转码后文件') for oldfilename in oldfileslist: filename=os.path.splitext(oldfilename) if filename[1]!='.xv': continue oldfile = open(oldfilename,'rb') newfilename = '转码后文件\\'+filename[0]+'.flv' newfile = open(newfilename,'wb') temp=oldfile.read() tempfile=temp[0x00200000:] tempfile1=tempfile[:0x400] oldmagic=ord(tempfile1[0]) newmagic=0x46 if newmagic<oldmagic: newmagic += 0x100 magicnum=newmagic-oldmagic for i in range(0,0x400): tempnum=ord(tempfile1[i])+magicnum if tempnum>0xFF: tempnum -= 256 tempfile1=tempfile1[:i]+chr(tempnum)+tempfile1[i+1:] tempfile=tempfile1+tempfile[0x400:] newfile.write(tempfile) newfile.close() oldfile.close() print '%s 已经完成'% filename[0]
转载请注明出处:六楼实验室
链接:http://www.cnblogs.com/sixlab/archive/2012/11/19/python-xv2flv.html
相关文章推荐
- python实现通过pil模块对图片格式进行转换的方法
- Python实现把utf-8格式的文件转换成gbk格式的文件
- python实现将txt文件格式转换为arff格式
- 用Python实现CSV格式文件转换为HTML文件[Python3程序开发指南实现]
- Python实现把json格式转换成文本或sql文件
- Python实现将HTML转换成doc格式文件的方法示例
- Python实现把utf-8格式的文件转换成gbk格式的文件
- Python3实现转换Image图片格式
- wrl转换pcd格式Python实现
- python实现将pvr格式转换成pvr.ccz的方法
- python实现txt文件格式转换为arff格式
- Python实现把json格式转换成文本或sql文件
- Python基于pandas实现json格式转换成dataframe的方法
- 开源/免费软件推荐(二):右键实现图片转换(格式、大小、特效、旋转)Easyimageconvertor
- ffmpeg-php将视频格式转为flv格式实现代码
- Python实例2-获取某文件夹下指定类型的图片名,完成图片格式的转换并保存
- java/python中获取当前系统时间,并与字符串相互转换格式,或者转化成秒数,天数等整数
- python转换时间戳和日期时间格式的转换
- 用虚拟打印机实现文档格式的转换
- python实现csv格式文件转为asc格式文件的方法