问题起因是想下载 hls 流的视频,但视频时间太长,不一定能一次性下载完,所以萌生这个想法,但网上搜索资料后无果。 最主要是停止了程序之后,视频就直接成型了,再重新启动,又得重头再来~~尴尬
在此感谢路过的回答者~
{Sagittarius}
1
ZavierXu 2020-03-10 17:09:31 +08:00
试试 Ctrl+Z 和 fg
|
2
lxk11153 2020-03-10 17:11:33 +08:00 1
按 q 退出完成已下载视频的保存,然后下次使用 -ss 调到指定时间
https://stackoverflow.com/a/57380683/10298463 ps: 没特殊要求可以使用 ts 格式保存文件呀,防止程序不正常退出导致已下载的无效 see /t/617970 |
3
KyonLi 2020-03-10 17:15:17 +08:00 1
HLS 是 live stream,这个需求就相当于无服务端支持实现任意时间点的直播回放
|
4
crella 2020-03-10 20:12:24 +08:00 via Android 1
hls 应该只是解析 m3u8 并下载、合并吧
我自己都写了个简单下载 m3u8 的工具。不难,gayhub 上一大堆。不需要依赖 ffmpeg |
5
Rheinmetal 2020-03-10 21:26:43 +08:00 1
用支持断点续传的 m3u8 工具
|
6
Sagittarius32 OP @lxk11153 是 m3u8 输出保存成 ts 文件吗?然后再合并转 MP4 ?不过命令出错,能写个范例不?~下载中途退出保存已下载的视频,下次再指定时间也不是不可以,我也想过,这也只好是折中办法,最后还要把视频合并在一起。谢谢你的回答啦~
@crella 嗯,我找找看,或者大佬来个推荐哈哈? @Rheinmetal 这个没怎么了解过哎,有什么类似工具么??我看到有些人用 idm,不过不知道符不符合我的问题,因为没用过,只好实践一下了 |
7
crella 2020-03-10 22:55:43 +08:00
@Sagittarius32 你解析好 m3u8 文件,生成全部的文件连接,然后用 aria2 或者 curl 断点续传就可以啦。
比如 aria2,没下完而退出下载的文件,会出现同名.aria2 文件。检查是否存在同名的 ts 和同名的 aria2,即可判断三种状态:文件成功下载、文件暂停下载、文件未开始下载 我是菜鸟,如有错误敬请谅解。 |
8
crella 2020-03-10 22:58:08 +08:00
不过 m3u8 的那个格式有点难搞,以下情况都有
文件名.ts /dir1/dir2/hls/文件名.ts www.net.com/dir1/hls/文件名.ts 我也不能自动识别上述三个情况; github 上那些工具应该“智能”一点 |
9
Rheinmetal 2020-03-11 09:01:47 +08:00 via Android
IDM you-get 之类的工具的好处是可以自动解析部分站点(优酷 b 站等等
支持断点续传 问题是碰到不能解析的就很难受 就得自己搞了 如果能覆盖你的需求的话用起来很舒服 |
10
Rheinmetal 2020-03-11 09:03:39 +08:00 via Android
遇到不支持的站
idm 只能提需求了 you-get 之类开源工具可以自己上手写提取模块 |
11
lxk11153 2020-03-11 11:02:06 +08:00
@Sagittarius32 #6 没特殊要求不用转 mp4 呀,ts 文件就可以了,播放器支持的呀
ps: 还是找 m3u8 多线程断点续传的下载器为妙,比如 Windows 下 https://github.com/nilaoda/N_m3u8DL-CLI Python 下 https://github.com/tosobright/m3u8-Downloader Java 下 https://github.com/Jay-Goo/M3U8Downloader |
12
Sagittarius32 OP @lxk11153 对哎,ts 直接播放
@crella @Rheinmetal 已经用了一个比较笨的方法解决了,直接用了迅雷批量下载 ts 文件。主要懒得再下载其他工具,打算用电脑手头上的软件来解决。有空再研究研究大家说的软件和方法。再次感谢三位的回复啦~ 此回复顺便用作结帖~ |