如何使用 ffmpeg 批量/顺序下载 m3u8 文件?

2023-12-29

我目前在 Mac 上使用以下命令单独下载 m38u 播放列表:

ffmpeg -i <"URL with m3u8"> -codec copy output.ts

如果我想处理多个文件,我目前可以通过单独的终端窗口进行操作。

我想做的是,在一个实例中,告诉 ffmpeg 例如从 .txt 文件中获取 URL 并按顺序下载它们,每个 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/m38uhold 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"

Note: 如果你使用TextEdit,确保单击菜单选项Format->Make Plain Text

然后你可以启动终端并运行:

bash grabAll

并查看它是否正在生成您想要的命令类型。它目前不执行任何操作,只是在屏幕上显示它将执行的操作。如果看起来不错,你只需要把这个词去掉echo从第三行到最后一行并再次运行。

样本输出

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 ffmpeg 批量/顺序下载 m3u8 文件? 的相关文章

随机推荐

  • 如何在 Python 中对 URL 参数进行百分比编码?

    If I do url http example com p urllib quote query 它不编码 to 2F 破坏 OAuth 规范化 它不处理 Unicode 它会抛出异常 有更好的图书馆吗 From Python 3 文档
  • 如何使“setup.py bdist_egg”忽略特定源文件?

    我正在尝试为 django 应用程序构建一个包 但排除所有测试模块 我尝试过设置 exclude tests tests tests tests on find packages并定义一个MANIFEST in 但测试始终会被编译并包含在捆
  • Google SMS Retriever API 无法检索 SMS 消息

    我正在尝试使用 Google 的短信检索器 API 进行自动短信验证 我已按照指示进行操作here https developers google com identity sms retriever overview但我的应用程序没有收到
  • 在WebView中加载本地html?

    我想将本地 html 加载到 WebView 中而不使用 file 因为这不允许 cookie 有没有办法使用 localhost 之类的东西 其次 我找不到在 getSettings 中启用 cookie 的方法 因为使用 file 时不
  • 如何限制只有一台机器才能访问Web应用程序?

    我需要确保访问我的 Web 应用程序的每个用户都只能从一台计算机上执行此操作 因此 100 个用户意味着 100 台计算机 最好的解决方案是什么 在首次登录时检测并存储 IP 是个好主意吗 我认为即使在会话的生命周期内 IP 也可能会发生变
  • 如何摆脱“允许<网站>运行'silverlight'?”在 webdriver 中使用 firefoxprofile 对 Firefox 发出警报

    当使用机器人 api 拖放时 我的鼠标位置受到询问 允许运行 silverlight 的警报的干扰 在全屏模式下运行 firefox 甚至我的 webdriver api 也会受到此警报的影响 因为原本在一个按钮上发生的点击却在另一个按钮上
  • UIViewController -viewDidLoad 没有被调用

    作为 Cocoa 的新手 我遇到了一些问题Interface Builder UIViewController和朋友 我有一个UIViewController子类具有UIView在 xib 中定义 并将控制器的视图出口连接到视图 xib 的
  • WooCommerce 添加到购物车验证:阻止添加到购物车

    我遇到了 woocommerce 的问题 我花了几天时间试图解决 我正在为一个人创建一个网站 他希望我在产品页面上添加自定义输入 我自己无法做到这一点 所以我在网上使用了自由职业者 在产品页面上 我有一个添加到购物车按钮 数量输入和日期输入
  • 在 VBA 中搜索单元格引用的公式

    在 VBA 中 我想搜索 Excel 公式 字符串 以查找单元格引用 具体来说 我想找到字符串中存在相对单元格引用 任何相对单元格引用 而不是特定单元格引用 或混合单元格引用的位置 我不需要找到绝对的单元格引用 尽管我可以检查并忽略它们 我
  • 在 Windows 10 中使用 PS 将程序固定到任务栏

    我正在尝试使用以下代码将程序固定到 Windows 10 RTM 中的任务栏 shell new object com Shell Application folder shell Namespace Join Path env Syste
  • 更新浏览器地址栏而不重新加载

    我喜欢 facebook 在图像之间滚动时更改浏览器地址栏 URL 的方式 以及它在 IE7 上的工作方式 但是 我只找到了有关如何在 HTML5 浏览器上执行此操作的信息 并且我想支持 IE7 由于这是一个 HTML5 解决方案 因此如下
  • 如何为Notepad++编写宏?

    我想为 Notepad 编写一个宏 它应该分别用 char4 char5 char6 替换 char1 char2 char3 Notepad 中的宏只是一堆编码操作 您开始录制 对缓冲区进行操作 也许激活菜单 停止录制然后播放宏 经过调查
  • java中如何将日期时间转换为时间戳

    论坛会员 我在 java 中遇到一个日期时间问题 实际上我正在收到开始日期格式为 2012 02 27T01 10 10我想将收到的日期插入到具有日期时间数据类型的数据库中 实际上我尝试通过下面的代码将收到的开始日期转换为日期时间 Stri
  • Android Eclipse Lint API 检查

    谢谢 P T 看起来像是问题的正确答案在 Eclipse 中构建多 SDK Android 应用程序而不会丢失编译时检查 https stackoverflow com questions 7642249 但是 当我尝试按照建议使用 Tar
  • 读取 spacy 中的文本文件语料库

    我看到的使用 spacy 的所有示例都只是在单个文本文件 尺寸很小 中读取 如何将文本文件语料库加载到 spacy 中 我可以通过腌制语料库中的所有文本来使用 textacy 来做到这一点 docs textacy io spacy rea
  • Azure Blob、文件和磁盘存储

    快问 我已经阅读了大量有关 azure blob 文件 磁盘存储选项的信息 并且我有一个如此简单的存储要求 以至于我对最佳选择感到困惑 我正在阅读的大部分信息都完全超出了我的理解范围 我希望有人能够将视野缩小到更合理的优点 缺点 我的情况如
  • 快速排序与堆排序

    快速排序和堆排序都进行就地排序 哪个更好 首选哪种应用和案例 堆排序是 O N log N 保证的 这比快速排序中最坏的情况要好得多 堆排序不需要更多内存来让另一个数组像合并排序那样放置有序数据 那么为什么商业应用程序坚持使用快速排序呢 与
  • update_or_create 与 ManyToManyField

    我有 2 个模型 如下所示 class Subs models Model tag models CharField max length 100 class Users models Model name models CharField
  • ReactforwardRef 含义

    我不明白这有什么意义 const FancyButton React forwardRef props ref gt
  • 如何使用 ffmpeg 批量/顺序下载 m3u8 文件?

    我目前在 Mac 上使用以下命令单独下载 m38u 播放列表 ffmpeg i lt URL with m3u8 gt codec copy output ts 如果我想处理多个文件 我目前可以通过单独的终端窗口进行操作 我想做的是 在一个