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

news/2024/10/29 1:19:31/

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

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

什么是qsv文件

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

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

在这里插入图片描述

头部信息

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

偏移(绝对文件地址)长度(字节)字段名解释
0x00xAsignature标识符,“QIYI VIDEO”
0xA0x4version版本号,0x01或0x02
0xE0x10vid视频ID
0x1E0x4_unknown1未知,必须为0x01
0x220x20_unknown2未知,全部为0x00
0x420x4_unknown3未知,待分析
0x460x4_unknown4未知,待分析
0x4A0x8json_offsetjson字符串的的绝对文件偏移
0x520x4json_sizejson字符串的的大小
0x560x4nb_indices视频索引信息的数量

索引信息

偏移(绝对文件地址)长度(字节)字段名解释
0x5Anb_indices + 7) >>3_unknown_flag位标识,一个索引对应一位,待分析
上一字段之后nb_indices * 0x1Cindices索引结构体数组

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

偏移(相对于结构体首地址)长度(字节)字段名解释
0x00x10_codetable用于后面两个字段的解密
0x100x8segment_offset视频分段的绝对文件偏移
0x180x4segment_size视频分段的大小

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文件采用了全新的加密方式,目前还转换。我们也提供老版本的爱奇艺客户端,关注公众号回复QIYI获取。

后记

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

该项目采用c语言和Qt开发,为了帮助不会cJava开发理解,作者翻译了Java版本,关注我下一篇带你手把手撸一遍。
om/btnkij/qsv2flv.git>

该项目采用c语言和Qt开发,为了帮助不会cJava开发理解,作者翻译了Java版本,关注我下一篇带你手把手撸一遍。


http://www.ppmy.cn/news/497504.html

相关文章

android 电影放到哪个文件夹里,手机爱奇艺下载的电影保存到哪个文件夹里

手机爱奇艺缓存或下载的视频文件在哪里?我们用爱奇艺观看视频的时候&#xff0c;很多朋友都喜欢将视频缓存到手机&#xff0c;那么我们缓存或下载的视频文件在哪里呢&#xff1f;怎么查看手机爱奇艺缓存的视频文件&#xff0c;然后分享给自己好友或者上传到自己电脑保存呢&…

PDF电子发票解析成excel,支持批量解析和导出功能

PDF电子发票解析成excel&#xff0c;支持批量解析和导出功能 http://promiseblog.cn/tool/pdfParse http://promiseblog.cn/tool/pdfParse http://promiseblog.cn http://promiseblog.cn 入口: 单张发票解析---解析步骤: 单张解析完成&#xff01; 接下来介绍批量解析&am…

EXCEL表格-输入身份证号无法正常展示问题详解

相信很多人都遇到过这样一个困惑&#xff0c;在EXCEL表格中输入身份证号后发现原本的身份证号变成了1.10223E17的形式&#xff0c;细心的小伙伴可能看出来了这是科学计数法的表示方式&#xff0c;然而如何规避这个问题呢&#xff1f;本文就来分享一下方法。 现象图&#xff1a;…

电脑死机怎么办?试试这5个方法!

案例&#xff1a;我的电脑用着用着突然死机了&#xff0c;我的文档写到了一半没有保存&#xff0c;不知道还能不能找回&#xff1f;电脑死机了怎么办&#xff1f;有没有小伙伴有应对的方法&#xff1f; 随着电脑在我们生活中的普及和广泛应用&#xff0c;电脑死机问题也成为了…

【软件工程】测试一

文章目录 单选题多选题填空题判断题 单选题 软件产品与物质产品有很大的区别&#xff0c;软件产品是一种&#xff08;&#xff09;产品。 A. 有形 B. 消耗 C. 逻辑 D. 文档 正确答案&#xff1a; C 在&#xff08;&#xff09;年的NATO会议上&#xff0c;软件工程的术语被首次…

【07】STM32·HAL库开发-新建寄存器版本MDK工程 |下载STM32Cube固件包 | 新建MDK工程步骤

目录 1.新建工程前的准备工作&#xff08;了解&#xff09;1.1下载相关STM32Cube 官方固件包&#xff08;F1/F4/F7/H7) 2.新建寄存器版本MDK工程步骤&#xff08;熟悉&#xff09;2.1新建工程文件夹2.1.1Drivers文件夹2.1.2Middlewares文件夹2.1.3Output文件夹2.1.4Projects文件…

裁剪图片软件有哪些?这些图片裁剪工具很好用

有哪些好用的图片裁剪软件呢&#xff1f;有时候&#xff0c;将一张大图缩小到更小的尺寸可以改善图片的质量&#xff0c;因为它可以减少像素和噪点。这对于那些需要在网上展示高质量图片的人来说尤其重要。裁剪后的图片可能更清晰、更锐利&#xff0c;并且更适合在各种设备上观…

画带土写轮眼教程_火影带土漫画教程

带土是日本动漫《火影忍者》中的人物之一。他来自火之国木叶村的宇智波一族成员&#xff0c;性格软弱&#xff0c;爱哭&#xff0c;拥有双勾玉写轮眼&#xff0c;最擅长的是写轮眼的时空间忍术--神威&#xff0c;也是世间第二位十尾人柱力哦。下面&#xff0c;我们就一起来分享…