macos - 如何使用 ffmpeg 批量/顺序下载 m3u8 文件?
问题描述
我目前在 Mac 上使用以下内容单独下载 m38u 播放列表:
ffmpeg -i <"URL with m3u8"> -codec copy output.ts
如果我想做多个文件,我目前从单独的终端窗口进行。
我想做的是,在一个实例中,告诉 ffmpeg 例如从 .txt 文件中获取 URL 并按顺序下载它们,每个都有一个连续的输出名称(它们都可以放在同一个输出文件夹中)。
m3u8 文件中的示例代码:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:9
#EXTINF:8.333333,
segment00000.ts
#EXTINF:8.333333,
segment00001.ts
#EXTINF:8.333333,
segment00002.ts
#EXTINF:5.000000,
segment00003.ts
#EXTINF:8.333333,
segment00004.ts
#EXTINF:8.333333,
segment00005.ts
我当然安装了自制软件-我是新手,所以不确定这是否意味着我正在积极“使用”它来管理软件包
包含 m3u8 地址列表的文件当前位于 /Users/username/Downloads/m38u 保存 list.txt,如下所示:
https://streaming.imvbox.com/media/2825/1280x800/1280x800.m3u8
https://streaming.imvbox.com/media/2298/1280x800/1280x800.m3u8
https://streaming.imvbox.com/media/2822/1280x800/1280x800.m3u8
https://streaming.imvbox.com/media/2821/1280x800/1280x800.m3u8
https://streaming.imvbox.com/media/2820/1280x800/1280x800.m3u8
https://streaming.imvbox.com/media/2088/1280x800/1280x800.m3u8
但到目前为止,这个文件只是一个存储链接的地方——除了从中复制链接之外,我没有使用它任何东西。
解决方案
因此,我会将以下内容保存在您的HOME目录中grabAll
:
#!/bin/bash
HoldList="/Users/username/Downloads/m38u hold list.txt"
index=0
while read line ; do
echo ffmpeg -i $line -codec copy output-${index}.ts
((index=index+1))
done < "$HoldList"
注意:如果您使用TextEdit
,请确保单击菜单选项Format
->Make Plain Text
然后你可以启动终端并运行:
bash grabAll
并查看它是否正在生成您想要的命令类型。它目前没有做任何事情,它只是在屏幕上说它会做什么。如果它看起来不错,您只需echo
从第 3 行到最后一行删除单词并再次运行它。
样本输出
ffmpeg -i https://streaming.imvbox.com/media/2825/1280x800/1280x800.m3u8 -codec copy output-0.ts
ffmpeg -i https://streaming.imvbox.com/media/2298/1280x800/1280x800.m3u8 -codec copy output-1.ts
ffmpeg -i https://streaming.imvbox.com/media/2822/1280x800/1280x800.m3u8 -codec copy output-2.ts
ffmpeg -i https://streaming.imvbox.com/media/2821/1280x800/1280x800.m3u8 -codec copy output-3.ts
ffmpeg -i https://streaming.imvbox.com/media/2820/1280x800/1280x800.m3u8 -codec copy output-4.ts
ffmpeg -i https://streaming.imvbox.com/media/2088/1280x800/1280x800.m3u8 -codec copy output-5.ts
推荐阅读
- android - 在 Chaquopy 上从 ExternalStorage 运行文件
- javascript - nodejs递归调用栈报错,但是代码应该没问题
- css - django 模板迭代列表:如何为每个项目创建唯一的叠加弹出窗口?
- asp.net - 运行所选代码生成器时出错:'值 -1 超出 [0,2147483647] 的可接受范围。参数名称:值'
- c# - C#没有线程?
- java - 下面使用 (? extends aClass) 的代码让我感到困惑
- python-3.x - 如何将字符串列表转换为集合列表?
- python - 熊猫,Python中“Jul 07, 2019”的日期解析代码
- rust - 使用 STM32f1xx_hal crate 时借用移动值错误
- windows - 只有在管理员组中才能模拟没有密码的用户