Gstreamer multifilesink wav 文件分割

2024-03-30

我在使用 gstreamer 录制流时遇到问题。 我必须分别编写音频和视频,并在信号到达时切入。我的视频工作正常,但 wav 文件仍然存在问题。 即使 gst-launch 中的简单管道也无法正常工作。我有波形文件,我正在尝试使用 multifilesink 分割它:
gst-launch filesrc location=test.wav ! multifilesink location=test2%d.wav next-file=4 max-file-size=512000 但最终的 wav 文件已损坏,而带有 ts 文件的同一管道工作正常:
gst-launch-1.0 filesrc location=test.ts ! multifilesink location=test2%d.ts next-file=4 max-file-size=2000000


multifilesink对它所分割的数据一无所知,因此它不会负责向它写入的每个文件添加标头。

你的原因.ts文件之所以有效,是因为它被设计为流格式,其中每个单独的数据包将被独立处理。因此,人们可以随时“收听”该流。解码器将简单地查找它找到的下一个数据包标头并在那里开始解码(有关详细信息,请查看MPEG TS 的 wiki 页面 http://en.wikipedia.org/wiki/MPEG_transport_stream.

The WAV然而,文件格式被设计为纯文件(而不是流)格式。因此,文件的开头只有一个标头。当您将该文件拆分为多个文件时,这些标头会丢失(此时该文件仅包含原始 PCM 数据)。

要解决该问题,您可以...

  • 手动复制.wav从第一个文件到所有其他文件的标头
  • 使用支持 PCM 文件的程序,并直接使用它们或转换文件(不过,在打开这些文件时,您必须手动设置通道数、采样率和比特率)。
  • 使用另一种面向流的文件格式,例如.mp3它来自与 .ts 相同的编解码器系列,并且还为每个帧使用单独的 4 字节标头(请记住,MP3 是一种有损文件格式)。
    一个示例管道是:

    gst-launch filesrc location=test.wav ! wavparse ! lame ! multifilesink location=test%d.mp3 next-file=4 max-file-size=100000
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gstreamer multifilesink wav 文件分割 的相关文章

随机推荐

  • PyQt self.close() 在 __init__() 中

    我在 Python 2 7 下使用 PyQt4 时遇到了一些小问题 我正在编写一个小项目 其中有一些 QDialogs 相互打开 因此 我打开一个对话框 然后立即打开另一个对话框来检查某些内容 当出现错误检查时 我希望关闭整个对话框 它看起
  • 您可以设置整数的最大限制(C++)吗?

    如果我不想让一个整数超过 100 是否有任何简单的方法可以确保该整数永远不会超过 100 无论用户添加了多少 例如 50 40 90 50 50 100 50 60 100 50 90 100 尝试这个 std min 50 40 100
  • 从 JSON 创建多表头表

    我是熊猫新手 我正在尝试创建下表 C Perl line func line func version covered total covered total 我创建的 JSON 结构如下 version1 perl line covere
  • 使用 Google AppEngine MapReduce 处理所有记录后,如何从计数器获取值?

    使用 Google AppEngine MapReduce 处理所有记录后 如何从计数器获取值 或者我在这里错过了计数器的用例 示例代码来自http code google com p appengine mapreduce wiki Us
  • 如何从 browserify/babelify 导出全局变量以便在没有 browserify 的项目中使用?

    设想 我有两个设置完全不同的项目 常规网站 遗留代码和简单的 gulp 设置 小宠物项目 在 ES6 类的帮助下编写的 JS 滑块插件 用 babel 转译 JS 吞咽任务 gulp task js function return gulp
  • Apache Hive regEx serde:数据类型

    对于处理日志 我想使用 Apache Hive regEx serde 但我只找到使用 String 作为表列的数据类型的示例 现在我的问题是 是否支持基于日期的类型 整数和数组 还是只是字符串 此示例 和其他示例 仅使用字符串 CREAT
  • Google 关于输入/输出参数作为指针的样式指南

    The 谷歌 C 风格指南 http google styleguide googlecode com svn trunk cppguide html做出了明确的区分 严格遵循cplint py http google styleguide
  • 打开/关闭sql连接-冗余代码

    我想知道避免以下情况的最基本方法是什么 con ConnectionString connection String con Open cmd Connection con database interaction here cmd Clo
  • 是否已经可以在react-native中使用顶级await了?

    是否已经可以在react native中使用顶级await了 我看到它已被添加到 TypeScript 3 8 中 我没有使用 TS 我只是想看看它是否有帮助 但没有 然而 在react native中 文件转换是由babel处理的 我不认
  • Jupyter - 在多个单元中拆分类

    我想知道是否有可能将 jupyter 类分成不同的单元格 可以说 first cell class foo object def init self var self var var second cell def print var se
  • 如何从 Java 最小化 JFrame 窗口?

    在我的 Java 应用程序中 我有一个 JFrame 窗口 如何从我的 Java 程序中最小化它 最小化与frame setState Frame ICONIFIED 恢复与frame setState Frame NORMAL
  • 如何更改command_not_found_handle中的当前工作目录

    我正在尝试在 Bash 中编写一个未找到的句柄 它执行以下操作 如果 1 存在并且它是一个目录 cd进去 如果 1 存在于用户定义的目录中 DEV DIR cd 进入其中 如果前面的条件不适用 则失败 现在我有这样的事情 export DE
  • 并行解决多个获取请求

    我正在尝试执行多个并行获取请求react native 但我没有得到预期的响应数据 我错误地整合了什么 async componentDidMount try let res1 res2 await Promise all fetch ap
  • 为 Azure CDN 创建服务主体失败,并出现租户权限错误

    我正在尝试将 Azure CDN 添加为服务帐户 以便将其连接到 KeyVault 遵循官方指南和其他建议 例如无法将 Microsoft Azure Cdn 服务主体添加到 Key Vault 访问策略 https stackoverfl
  • 语义 UI 浮动

    语义 UI 新手 我在文档中找不到如何 如果可能的话 浮动一个简单元素而不使其成为其他元素 如按钮或段 例如 我在页面底部有一个步骤导航 计数器 其写法如下 div class row three column div class colu
  • 停止或启动远程计算机上的服务

    我创建了一个脚本 它将根据服务的显示名称启动或停止服务 我的脚本可以在本地计算机上运行 但我想确保它可以在远程计算机和本地计算机上完成 我不知道如何让它在远程机器上工作 任何帮助 将不胜感激 serviceName Read Host Pr
  • 等待光标移过整个 html 页面

    是否可以通过简单的方式将整个html页面上的光标设置为 等待 这个想法是向用户展示在 ajax 调用完成时正在发生的事情 下面的代码显示了我尝试过的简化版本 并演示了我遇到的问题 如果一个元素 id1 设置了光标样式 它将忽略主体上设置的样
  • 使用 R 并行批量调整图像大小

    我正在尝试使用 R 批量调整数千个图像的大小 即减小文件大小 我已经使用下面的代码成功地实现了这一点 但这需要很长时间 特别是当调整大小 gt 50 000 个图像时 有什么办法可以让这个任务在多个核心上运行吗 我是并行计算方面的新手 因此
  • 如何在 Google Charts 中获取带有 svg 内图像的 png(base64)?

    如何获取 svg 内图像的 base64 检查这个Fiddle http jsfiddle net R8A8P 51 这是我从另一个问题中得到的 如果您看到第二个图形 则它不会生成覆盖该条的图像 var chart new google v
  • Gstreamer multifilesink wav 文件分割

    我在使用 gstreamer 录制流时遇到问题 我必须分别编写音频和视频 并在信号到达时切入 我的视频工作正常 但 wav 文件仍然存在问题 即使 gst launch 中的简单管道也无法正常工作 我有波形文件 我正在尝试使用 multif