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

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

什么是qsv文件

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

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

头部信息

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

偏移(绝对文件地址) 长度(字节) 字段名 解释
0x0 0xA signature 标识符,“QIYI VIDEO”
0xA 0x4 version 版本号,0x01或0x02
0xE 0x10 vid 视频ID
0x1E 0x4 _unknown1 未知,必须为0x01
0x22 0x20 _unknown2 未知,全部为0x00
0x42 0x4 _unknown3 未知,待分析
0x46 0x4 _unknown4 未知,待分析
0x4A 0x8 json_offset json字符串的的绝对文件偏移
0x52 0x4 json_size json字符串的的大小
0x56 0x4 nb_indices 视频索引信息的数量

索引信息

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

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

偏移(相对于结构体首地址) 长度(字节) 字段名 解释
0x0 0x10 _codetable 用于后面两个字段的解密
0x10 0x8 segment_offset 视频分段的绝对文件偏移
0x18 0x4 segment_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版本,关注我下一篇带你手把手撸一遍。

揭秘爱奇艺qsv文件背后的秘密相关推荐

  1. 视频文件如何转换格式?爱奇艺qsv怎么转换mp4

    这几天有小伙伴向我抱怨:「爱奇艺下载的qsv视频在手机上无法播放啊,该怎么办?」,因为qsv视频是爱奇艺客户端下载的一种视频加密格式,只能使用爱奇艺客户端播放.如果想在手机上播放的话,就需要另外的方法 ...

  2. 爱奇艺qsv视频文件怎么转为mp4的格式

    爱奇艺qsv转mp4?qsv是爱奇艺播放器中的视频播放格式,要想将qsv视频文件在其他播放器中打开的话,比较简单的操作就是转换视频文件的格式了,那么今天为大家带来的是qsv视频文件转为mp4的操作方法 ...

  3. hQsv2Flv 爱奇艺QSV转FLV工具

     hQsv2Flv一款爱奇艺QSV转FLV的软件新鲜出炉 该软件不需要借助任何第三方软件就可实现QSV转化成FLV, 在爱奇艺视频桌面版V3.1.0.14及以下版本测试通过 该软件为试用软件, 试 ...

  4. 手把手教你怎么把爱奇艺QSV格式转换成MP4格式

    <简介> QSV是一种影视视频的格式,也是最为特殊的视频格式之一,为何这么说呢,因为这种QSV格式是爱奇艺特有的视频格式.通过爱奇艺客户端下载的影视通常都会以QSV格式保存在电脑中,而这种 ...

  5. 如何把爱奇艺qsv格式转换成mp3格式,已解决

    1.搜索: 小白兔视频格式在线转换 2.上传你的视频(腾讯qlv,爱奇艺qsv.优酷kux)都可以. 3.转换好后,我们把转换的视频下载到电脑里,就可以看到视频已经是MP4格式了. 转载于:https ...

  6. 爱奇艺qsv视频格式怎么转换mp4格式

    1.搜索: 小白兔视频格式在线转换 2.上传你的视频(腾讯qlv,爱奇艺qsv.优酷kux)都可以. 3.转换好后,我们把转换的视频下载到电脑里,就可以看到视频已经是MP4格式了.

  7. 爱奇艺qsv视频下载后怎么转换为3gp格式

    十一长假已经过去,大家的生活也都回到了正轨,愿大家都尽快从假期中的兴奋中回过神来,毕竟工作和学习才是最重要的,好了,下面我们转入正题,本篇教程为大家讲解爱奇艺视频下载后怎么转换为3gp格式,爱奇艺视频 ...

  8. 怎样才能快速地将爱奇艺qsv格式转换成mp4视频

    QSV是爱奇艺客户端的视频格式,这个格式的视频只能用爱奇艺客户端播放,兼容性不太好,如果转换成MP4的话在兼容性就好多了,下面就给大家介绍如何快速地将qsv视频格式转换mp4格式.那么qsv格式转换m ...

  9. 爱奇艺qsv视频下载后怎么转换为3gp格式 1

    十一长假已经过去,大家的生活也都回到了正轨,愿大家都尽快从假期中的兴奋中回过神来,毕竟工作和学习才是最重要的,好了,下面我们转入正题,本篇教程为大家讲解爱奇艺视频下载后怎么转换为3gp格式,爱奇艺视频 ...

最新文章

  1. matlab高斯消去,高斯消去、追赶法 matlab
  2. 如何用java创建超链接_Java如何在PPT中的幻灯片上创建超链接?
  3. go 指针变量和普通变量的转化_7.8 C++指针变量的引用
  4. JavaScript实现递归楼梯问题(迭代解决方案)算法(附完整源码)
  5. 零基础学Python-爬虫-4、下载网络图片
  6. 混合高斯模型_高斯混合模型(GMM)
  7. 用Asp.net写自己的服务框架
  8. 大学英语精读第三版(第四册)复习笔记——文章内容摘要
  9. 打印机多少钱一台?购买打印机打印速度快吗
  10. 如何在网页中插入视频(简单实用)
  11. 三星拿出了四摄手机,可惜诚意不足,挑战国产手机成奢望
  12. 怎样设置二维码的尺寸
  13. [UOJ UNR #2]积劳成疾
  14. Python基础知识-pycharm版-02
  15. STM32学习笔记V1.1GPIO寄存器的ODR、BSRR、BRR
  16. 使用飞信机器人发短信需要开放的端口
  17. 20190512 XTCPC游记
  18. 为什么说辞职后不要回原单位工作
  19. Java实现 LeetCode 420 强密码检验器
  20. springsecurity登录后依然跳回登录页面的问题

热门文章

  1. 解决雷柏无线键鼠突然失效的问题
  2. @@程序员——看完源码记不住?掌握这套方法,Alibaba不会少你一个工位,年薪60w+小菜一碟!
  3. Audio Focus分析总结
  4. 百度工程师漫谈视频理解
  5. hibernate 的缓存使用问题 转
  6. Android开发-在Android里接入阿里云推流SDK实现直播推流的功能
  7. pmp续证费用为什么淘宝比官网便宜?
  8. 进程CPU使用率计算
  9. web:简单照片墙放置,鼠标悬浮放大
  10. 4.19.90内核支持pci=reorder这个内核启动参数吗?