V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Sponsored by
LinkedIn
不坐班的神仙工作 · 去任何你想去的地方远程,赚一线城市的工资
2000 个不用出门 Social 的全球远程工作,帮助 V2EX 的小伙伴开启全新的工作方式。
Promoted by LinkedIn
Coande
V2EX  ›  程序员

AES-128 加密的 ts 视频文件如何合并

  •  
  •   Coande · 2016-10-01 12:41:37 +08:00 · 45981 次点击
    这是一个创建于 2189 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在有一个视频的 m3u8 文件、 ts 文件、 hxk 文件, ts 文件太多,不知道如何合并、播放,求教

    第 1 条附言  ·  2016-10-01 19:19:28 +08:00
    需要合并的视频: https://pan.baidu.com/s/1dFFSzwH
    125 条回复    2020-03-08 21:27:10 +08:00
    1  2  
    em70
        1
    em70  
       2016-10-01 12:51:01 +08:00 via iPhone
    Aes 解密代码很多开源的,解密后直接首尾拼合即可
    Coande
        2
    Coande  
    OP
       2016-10-01 12:54:02 +08:00
    @em70 例如?
    sherlocktheplant
        3
    sherlocktheplant  
       2016-10-01 13:08:27 +08:00
    直接依次写入文件就行了 只是有些播放器不能拖进度
    Coande
        4
    Coande  
    OP
       2016-10-01 13:10:43 +08:00
    @sherlocktheplant 请问怎么写入呢?
    sherlocktheplant
        5
    sherlocktheplant  
       2016-10-01 13:12:52 +08:00
    @Coande 按顺序逐字节写入速度 我不知道如何能表达得更简单
    sherlocktheplant
        6
    sherlocktheplant  
       2016-10-01 13:13:34 +08:00
    按顺序逐字节写入 我不知道如何能表达得更简单
    em70
        7
    em70  
       2016-10-01 13:13:40 +08:00 via iPhone
    @Coande Windows 的 copy 命令就可以拼合,解密代码很多的,各种语言都能找到,自己谷歌吧
    YanwenSun
        8
    YanwenSun  
       2016-10-01 13:14:17 +08:00 via iPhone
    key 在 m3u8 里写好的话 可以直接用 ffmpeg 输出
    monnand
        9
    monnand  
       2016-10-01 13:16:46 +08:00 via Android
    AES 只是 block cipher 算法,你得看你的用的是什么 mode
    Coande
        10
    Coande  
    OP
       2016-10-01 14:10:27 +08:00
    @monnand 怎么看
    Coande
        11
    Coande  
    OP
       2016-10-01 14:12:10 +08:00
    @YanwenSun 对,在 m3u8 里写好的了。没用过 ffmpeg ,怎么输出呢? ts 文件我都下载下来了,怎么处理呢?
    Coande
        12
    Coande  
    OP
       2016-10-01 14:14:17 +08:00
    @em70 所有 ts 文件 copy 到一个文件然后再 AES-128 解密?
    Coande
        13
    Coande  
    OP
       2016-10-01 14:15:38 +08:00 via Android
    @sherlocktheplant 太专业了,并不懂😂
    em70
        14
    em70  
       2016-10-01 14:15:53 +08:00 via iPhone
    @Coande 先解密再拼合,要自己写程序处理,如果你什么都不懂,那很难了
    Coande
        15
    Coande  
    OP
       2016-10-01 14:18:05 +08:00
    @em70 有没有现成的工具呢?或者实现思路?
    larvata
        16
    larvata  
       2016-10-01 14:24:13 +08:00   ❤️ 2
    之前整理过方法


    首先 先下载 key 和 m3u8
    然后修改 m3u8 中 key 的路径
    最后 用 ffmpeg 下载
    ffmpeg -i <source.m3u8> -c copy <target.ts>
    Coande
        17
    Coande  
    OP
       2016-10-01 15:28:25 +08:00 via Android
    @larvata 谢谢,我去试试
    Sequencer
        18
    Sequencer  
       2016-10-01 15:39:54 +08:00
    最近也在折腾这个
    只是我要看的 key 和 m3u8 被加密了
    还在从从 Java 里面反编译出来解密
    qw0258
        19
    qw0258  
       2016-10-01 16:16:31 +08:00   ❤️ 1
    贴个视频地址出来,我帮你看看。以前研究过一段时间, 自认为国内 TOP20 的在线教育网站能够搞定一半。
    Coande
        20
    Coande  
    OP
       2016-10-01 16:20:57 +08:00
    @qw0258 哈哈哈,对了,就是教育网站的视频。私聊。
    Coande
        21
    Coande  
    OP
       2016-10-01 16:22:08 +08:00
    @qw0258 qq or email ?
    Coande
        22
    Coande  
    OP
       2016-10-01 16:24:45 +08:00
    @Sequencer 有没有什么资料?
    Coande
        23
    Coande  
    OP
       2016-10-01 16:52:17 +08:00
    @larvata 使用 ffmpeg 时, Invalid data found when processing input
    qw0258
        24
    qw0258  
       2016-10-01 18:18:59 +08:00
    @Coande ID gmail
    Sequencer
        25
    Sequencer  
       2016-10-01 18:25:20 +08:00
    @qw0258 http://icourses.cn
    你看看这个?
    我已经搞到一半了。
    反编译了 JAVA 拿到解密算法 还没开始写
    不过写完了之后估计也就没啥了
    你看看有什么好的方法么?
    @Coande 没有资料...
    纯反编译 JAVA
    很简单 但是很麻烦
    Coande
        26
    Coande  
    OP
       2016-10-01 19:21:14 +08:00
    @Sequencer 知道怎么播放吗?我播放不了。。。
    YanwenSun
        27
    YanwenSun  
       2016-10-01 20:43:00 +08:00 via Android
    前几天写了一个下载 HLS 的工具 网站上下载 m3u8 自动解析分片 10 个 ts 换一次 key key 需要格式化成 16 进制 按顺序下载 ts 到数组里 调 openssl aes cbc 解密 解密后的数据直接写盘就好 手工合并太麻烦了 换 key 就得累死
    larvata
        28
    larvata  
       2016-10-01 22:00:02 +08:00
    @Coande 如果下载到本地的那个 m8u3 文件 ts 和 key 的路径都修改正确的话( ts 需要补全域名部分 key 需要补全本地的相对路径) 那就不清楚了 之前没有碰到过这种情况
    Coande
        29
    Coande  
    OP
       2016-10-01 22:01:27 +08:00 via Android
    @YanwenSun 有没有源码,可以借鉴下吗?
    Coande
        30
    Coande  
    OP
       2016-10-01 22:06:05 +08:00 via Android
    @larvata 要不你合并附言那个视频试试?
    larvata
        31
    larvata  
       2016-10-01 23:11:15 +08:00
    @Coande 试过了附言那个 和你同样的报错
    比较了下我之前下载成功的 m3u8 发现你的这个缺少 IV 的值

    不知是不是这个导致的解密失败 除此之外完全没有头绪
    #EXT-X-KEY:METHOD=AES-128,URI="key",IV=0xda30458664ef12a418323ef17f5e2341
    YanwenSun
        32
    YanwenSun  
       2016-10-01 23:30:14 +08:00 via iPhone
    @Coande 有源码 VS+libcurl+ openssl library 的 但只能在 7 号开学之后才能发给你
    isnowify
        33
    isnowify  
       2016-10-01 23:33:27 +08:00 via Android
    研究过 xueersi 的 ts ,和你这一模一样,搜了几次都没结果。。
    Sequencer
        34
    Sequencer  
       2016-10-01 23:41:12 +08:00 via iPhone
    播放就是楼上的方法 懒得下载 问问你得到的 m3u8 是否被加密 i
    Coande
        35
    Coande  
    OP
       2016-10-02 00:20:47 +08:00 via Android
    @larvata 还是谢谢啦
    Coande
        36
    Coande  
    OP
       2016-10-02 00:28:01 +08:00 via Android
    @YanwenSun 有点陌生。。。你用什么语言写的?_?
    Coande
        37
    Coande  
    OP
       2016-10-02 00:31:10 +08:00 via Android
    @Sequencer 怎么算是被加密了?_?
    Coande
        38
    Coande  
    OP
       2016-10-02 00:38:42 +08:00 via Android
    @isnowify 哈。同道中人。刚才上某宝看了下居然有我要的视频,人家几百块的,他拿去卖几块钱😂。某宝就是强大😂
    Sequencer
        39
    Sequencer  
       2016-10-02 11:43:16 +08:00 via iPhone
    m3u8 文件被 aes 加密 解密 iv 被写到客户端里
    打开 m3u8 是乱码
    Coande
        40
    Coande  
    OP
       2016-10-02 12:28:07 +08:00
    @Sequencer 你描述的是两种情况?我这个视频就是 aes 加密, m3u8 不乱码,没 IV 。这就是 IV 被写到客户端里面了吗?
    crystone
        41
    crystone  
       2016-10-02 13:06:20 +08:00
    这个不错,学习了
    xxxyyy
        42
    xxxyyy  
       2016-10-02 13:33:51 +08:00 via Android
    @Coande 你这个应该缺少 IV ,哪个网站(应用)上的,方便贴出来吗?
    Coande
        43
    Coande  
    OP
       2016-10-02 14:58:06 +08:00 via Android
    @xxxyyy imooc
    Sequencer
        44
    Sequencer  
       2016-10-02 16:58:46 +08:00 via iPhone
    喔不是 你的可能要稍微简单一些 icourse 连 m3u8 的文本都加密了
    Coande
        45
    Coande  
    OP
       2016-10-02 18:48:14 +08:00 via Android
    @Sequencer IV 可以在客户端里传啊?这样的话,客户端反编译不了,那是不是没戏了?
    Sequencer
        46
    Sequencer  
       2016-10-02 19:19:13 +08:00
    @Coande icourse 的客户端很智障 硬写到客户端里了... 不过暂时还没有时间来写解密的算法
    Coande
        47
    Coande  
    OP
       2016-10-02 19:43:20 +08:00 via Android
    @Sequencer 对,很智障,哈哈哈
    xxxyyy
        48
    xxxyyy  
       2016-10-02 22:38:53 +08:00
    @Coande 免费的还是收费的?免费的很容易下呀
    Coande
        49
    Coande  
    OP
       2016-10-02 23:30:43 +08:00 via Android
    @xxxyyy 收费的
    xxxyyy
        50
    xxxyyy  
       2016-10-02 23:47:03 +08:00 via Android
    @Coande 你在 pc 上看过这些视频吗?如果在 pc 上它是使用 HTML 5 的 video 标签来播放的,一般是 mp4 格式的,这个下起来比较容易。
    Coande
        51
    Coande  
    OP
       2016-10-03 00:04:38 +08:00 via Android
    @xxxyyy 看过。也是加载 m3u8 的。用的 video 标签, src 是 blob 的。
    xxxyyy
        52
    xxxyyy  
       2016-10-03 00:48:06 +08:00 via Android
    @Coande 那还好办,相关解密算法应该在 js 里。
    Coande
        53
    Coande  
    OP
       2016-10-03 22:55:19 +08:00 via Android
    @xxxyyy js 太多太杂。。。
    gushengren
        54
    gushengren  
       2016-10-08 22:48:25 +08:00
    @Coande 兄弟,你搞定了吗?
    gushengren
        55
    gushengren  
       2016-10-08 22:51:49 +08:00
    @YanwenSun 哥们可以破解类似的加密视频吗,有偿求助,联系我好吗?QQ44269959
    gushengren
        56
    gushengren  
       2016-10-08 22:52:35 +08:00
    @larvata 哥们可以破解类似的加密视频吗,有偿求助,联系我好吗?QQ44269959
    Coande
        57
    Coande  
    OP
       2016-10-09 13:31:54 +08:00 via Android
    @gushengren 没搞定。。。
    yylu123
        58
    yylu123  
       2016-10-10 16:04:13 +08:00
    @Coande 兄弟解决了吗,我也有类似的视频想破解。特地注册了个帐号来求助。
    Coande
        59
    Coande  
    OP
       2016-10-10 19:04:34 +08:00
    @yylu123 没有 (⊙﹏⊙)b
    Coande
        60
    Coande  
    OP
       2016-10-10 19:05:31 +08:00
    @qw0258 有结果没有。。。
    qw0258
        61
    qw0258  
       2016-10-11 09:16:50 +08:00
    @Coande 我今天试试
    yylu123
        62
    yylu123  
       2016-10-11 13:40:39 +08:00
    @qw0258 你好 我发了一个邮件到你 gmail 邮箱了,帮忙看看,不胜感激。
    qw0258
        63
    qw0258  
       2016-10-11 19:28:18 +08:00
    @Coande http://imgur.com/a/oJEJA

    你百度云盘压缩包里的 key 已经过了生存时间了。 通过另外一个办法试了试。
    qw0258
        64
    qw0258  
       2016-10-11 19:29:27 +08:00   ❤️ 1
    yylu123
        65
    yylu123  
       2016-10-12 12:49:51 +08:00
    @qw0258 http://pan.baidu.com/s/1jHBywvG
    你好 这个能不能帮我看看。不胜感激。
    wxysystem
        66
    wxysystem  
       2016-10-12 17:22:10 +08:00
    @qw0258 51cto 手机 app 里面的视频的 m3u8 文件内没有 key ,能解吗
    Coande
        67
    Coande  
    OP
       2016-10-12 18:23:49 +08:00 via Android
    @qw0258 这个不是我要的视频。 key 会过期吗?改系统时间不行吗?
    qw0258
        68
    qw0258  
       2016-10-12 21:27:01 +08:00
    @Coande KEY 会过期。我也不知道你的系统时间是什么时候啊。
    yylu123
        69
    yylu123  
       2016-10-13 21:07:34 +08:00
    @qw0258 能帮我看看吗,不胜感激,可有偿。
    qw0258
        70
    qw0258  
       2016-10-14 09:20:44 +08:00
    @yylu123 你网盘那个链接不就是 新东方的客户端的加密 hls.密钥加密了
    yylu123
        71
    yylu123  
       2016-10-14 19:28:51 +08:00
    @qw0258 是新东方的,离线后不用客户端要怎么看?
    Coande
        72
    Coande  
    OP
       2016-10-14 21:29:05 +08:00 via Android
    @qw0258 时间是发帖时
    coldsun123
        73
    coldsun123  
       2016-10-22 11:29:47 +08:00
    我也遇到同样的问题,只不过我的没有 IV KEY 文件是直接浏览器访问得到 12 位数字,搞了一天没有搞定 QW0258 能不能帮下忙 我 QQ2331549
    coldsun123
        74
    coldsun123  
       2016-10-22 11:31:13 +08:00
    是 16 位,哈哈,打错了
    kai910106440
        75
    kai910106440  
       2016-12-15 16:37:42 +08:00 via Android
    @qw0258 跟他们同样的需求,求帮忙
    Coande
        76
    Coande  
    OP
       2016-12-15 17:30:26 +08:00 via Android
    @kai910106440 你要下载啥,可能我可以帮到你
    kai910106440
        77
    kai910106440  
       2016-12-15 19:50:52 +08:00 via Android
    @Coande 名称就是我 qq 。要不你加我吧。或者我加你,细聊。新东方的在线视频,你懂我的
    Coande
        78
    Coande  
    OP
       2016-12-15 20:49:37 +08:00
    @kai910106440 加不了你,邮件吧: e12e#qq.com
    kai910106440
        79
    kai910106440  
       2016-12-15 21:09:51 +08:00 via Android
    @Coande e12e#qq.com 还是 [email protected] ??
    Coande
        80
    Coande  
    OP
       2016-12-16 08:38:45 +08:00 via Android
    @kai910106440 后者~
    sunnyzhi
        81
    sunnyzhi  
       2017-01-10 11:34:08 +08:00
    各位别价意,我在这里搭个便车。
    有个在线的音频文件想抓下来,抓包后下了一堆 ts 文件和一个 key 文件,但不知如何解密合并,求指引

    m3u8 文件内的前几行内容如下,共有 29 个 ts 文件。


    #EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-TARGETDURATION:11
    #EXT-X-ALLOW-CACHE:NO
    #EXT-X-MEDIA-SEQUENCE:1
    #EXT-X-KEY:METHOD=AES-128,URI="https://mtgstream.now.com/httpstreamer/getHLSKey/0350e19dd12f222602d947a132aa2182ddba7925/VAWM02024516-HD.key",IV=0x00000000000000000000000000000001
    #EXTINF:10.007800,
    https://mtgstream.now.com/httpstreamer/getHLSSegment/AUDIO/0350e19dd12f222602d947a132aa2182ddba7925/VAWM02024516-HD-1.ts
    #EXTINF:10.007800,
    https://mtgstream.now.com/httpstreamer/getHLSSegment/AUDIO/0350e19dd12f222602d947a132aa2182ddba7925/VAWM02024516-HD-2.ts
    #EXTINF:9.984589,




    @larvata 使用 ffmpeg 的方法能否说得详细点,是修改原来 m3u8 还是另外写一个 txt 的 list ?谢谢

    @qw0258 这个 m3u8 文件的 vi 值是否必须要有的呢?

    谢谢各位
    larvata
        82
    larvata  
       2017-01-10 14:28:37 +08:00
    @sunnyzhi
    下载 key 保存到本地
    修改这个 m3u8 文件中 key 的地址 改成本地路径
    然后用我那个 gist 里的方法执行 ffmpeg
    sunnyzhi
        83
    sunnyzhi  
       2017-01-10 14:47:52 +08:00
    我把 key 放到本地硬盘 F:/VAWM02024516-HD.key ,在 m3u8 是这样修改吗?还是写本地 localhost 127.0.0.1 ?,另外 ts 文件要不要先保存到本地硬盘呢?

    修改后的 m3u8 :

    #EXT-X-KEY:METHOD=AES-128,URI="F:/VAWM02024516-HD.key",IV=0x00000000000000000000000000000001
    liujixianff8
        84
    liujixianff8  
       2017-02-22 21:21:03 +08:00
    @sunnyzhi 您好!您的问题解决了吗?我也遇到了同样的问题。请您赐教。我看了一篇文章,但是毫无结果。该文是在 http://blog.csdn.net/blueboyhi/article/details/40107683
    sunnyzhi
        85
    sunnyzhi  
       2017-02-23 17:14:27 +08:00
    @liujixianff8
    我是按这个方法( http://dola.xinfan.org/?p=549 )操作的,可行。
    1.按 m3u8 的内容下载好 key 和 ts 文件,
    2.使用 hexdump 工具 dump 出 key ,使用 openssl 进行解密,然后再使用 ffmpeg 进行文件合并.
    怕麻烦用 python 写个脚本就好了。

    但又遇到新问题,有的 m3u8 里没有 key 文件,可能这个 key 内置在客户端里了,不知怎么破,有高手指引下吗?
    liujixianff8
        86
    liujixianff8  
       2017-02-23 20:09:26 +08:00
    @sunnyzhi 您好,您和我的问题类似于 yylu123 的问题。我下载了 yylu123 的百度网盘中的文件,总大小为 25.1MB ,共 68 个文件,含扩展名为 ts 的文件 66 个、 index.m3u8 和 vodkey.bin ,我进行了不少的尝试,都没有播放成功。在咱们这个交流组中,有个叫 qw0258 的高手,头像是个老头儿,教授样子,很严肃。 qw0258 发出了一幅图,图中有新东方在线的字样,我的判断是, qw0258 把 yylu123 的问题解决了。 qw0258 这个老头技术高,底蕴深。由于我是一个菜鸟,水平极低,高深的 qw0258 理我吗?
    liujixianff8
        87
    liujixianff8  
       2017-02-23 20:26:28 +08:00
    @sunnyzhi 您好,将多个 ts 文件快速合成一个 ts 文件的方法,详见 http://jingyan.baidu.com/article/ed15cb1b5c4c781be3698116.html ,我试过,很好用。
    liujixianff8
        88
    liujixianff8  
       2017-02-23 21:57:24 +08:00
    @sunnyzhi 您好,我下载了 Coande 的百度网盘中的文件,并与 yylu123 的文件进行了对比,两者的 ts 格式文件相同,不同的是前者中有 index.m3u8 、 vodkey.bin ,后者中有 video.m3u8 、 key.hxk ,交流组的 qw0258 解决了 Coande 的问题,我想 qw0258 也能解决 yylu123 的问题。佩服 qw0258 。
    Coande
        89
    Coande  
    OP
       2017-02-23 23:34:15 +08:00
    @liujixianff8 解决我的问题了?哪个讨论组?
    liujixianff8
        90
    liujixianff8  
       2017-02-24 20:16:07 +08:00
    @Coande 您好!在本讨论组中,往上看,有个叫 qw0258 的高手给了您回复, qw0258 贴出了一幅图,图中有新东方在线的字样。另外,您的头像很有创意。
    Coande
        91
    Coande  
    OP
       2017-02-25 09:18:47 +08:00
    @liujixianff8 噢~这就是你说的讨论组~谢谢赞赏~
    liujixianff8
        92
    liujixianff8  
       2017-03-04 21:49:43 +08:00
    @sunnyzhi 您好!我是一名高中学生,没有一点的编程基础。按照您给我介绍的办法,我还是一无所获。经网上查, hexdump 是一个查看二进制数的工具,可怜的我不会用; openssl 中都是代码,我也看不懂, ffmpeg 是用来处理多种媒体的,我也没接触过。您能不能教教我,若您没有时间,能不能把您说的方法说得细致些。帮助与否,真诚谢您。
    qw0258
        93
    qw0258  
       2017-03-08 18:21:41 +08:00   ❤️ 1
    @liujixianff8 熟能生巧,深入研究,就会发现 AES128 很容易。现在大部分网站,依旧是原生 hls ,难度都不是高。最近很多人联系我,什么 csdn , 51cto , edusoho 等 hls 解密合并,都没有对 hls 创新,没难度。反倒是某些视频云平台开始在原生基础上衍生出新玩意,比如我现在自己采用的 polyv 点播, app 端加密已经服务器加密校验了 key , key 已经不是 16 位了,难度挺大,最近正在突破,希望能搞定,提升自己的技能。
    huaderui
        94
    huaderui  
       2017-03-11 10:15:52 +08:00
    @sunnyzhi 你说的这些工具怎么用啊?这是 py 代码吗?有没有软件啊,还有在 linux 下怎么操作啊
    huaderui
        95
    huaderui  
       2017-03-11 14:41:25 +08:00
    @YanwenSun 工具能不能发给我啊
    huaderui
        96
    huaderui  
       2017-03-11 19:32:55 +08:00
    @qw0258 求批量解密 ts 的方法。有软件最好了。
    Coande
        97
    Coande  
    OP
       2017-03-12 12:09:06 +08:00
    @qw0258 大神,能不能看下邮箱给我回个邮件呢?
    qw0258
        98
    qw0258  
       2017-03-14 09:22:41 +08:00
    @huaderui TS 合并工具网上资源很多,自己找找就行
    huaderui
        99
    huaderui  
       2017-03-14 10:39:02 +08:00
    @qw0258 合并不是问题,问题是批量解密 ts
    eeyykk
        100
    eeyykk  
       2017-03-28 21:49:03 +08:00
    @qw0258 我自己搞了一阵,现在有 m3u8 文件和 key 文件,还有一堆.ts 文件,请问大神能帮我解答一下接下来该怎么解密吗?加密方法在 m3u8 文件里面写了,是 aes-128
    1  2  
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2791 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 13:45 · PVG 21:45 · LAX 06:45 · JFK 09:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.