如题,想问问 ffmpeg 能不能暂停正在进行的程序,然后关闭程序后,下次打开再继续上一次的进度

2020-03-10 17:00:39 +08:00
 Sagittarius32

问题起因是想下载 hls 流的视频,但视频时间太长,不一定能一次性下载完,所以萌生这个想法,但网上搜索资料后无果。 最主要是停止了程序之后,视频就直接成型了,再重新启动,又得重头再来~~尴尬

在此感谢路过的回答者~

{Sagittarius}

4159 次点击
所在节点    FFmpeg
12 条回复
ZavierXu
2020-03-10 17:09:31 +08:00
试试 Ctrl+Z 和 fg
lxk11153
2020-03-10 17:11:33 +08:00
按 q 退出完成已下载视频的保存,然后下次使用 -ss 调到指定时间
https://stackoverflow.com/a/57380683/10298463

ps: 没特殊要求可以使用 ts 格式保存文件呀,防止程序不正常退出导致已下载的无效 see /t/617970
KyonLi
2020-03-10 17:15:17 +08:00
HLS 是 live stream,这个需求就相当于无服务端支持实现任意时间点的直播回放
crella
2020-03-10 20:12:24 +08:00
hls 应该只是解析 m3u8 并下载、合并吧

我自己都写了个简单下载 m3u8 的工具。不难,gayhub 上一大堆。不需要依赖 ffmpeg
Rheinmetal
2020-03-10 21:26:43 +08:00
用支持断点续传的 m3u8 工具
Sagittarius32
2020-03-10 22:16:48 +08:00
@lxk11153 是 m3u8 输出保存成 ts 文件吗?然后再合并转 MP4 ?不过命令出错,能写个范例不?~下载中途退出保存已下载的视频,下次再指定时间也不是不可以,我也想过,这也只好是折中办法,最后还要把视频合并在一起。谢谢你的回答啦~
@crella 嗯,我找找看,或者大佬来个推荐哈哈?
@Rheinmetal 这个没怎么了解过哎,有什么类似工具么??我看到有些人用 idm,不过不知道符不符合我的问题,因为没用过,只好实践一下了
crella
2020-03-10 22:55:43 +08:00
@Sagittarius32 你解析好 m3u8 文件,生成全部的文件连接,然后用 aria2 或者 curl 断点续传就可以啦。

比如 aria2,没下完而退出下载的文件,会出现同名.aria2 文件。检查是否存在同名的 ts 和同名的 aria2,即可判断三种状态:文件成功下载、文件暂停下载、文件未开始下载

我是菜鸟,如有错误敬请谅解。
crella
2020-03-10 22:58:08 +08:00
不过 m3u8 的那个格式有点难搞,以下情况都有

文件名.ts
/dir1/dir2/hls/文件名.ts
www.net.com/dir1/hls/文件名.ts

我也不能自动识别上述三个情况; github 上那些工具应该“智能”一点
Rheinmetal
2020-03-11 09:01:47 +08:00
IDM you-get 之类的工具的好处是可以自动解析部分站点(优酷 b 站等等
支持断点续传
问题是碰到不能解析的就很难受 就得自己搞了
如果能覆盖你的需求的话用起来很舒服
Rheinmetal
2020-03-11 09:03:39 +08:00
遇到不支持的站
idm 只能提需求了 you-get 之类开源工具可以自己上手写提取模块
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
Sagittarius32
2020-03-11 18:26:09 +08:00
@lxk11153 对哎,ts 直接播放
@crella
@Rheinmetal

已经用了一个比较笨的方法解决了,直接用了迅雷批量下载 ts 文件。主要懒得再下载其他工具,打算用电脑手头上的软件来解决。有空再研究研究大家说的软件和方法。再次感谢三位的回复啦~

此回复顺便用作结帖~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/651573

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX