从 mp3/ogg 中剪切精确的时间范围

2023-12-23

我在 CDN 上有一堆音频文件。这些是并行的 mp3 和 ogg vorbises。这些文件每个都值得播放大约一小时。我需要从这些文件中提取任意部分:我得到一个文件名(我可以选择是否使用 mp3 或 ogg 版本)和两个时间戳,并且我需要恰好在给定时间位置之间的音频。我不想下载整个文件,所以我想到使用 Range http 标头。

我可以完全控制音频文件,因此我以固定比特率对它们进行编码,以便能够估计我应该达到哪些字节。然而,这两种格式都使用帧(或 vorbis 中的页面),必须以原子方式对其进行解码。

我编写的程序是用 Perl 编写的。我尝试下载文件的一部分,其中我认为包含给定的窗口,然后使用 Audio::Mad 和 Ogg::Vorbis::Decoder 来解析音频文件片段。然而,两者似乎都无法处理片段,并且只有当我提供完整文件时才会成功。

所以我的问题是:如何在不下载整个音频文件的情况下获得音频文件的精确范围?


回答“从 mp3/ogg 中剪切准确的时间范围” - 您可以检查以下内容是否符合您的需求:

ffmpeg -i InFile  -vn -acodec copy -ss 00:00:00 -t 00:01:32 -threads 0 OutFile

其中 ss - 开始时间,t - 持续时间。它确实减少了——无需重新压缩。

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

从 mp3/ogg 中剪切精确的时间范围 的相关文章

随机推荐

  • Spark DataFrame 和重命名多列 (Java)

    有没有更好的方法可以同时为给定 SparkSQL 的所有或多个列添加前缀或重命名DataFrame比多次调用dataFrame withColumnRenamed 一个例子是 如果我想检测更改 使用完整外连接 然后我就剩下两个了DataFr
  • Tensorflow 对象检测 api 验证数据大小

    我正在从对象检测 API 运行教程 并将 Oxford 数据集与 ResNet Faster RCNN 一起使用 当我通过运行 eval py 评估经过训练的模型时 Tensorboard 返回大约 0 95 的平滑精度值 我的问题是它评估
  • 我可以在 Django generic.ListView 中拥有多个列表吗?

    作为 Django 初学者 我正在研究 django 文档提供的教程 网址为https docs djangoproject com en 1 5 intro tutorial04 https docs djangoproject com
  • Android - 从收到的短信中获取日期和时间

    我正在开发一个 Android 应用程序 我需要在其中保存发件人 短信正文 日期和时间收到短信 现在我可以捕获消息正文和发件人 但我无法获取短信的日期和时间 即使我查看了 stackoverflow 中的一些帖子 但它们都没有捕获日期和时间
  • NSView 子类中的鼠标单击事件

    我有一个 NSView 子类 它使用 OpenGL 上下文进行初始化 并具有一堆鼠标事件处理 onMouseDown 等 我有一个使用它的应用程序 它有一个包含视图的主 Cocoa 窗口 并且所有鼠标事件都正常工作 但是 我现在尝试在另一个
  • 自动调整 UICollectionView 高度以适应其内容大小

    我有一个 UICollectionView 一个在集合视图中创建新单元格的按钮 我希望 UICollectionView 根据其内容大小调整其大小 当有一两个单元格时 UICollectionView 很短 如果有很多单元格 UIColle
  • 对话框服务内容中的换行符被忽略

    在剑道对话服务窗口的内容中插入换行符 rogress 中的 Kendo Angular 6 对话框 换行符将被忽略 尝试了 html 元素 br 和 n n 例如它在连续一行中显示字符文本 n n n const dialog Dialog
  • 如何向 CRM 2011 进行身份验证?

    我想建立一个简单的网站 客户可以在其中下订单和查看产品 此数据是我的 Microsoft Dynamics CRM 2011 环境 该数据是特定于客户的 因此我需要有关登录用户的信息 用户凭据存储在 CRM 2011 中 使用这些凭据 用户
  • Jython 的内存限制

    如何为我的 Jython 程序设置 JVM 内存限制 Java 的 Xmx 选项 我明白 Jython2 5引入 J 选项以便将选项发送到 JVM jython J Xmx8000m 但是 我必须与java1 6 0 23 上的 Jytho
  • android OAuth-2.0 google 使用 webview 登录获取用户信息

    我正在创建允许用户使用 facebook 或 google 帐户登录的应用程序 他们按下 登录 按钮 然后系统会要求他们使用 facebook 或 google 登录 当他们选择其中之一时 会弹出网络视图 问题是谷歌身份验证 阅读了一些文章
  • 清理带有标题的 URL 的最佳方法是什么

    清理 URL 的最佳方法是什么 我正在寻找这样的网址 什么是最好的头痛药物 我当前的代码 public string CleanURL string str str str Replace str str Replace str str R
  • 在不知道 T 类型的情况下获取 Task 的结果 [重复]

    这个问题在这里已经有答案了 我正在开发一个 C 系统 一个类有一个返回 a 的函数System Threading Tasks Task对象并具有属性System Type返回类型 当 ReturnType 为 null 时 我知道该方法返
  • Python 中的 MySQL 连接器不允许 LOAD DATA INFILE 语法

    我正在尝试将文本文件发送到 MySQL 数据库 我正在尝试使用 python 3 2 中的 mysql 连接器来执行此操作 问题与 LOAD DATA INFILE 语法有关 你可以在上面找到我的代码 我的第一个问题是有没有办法解决这个问题
  • Android:使用 Intent setResults 来回传递数据

    我正在为 Android 创建一个基于 GPS 的应用程序 有 2 个活动 Main 和 LocNames Main 显示我的地图 LocNames 是获取用户想要的源和目的地 我想在用户从菜单中选择 LocNames 时启动 LocNam
  • Tensorflow 2.0 和 Java API

    注意 我已经解决了我的问题并将代码发布在底部 我正在使用 TensorFlow 后端处理必须在 Java 中进行 我从 中取出了其中一个模型https developers google com machine learning crash
  • 如何为异步方法编写单元测试用例?

    我想通过模拟依赖项来编写单元测试用例 整体流程如下 我们有一个WorklistLoader它有一个异步方法LoadWorklistItemsAsync 为了完成这个任务WorklistLoader依赖于下层 API 我想模拟 QueryMa
  • 在不处于编辑模式时对 tableView 中的行重新排序[重复]

    这个问题在这里已经有答案了 在我的应用程序中 我已经实现了重新排序行的选项 但我使用默认的编辑按钮来显示删除按钮和三行图标来移动行 但我见过一个iOS应用程序允许用户直接移动行 而不需要进入编辑模式 我将不胜感激任何建议来实现这种方式 以允
  • linux 补丁忽略行号

    我有一个产品 例如版本 1 并且对其进行了一些自定义更改 例如版本 1 x 我正在对这些版本运行差异并创建补丁文件 现在该产品有更高版本 例如版本 2 我希望将从版本 1 和版本 1 x 创建的补丁应用于版本 2 这里的困难在于行号不会保持
  • Java 线程:解释正在运行的 JVM 的线程状态

    Java 线程始终处于以下十种状态之一 NEW Just starting up i e in process of being initialized NEW TRANS Corresponding transition state no
  • 从 mp3/ogg 中剪切精确的时间范围

    我在 CDN 上有一堆音频文件 这些是并行的 mp3 和 ogg vorbises 这些文件每个都值得播放大约一小时 我需要从这些文件中提取任意部分 我得到一个文件名 我可以选择是否使用 mp3 或 ogg 版本 和两个时间戳 并且我需要恰