记录m3u8变成图片的解决办法

在你访问一个视频网站会有这样的,m3u8直接变成0的图片了
在这里插入图片描述
在这里插入图片描述
这时需要我们进入断点
在这里插入图片描述
在这里插入图片描述
这里可以看出这个请求是用来获取 hls流 的 index 文件的, 格式是 application/vnd.apple.mpegurl ,而且可以看出response payload 的 String 是 被 gzip压缩过的,解压缩过后,可以看出是标准的 m3u8 文件格式:
在这里插入图片描述
这里我想起来之前论坛说的 批量修改 ts 文件后缀 为 png 上传公共图床的帖子,我下载了其中一个 png 文件下来 ,用Linux hexdump 命令查看文件头,发现确实有 png 文件头,说明不是简单改个后缀名完事的。 但是, 之后的内容就非常可疑了, 很类似 MPEG-TS 文件的packet格式
在这里插入图片描述
作为对比, 下面是一个标准的 mpeg-ts 文件头:
在这里插入图片描述
可以看到 png 文件除了开头的 212 字节以外, 其他都是符合 ts 文件的格式的,于是尝试 dd 命令删掉前面 212 字节:

dd if=0.1 of=output.ts bs=4 skip=53

打开 output.ts 文件,可以正常播放, ffmpeg 查看也是标准 mpegts 文件:
在这里插入图片描述
对于其他的 png 文件,发现也是同样的有 212 bytes 的无效headers,去掉之后同样可以播放。
在这里插入图片描述

总结: 所以网站是给 ts 视频文件添加 长度为 212 bytes 的文件头,把它伪装成 png 格式 ,然后客户端再以 二进制处理这个文件,去掉开头的 212 bytes,还原成标准的 ts 文件后,再在播放器里播放。

使用我下载在这里插入图片描述
器的话,会自动去除图片混淆头 https://www.52pojie.cn/thread-1374045-1-1.html

  • 10
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
支持下载 m3u8 链接或文件为 mp4 或 ts 格式,并提供丰富的命令行选项。m3u8 downloader 开源的命令行 m3u8/HLS/dash 下载器,支持普通 AES-128-CBC 解密,多线程,自定义请求头等。支持简体中文,繁体中文和英文,完全免费。 开源免费 m3u8 下载工具 m3u8 downloader 中文版开源免费 m3u8 下载工具 m3u8 downloader 中文版 m3u8 downloader 特色: 不支持优酷视频解密 支持AES-128-CBC加密自动解密 支持多线程下载 支持下载限速 支持断点续传 支持Master List 支持直播流录制(BETA) 支持自定义HTTP Headers 支持自动合并 (二进制合并或使用ffmpeg合并) 支持选择下载m3u8中的指定时间段/分片内容 支持下载路径为网络驱动器的情况 支持下载外挂字幕轨道、音频轨道 支持仅合并为音频 自动使用系统代理(可禁止) 提供SimpleG简易的GUI生成常用参数 命令行选项 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 N_m3u8DL-CLI.exe [OPTIONS] --workDir Directory 设定程序工作目录 --saveName Filename 设定存储文件名(不包括后缀) --baseUrl BaseUrl 设定Baseurl --headers headers 设定请求头,格式 key:value 使用|分割不同的key&value --maxThreads Thread 设定程序的最大线程数(默认为32) --minThreads Thread 设定程序的最小线程数(默认为16) --retryCount Count 设定程序的重试次数(默认为15) --timeOut Sec 设定程序网络请求的超时时间(单位为秒,默认为10秒) --muxSetJson File 使用外部json文件定义混流选项 --useKeyFile File 使用外部16字节文件定义AES-128解密KEY --useKeyBase64 Base64String 使用Base64字符串定义AES-128解密KEY --useKeyIV HEXString 使用HEX字符串定义AES-128解密IV --downloadRange Range 仅下载视频的一部分分片或长度 --liveRecDur HH:MM:SS 直播录制时,达到此长度自动退出软件 --stopSpeed Number 当速度低于此值时,重试(单位为KB/s) --maxSpeed Number 设置下载速度上限(单位为KB/s) --enableDelAfterDone 开启下载后删除临时文件夹的功能 --enableMuxFastStart 开启混流mp4的FastStart特性 --enableBinaryMerge 开启二进制合并分片 --enableParseOnly 开启仅解析模式(程序只进行到meta.json) --enableAudioOnly 合并时仅封装音频轨道 --disableDateInfo 关闭混流中的日期写入 --noMerge 禁用自动合并 --noProxy 不自动使用系统代理 --disableIntegrityCheck 不检测分片数量是否完整 m3u8 downloader 是一款由 .Net 开发的一个简单易用的 m3u8 下载器,现在很多视频网站的视频都分割成了小片段,其 m3u8 就是来记录这一堆地址的文件,使用本下载器可以快速的下载并合并成一个完整的视频文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值