文章引用于 ffmpeg 合并 m3u8 ts key 文件 解决 Invalid data found when 错误

如果文件没加密,可以直接用 ffmpeg -i xxx.m3u8 -vcodec copy -acodec copy xxx.mp4

之前也写过一篇文章,使用ffmpeg下载 M3U8 资源的视频。今天接着来拓展一下这个下载视频

寻找资源

要想下载 M3U8 的资源,最起码得找到下载的链接,可能这个非常好找了,找到控制台的 NetWork 查看请求就行了。
可是这有一点非常不好的就是,使用 ffmpeg 去下载,只能一个个资源去请求,并且非常慢,经常还有可能请求失败(资源是可以访问到的,可是 ffmpeg 就卡住了)

解决方案:chrome 插件 猫抓
当他嗅探到资源后,就会都列出来

而我通常用 IDM 把列出的资源一下子都下载下来

资源合并为 mp4

留意上面的图,这段 m3u8 是一个 key 的文件,就是加密的文件。还好 ffmpeg 可以自动识别 key 文件并且解密文件,可是这一步有点曲折

我们先把 m3u8 的源文件下载下来,把 ts 文件都下载好,放在同一个文件夹

然后打开 m3u8 文件,找到 key.key 的配置,改为线上的 key,而不是读取本地的 key 。虽然我到现在也没搞懂这是为什么~

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="https://xxxx/key.key" # 注意URI这里,改成线上的key的域名链接
#EXTINF:3.336667,
#EXTINF:1.668333,
clvHz13123499.ts
#EXTINF:2.035367,
clvHz13123500.ts
#EXT-X-ENDLIST

解密文件,合并 ts 为 mp4

使用命令

ffmpeg -allowed_extensions ALL -protocol_whitelist "file,http,crypto,tcp" -i index.m3u8 -c copy out.mp4

运行后可能会发现报错:

看到这个错误其实只需要在 protocol_whitelist 后面补上https。后面报错提示什么就补上什么,因为对应的 m3u8 需要这几种下载方式

于是命令改成如下:

ffmpeg -allowed_extensions ALL -protocol_whitelist "file,http,crypto,tcp,https" -i index.m3u8 -c copy out.mp4

如果还发现报错是:Invalid data found when 这样的,就是因为你的 key 没有改成线上域名的 key,改了重新试下就行了

然后发现 ffmpeg 合并的飞快,比起直接用 ffmpeg 下载快多了!

ffmpeg合并M3U8加密的视频 ts 合并为 mp4相关推荐

  1. ffmpeg——同时剪辑多个视频并合并

    关于ffmpeg的介绍可以参看:FFMPEG视音频编解码零基础学习方法 官网:https://ffmpeg.org/download.html 目录 基本语法 功能需求 代码实现 效果展示 基本语法 ...

  2. Python使用ffmpeg下载m3u8拼接为视频

    一.安装ffmpeg环境 1.下载ffmpeg ffmpeg官方地址 下载地址(github) 64位点击这里直接下载 2.解压缩并添加环境变量 选择计算机的版本,下载并解压缩,然后将bin目录添加到 ...

  3. 使用 ffmpeg 下载 m3u8 视频,linux 后台运行 ffmpeg

    使用 ffmpeg 下载 m3u8 视频,linux 后台运行 ffmpeg 下载 m3u8 现在的视频大多数都是 m3u8 格式,网上的介绍也不少,那我直接记录一下下载的方法 方法 1 M3U8-D ...

  4. 视频合成软件哪个好,怎么把多个视频快速合并成一个视频

    在观看抖音短视频时,进场会碰到视频中用类似的视频作比较,其实就是把单个视频快速合并成一个视频,这种方法在很多时候都需要用的,也可以将一些类似或者有趣的短视频拼凑在一起观看效果更佳.以下就是使用视频合成 ...

  5. php把视频合成画中画,视频画面合并软件-怎么把多个视频合并到一个视频画面里面,制作多画面视频播放效果...

    视频画面合并软件-怎么把多个视频合并到一个视频画面里面,制作多画面视频播放效果 平时我们在网上经常可以看到很多视频同一个视频画面带有很多个不同的视频在同时播放,这是怎么做到的呢?这个也叫视频画中画,用 ...

  6. ffmpeg合并m3u8 ts key文件 解决Invalid data found when processing input错误

    首先我先说明一下我的使用场景和错误原因: 我使用IDM从网站中批量下载ts文件,然后下载对应的一个.m3u8文件(ts文件列表和加密信息的描述)和一个key.key文件(秘钥).以上文件全部保存在同一 ...

  7. python爬取网站m3u8视频,将ts解密成mp4,合并成整体视频

    一些网站会提供m3u8视频地址,以供下载观看.或者一些网站经过分析后发现是使用m3u8格式进行播放的,这时使用m3u8的地址链接就可以下载到相应的视频. 一.关于m3u8:(https://blog. ...

  8. 下载m3u8视频及在Linux下将ts合并为mp4格式

    背景 在爬取视频时偶尔会遇见m3u8格式的视频链接,视频下载后为多个ts文件,下面分享如何下载m3u8格式视频以及在Linux下将ts文件合成mp4 文件. m3u8格式链接解析 url = xxxx ...

  9. 多线程下载m3u8影视资源 通过ffmpeg合并ts文件为mp4

    需要用到的ffmpeg,下载地址:Download FFmpeg  下载以后的目录. 合并.转换.切片都用到了ffmpeg.exe,其它两个我暂时没用到. <dependency>< ...

最新文章

  1. 201621123030《Java程序设计》第4周学习总结
  2. 理解 angular2 基础概念和结构 ----angular2系列(二)
  3. C++中的模板template
  4. c语言程序设计电大作业,电大C语言程序设计第1234次作业及答案
  5. 《C++ Primer Plus》学习笔记——C++程序创建到运行的整个过程
  6. LCA 求 树中两个点的距离
  7. spring @import注解使用场景
  8. 20w7珠led驱动电源电路图_三种常用的LED驱动电源电路图详解!
  9. Unity3D的断点调试功能
  10. TTL expired in transit--问题篇~
  11. JAVA环境指定xms512_【JAVA学习】java虚拟机内存配置,-Xss256m -Xms512m -Xmx800m -XX:MaxPermSize=512m...
  12. ThinkPhp框架:父类及表单验证
  13. Java服务器内存过高CPU过高问题排查
  14. ubuntu启动脚本的一些笔记
  15. Linux操作系统中sed工具常见用法
  16. Detecting Causality in Complex Ecosystems(检测复杂生态系统中的因果关系附件)
  17. Python 比较大小
  18. 在家里如何赚钱?5个在家赚钱的方法,让你日进斗金!
  19. c语言中换行符与回车符的区别,C语言中换行符与回车符的区别
  20. vmware虚拟机出现此电脑无法运行win11,虚拟机中安装win11系统教程

热门文章

  1. AliSQL 20171010版本发布 Sequence兼容PostgreSQL/Oracle语法和升级TLSv1.2
  2. FPGA的设计艺术(10)HDL是软件还是硬件?
  3. 重磅!VS Code网页版来了!无需任何安装,如丝般顺滑!
  4. 终于,Python 也可以写前端了
  5. mysql中如何获取交集
  6. easyx图形库----贴图
  7. alter 增加主键
  8. 帮我写一篇关于DTW算法的综述
  9. c#httpclient 代理_c# – HttpClient并使用代理 – 不断获得407
  10. lcd开机流程图_lcd1602显示流程图