1
ysc3839 2022-12-21 00:20:46 +08:00 via Android
改代码?
|
2
icoming 2022-12-21 00:40:52 +08:00
你访问那个图片 URL 看看,提示找不到。
|
3
mikewang 2022-12-21 00:59:53 +08:00 1
链接已经失效了。换了一集试了下,这个视频站非常的狡猾,在 TS 片段前加上了 PNG 头部,迷惑图床,从而利用 CDN 的流量。
显然 ffmpeg 是被骗了,无法解码;而 Chromium 没有被骗,所以浏览器可以正常播放。 这个时候,需要手动下载 m3u8 的内容,然后向 FFmpeg 指定格式即可。 wget https://....../../index.m3u8 grep '.png' index.m3u8 | xargs curl > video.ts ffmpeg -f mpegts -i video.ts -codec copy video.mkv |
4
mikewang 2022-12-21 01:06:42 +08:00
|
5
estk OP @mikewang #3
所以只能手动下载所有切片,没有 ffmpeg 的其它参数可以让它忽略这个 content-type 直接下载? |
6
jiulang 2022-12-21 09:10:06 +08:00
反向代理来修改
|
7
jifengg 2022-12-21 10:00:19 +08:00 3
我碰到过一些网站是这么搞的,但是,他不仅仅是只动了 content-type ,他文件存储的时候,就是在前面加了固定字节的 png 内容,所以 ffmpeg 去解码的时候会认为这是一个 png 图片。网页可以正常播放应该是内嵌的播放器做了处理。
我以前写过一个下载的脚本,用的笨方法就是自己解析 m3u8 文件,下载里面的文件,截掉前面的 n 个字节,再用 ffmpeg 合并。 |
8
Administrat0r 2022-12-21 10:43:48 +08:00 2
可以试试我蹭的这个项目 也是解决 png 的问题 https://github.com/orestonce/m3u8d
|
9
novolunt 2022-12-21 10:57:51 +08:00 via iPhone 1
反向代理图床,改请求头。另外 视频存什么操作
|
10
jeesk 2022-12-21 21:24:36 +08:00
简单的就是楼上的。否则直接去修改 ffmpeg 源码处理 reponse 的部分 。
|
11
mikewang 2022-12-22 01:26:06 +08:00
@estk #5 不能,FFmpeg 对于 m3u8 要使用 HLS 这个 demuxer ,而内部 segment 的 demuxer 则是自动判断的,没有提供指定 demuxer 的方法。如果一定要使用 ffmpeg ,则需要修改源码重新编译了。
|
12
Slurp 2022-12-22 11:52:00 +08:00
PR is welcome.
|
14
Kobayashi 2022-12-22 13:33:29 +08:00 via Android
给个地址?
|
15
AngryFootHair 2023-01-04 13:06:44 +08:00
@mikewang @estk @jifengg
刚刚试了下,123llq.com 123 浏览器 打开 网页 URL Base64: aHR0cHM6Ly9kaWFueWkubmcvcGFseS05VWpxQ1MtMS0xLmh0bWw= 这个页面,成功嗅探到了 m3u8 资源,点击就可以下载了。 |