揭秘爱奇艺qsv文件背后的秘密

发布于 2024-11-05  25 次阅读


想做影视二次剪辑的朋友,想获取爱奇艺的高清资源吗?想知道如何将qsv文件导入剪映吗?本文带大家揭秘爱奇艺qsv文件背后的秘密,文章最后提供了绿色免费的转换工具可以将qsv文件转换为可剪辑的flv或MP4文件。

什么是qsv文件
QSV是一种加密的视频文件格式。是爱奇艺公司研发的一种视频文件格式,故QSV格式只能使用奇艺客户端、爱奇艺万能播放器播放。因此想要将QSV文件转换成其他格式的视频文件就需要知道QSV文件的加密方式,通过查阅相关资料和研究得出了一些结论。

QSV文件包含头部信息、索引信息、json字符串以及视频分段信息。

074b9fb4b9fcab80e9cd6b1e5d3558a7

头部信息
头部信息为整个QSV文件的前90字节。包含标识符、版本号、视频ID、json字符串的绝对文件偏移和大小、视频索引信息的数量。

dee4feda7b4053593a184a8fabc20cd8

索引信息

79541f3d10b551d08696b50c3ba2abbf每个索引结构体的大小为0x1C,经过加密,记录视频分段信息的偏移和大小。

84bb7d49fff9b862f67f7d7ba33db528

json字符串
通过头部信息中的json字符串的的绝对文件偏移和大小获取。字符串为加密数据,需要进行解密,解密算法如下:

// decryption algorithm for some segments in qsv version 0x1
void decrypt_1(BYTE* buffer, DWORD size) {
static BYTE dict[] = {0x62, 0x67, 0x70, 0x79};
for(int i = 0; i < size; ++i) {
DWORD j = ~i & 0x3;
buffer[i] ^= dict[j];
}
}

视频分段信息
一个qsv文件包含多段视频文件,通过索引信息中的segment_offset和segment_size定位,前0x400字节经过加密。老版本解密算法同json字符串,新版本的解密算法为:

// decryption algorithm for some segments in qsv version 0x2
void decrypt_2(BYTE* buffer, DWORD size) {
DWORD x = 0x62677079;
for(DWORD i = size - 1; i != 0; --i) {
x = (x << 1) | (x >> 31);
x ^= buffer[i];
}
for(DWORD i = 1; i < size; ++i) {
x ^= buffer[i] & 0xFF;
x = (x >> 1) | (x << 31);
DWORD j = x % i;
BYTE tmp = buffer[j];
buffer[j] = tmp ^ (BYTE)~buffer[i];
buffer[i] = tmp;
}
}

已发现的视频格式有flv(旧版客户端)、mpeg-ts(新版客户端)。

总结
提取出QSV文件中的视频信息后需要转换其他格式,则需要ffmpeg神器了。这里提供的免费转换工具已经集成了ffmpeg,可以直接将QSV文件转换为MP4,关注公众号回复QSV获取。

需要注意的是最新版爱奇艺客户端(10.0以上版本)下载的QSV文件采用了全新的加密方式,目前还转换。

后记
本文参考开源项目qsv2flv,项目地址:https://github.com/btnkij/qsv2flv.git

下载地址:https://wwpa.lanzouo.com/i8KoN2ebjc8h

届ける言葉を今は育ててる
最后更新于 2024-11-05