奇艺QSV文件格式简单分析

QSV文件是奇艺为了保护版本而产生的一种文件格式。

但这一措施使得想在手机、平板等非PC平台上播放该视频带来严重不便,于是想方设法把QSV文件转换为别的平台可播放的格式。

前段时间我对奇艺的QSV文件格式也做了少量的研究。因为我也想在手机上播放奇艺影音下载的视频。
事实上奇艺的所有视频都是f4v格式的,f4v其实就是一种FLV格式,只是其视频编码采用的是H.264;
通过奇艺影音下载的视频都被奇艺影音加密处理了一下把后缀改成了QSV。
下面我就说说我研究QSV文件所得到的结论:
一个QSV文件包含文件头和视频数据加部分。
———————————————————————————————————
一、文件头部
1.QSV文件前面9个字节为固定“QIYI VIDEO”,文件格式标识符
2.第0A-0D字节,是QSV文件内部版本号,以前的QSV文件版本号都是01,现在奇艺已经更新版本号为02,当然结构也会跟着变化
3.第0E-1D字节,是视频ID号
4.第1E-45字节,作用暂时未知,大部分为0
5.第46-49字节,标识是否有视频信息,为1则有,为0则无
6.第4A-4D字节,视频信息的偏移值
7.第4E-51字节,全为0,作用未知
8.第52-55字节,视频信息的长度(视频信息为一段XML文件)
9.第56-59字节,视频分段数量(奇艺视频将一个F4V文件分成了若干段,一段大约6分钟)
10.第5A-5B字节,作用未知

—————–以下是F4V分段索引—————————–
11.第5B-6A字节,作用未知,猜测为本小段f4v文件的校验码
12.第6B-6E字节,本段F4V文件的偏移地址
13.第6F-72字节,全为0
13.第73-76字节,本小段F4V文件的长度

14.第77-86字节,下一段F4V的校验
15.第87-8A字节,下一段F4V的偏移地址
16……………………………

————————————————————–
二、视频数据
从文件头部可以得到各个F4V分段的偏移地址和分段长度。
直接提取出来是不行的,因为奇艺对这些F4V文件进行了加密处理。
加密方式为:
将各F4V分段的前面1024字节进行加密,后面的没有加密。
加密算法为以4个字节为单位进行异或操作,异或的数据为0X79706762
———————————————————————————————————-