加密后的ts文件不能直接合并或播放,需要使用key对每个ts文件进行解密。

分为两种情况:

(1).如果ts文件已经全部下载好,则可以直接在本地通过ffmpeg快速解密合并。

(2).如果ts文件没有下载好,则可以通过vlc直接下载整个视频,或者通过ffmpeg下载并转换。

无论是哪种情况,都要去视频源地址下载m3u8文件。如果可以下载key(有些网站加密方式比较严谨,不那么容易获取到key),把key文件也下载好。

下载m3u8文件的方式是去源地址网站,按F12找到m3u8文件,或者从右键-->网页源代码中找到地址。两种方式都试一试。

例如,从浏览器的F12中找:

这里能找到两个m3u8和一个key文件,都下载好。记事本打开两个m3u8,其中有一个包含了ts文件列表,这个m3u8文件是我们所需要的。例如我这里的是HdNz1kaz.m3u8文件,以下是一小部分内容。

#EXTM3U

#EXT-X-VERSION:3

#EXT-X-TARGETDURATION:13

#EXT-X-MEDIA-SEQUENCE:0

#EXT-X-KEY:METHOD=AES-128,URI="/20180125/NfJJpxIH/1482kb/hls/key.key"

#EXTINF:12.5,

/20180125/NfJJpxIH/1482kb/hls/GBDYO3576000.ts

#EXTINF:12.5,

/20180125/NfJJpxIH/1482kb/hls/GBDYO3576001.ts

#EXTINF:12.5,

/20180125/NfJJpxIH/1482kb/hls/GBDYO3576002.ts

1.情形一:ts文件已经下载好

假如我的ts文件全部下载好,放在e:\20180125\目录下。

同时假设key文件已经下载好,也放在e:\20180125\目录下。

修改m3u8文件中key的uri路径和ts文件的路径为本地路径。下面是HdNz1kaz.m3u8文件修改后的一小部分内容

#EXTM3U

#EXT-X-VERSION:3

#EXT-X-TARGETDURATION:13

#EXT-X-MEDIA-SEQUENCE:0

#EXT-X-KEY:METHOD=AES-128,URI="e:/20180125/key.key"

#EXTINF:12.5,

e:/20180125/GBDYO3576000.ts

#EXTINF:12.5,

e:/20180125/GBDYO3576001.ts

#EXTINF:12.5,

e:/20180125/GBDYO3576002.ts

然后用ffmpeg进行合并。

ffmpeg -allowed_extensions ALL -i HdNz1kaz.m3u8 -c copy new.mp4

我一般会把ts文件下载好,因为用下载工具(比如迅雷)下载比ffmpeg或者vlc下载速度要快的多,因为这两个工具都是串行下载的。

2.情形二:ts文件没有下载

同样,下载好m3u8文件(key可下载可不下载,因为可以直接在m3u8文件中指定key的网络uri路径)。

修改m3u8文件中key和ts的uri路径。下面是HdNz1kaz.m3u8文件修改后的一小部分内容。

#EXTM3U

#EXT-X-VERSION:3

#EXT-X-TARGETDURATION:13

#EXT-X-MEDIA-SEQUENCE:0

#EXT-X-KEY:METHOD=AES-128,URI="http://www.example.com/20180125/key.key"

#EXTINF:12.5,

http://www.example.com/20180125/GBDYO3576000.ts

#EXTINF:12.5,

http://www.example.com/20180125/GBDYO3576001.ts

#EXTINF:12.5,

http://www.example.com/20180125/GBDYO3576002.ts

然后,使用ffmpeg下载并合并。

ffmpeg -i HdNz1kaz.m3u8 -c copy new.mp4

3.openssl解密ts文件

假如key的值为:asdjklfjaskdlf key的IV值(m3u8文件中已经记录)为"0x0123456789abcdef0123456789abcdef"

则解密 GBDYO3576000.ts的方法为:

strkey=asdjklfjaskdlf

iv=0x0123456789abcdef0123456789abcdef

openssl aes-128-cbc -d -in GBDYO3576000.ts -out out_0.ts -nosalt -K $strkey -iv $iv

4.使用vlc下载并保存ts文件

播放列表的下方有播放进度条,它表示下载的进度,不要去动,也不要去点击播放、暂停、停止等,放着别管就是了,直到播放进度条完成了,就表示文件合并完成。去文件保存位置的地方看看就知道了。

ffmpeg报错

错误:

Malformed AAC bitstream detected: use the audio bitstream filter 'aac_adtstoasc' to fix it ('-bsf:a aac_adtstoasc' option with ffmpeg)

需要在合并视频的时候,加上-bsf:a aac_adtstoasc

ffmpeg -i index.m3u8 -c copy -bsf:a aac_adtstoasc new.mp4

ffmpeg -i index.m3u8 -c:a copy -bsf:a aac_adtstoasc new.mp4

错误:

Codec for stream 0 does not use global headers but container format requires global headers Codec for stream 1 does not use global headers but container format requires global headers

需要加上global header

ffmpeg -i index.m3u8 -c:a copy -flags +global_header new.mp4

hls二次加密 m3u8_加密的m3u8、ts文件合并相关推荐

  1. avi 生成 m3u8/ts 文件

    使用ffmpeg 下载:FFmpeg 点我进入官网 下载后解压文件,并把bin 目录 添加到环境变量中,步骤省略 测试环境变量  cmd 任意目录 ffmpeg.exe -version 生成m3u8 ...

  2. linux将ts文件合并,生成ts文件 Linux下生成HLS所需的.ts和.m3u8文件

    要想利用HLS来实现视频的播放,就得需要将一个完整的视频文件切割成多个ts视频流,然后利用m3u8的索引文件来播放. 安装ffmpeg $ apt-get install ffmpeg $ apt-g ...

  3. Python爬取m3u8格式视频并解密ts文件合并转为mp4格式

    一. m3u8是什么格式 m3u8是苹果公司推出的视频播放标准,是m3u的一种,只是编码格式采用的是UTF-8. m3u8准确来说是一种索引文件,使用m3u8文件实际上是通过它来解析对应的放在服务器上 ...

  4. 猫抓m3u8,遇到该媒体已加密,请注意下载key文件

    用到工具: 带有猫抓插件浏览器; 迅雷; 安装ffmpeg; 方案: 一.下载.ts视频文件.m3u8文件.key文件; 二.TS文件合并; 具体实施: 介绍m3u8加密: 简单一点说m3u8加密技术 ...

  5. .m3u8视频文件的初步探索

    我们在做数据抓取的时候遇到后缀是.m3u8文件的几率特别大,一般都是加密之后的视频流(ts文件),具体为什么要这么做,说是加快了速度,细节这里不剖析. 主要讲一下如何根据.m3u8文件来获取到我们需要 ...

  6. 视频网站的工作原理-->m3u8视频文件的提取与解析(理论)

    目录 一.视频网站的工作原理 二.抓取视频步骤 2.1.找到m3u8文件 2.2.把m3u8下载到ts文件 2.3.ts文件合并为mp4文件 一.视频网站的工作原理 古老的视频网站的视频一般是在源码放 ...

  7. 由M3U8(TS)或MPD(M4S)获取视频

    现在许多视频网站都将视频切片进行实时流传输.我遇到过两种描述文件:m3u8和mpd.下面分别谈谈怎么由m3u8(ts)或mpd(m4s)获取视频. 1.m3u8 方法一:用ffmpeg提取.合并m3u ...

  8. m3u8+ts模式的视频采集(看看新闻网)

    文章目录 前言 调研 代码处理 前言 最近有一个采集看看新闻网指定电视栏目的需求,正好是m3u8+ts的模式,就写个文章记录一下 调研 去网页上看了一眼传过来的是一堆ts文件和一个m3u8文件 点开m ...

  9. 根据m3u8合并ts文件

    前言 本文使用Python3.6根据m3u8文件里的ts文件顺序进行ts文件的合并,最终将生成一个完整的ts文件.如果你的电脑上没有安装Python,我已经将Python文件打包成了exe文件,地址见 ...

最新文章

  1. html自动获取用户位置,HTML5 - 使用Geolocation(地理定位)获取用户的位置
  2. android n AES加密,AndroidP AES 加密适配
  3. Lua语言学习-垃圾回收
  4. 对ASCII文件的操作
  5. 第四届AutoDL挑战赛——AutoSpeech2019正式开赛
  6. hdu 1879 继续通畅工程(最小生成树)
  7. 2015-03-19 My Appointment text read case
  8. 美国劳工部揭露中国女人大数据,看完彻底傻眼了……
  9. DUMPE2FS(8)
  10. apache2配置优化以及性能测试小结
  11. “头脑王者”爆红被封,微信小程序迎来蛮荒期
  12. python安卓下载-QPython下载
  13. WebApi生成接口文档
  14. 好消息!电商工具箱API详情接口,更全面
  15. win10无线投屏花屏
  16. html5 自动连线,基于html5二个div 连线
  17. linux下分配磁盘空间,linux如何分配磁盘空间
  18. 查询学过“叶平”老师所教的所有课的同学的学号、姓名
  19. 哪些原因会导致TFT LCD显示屏偏色?
  20. 数据库选课系统mysql_数据库设计(学生选课系统).doc

热门文章

  1. 关于C语言中.h和.c文件
  2. Tomcat 爆出高危漏洞及修复
  3. .Net Core之OData
  4. Apache DolphinScheduler 助力 Trino 快速实现湖仓一体数据建设
  5. 无法访问计算机 库未注册,64位操作系统下用Microsoft.Jet.OLEDB.4.0出现未注册错误...
  6. c语言程序设计教程北京大学,《C语言程序设计教程》课件-北京大学-第5章.ppt
  7. Android--面试题总结
  8. Java高效率复习-线程基础[线程]
  9. C语言实验题――一元二次方程 II
  10. 黄奕出轨密会富商老公发飙怒骂 前夫补刀:淫猫忘不了偷腥