问题标签 [audio-converter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1185 浏览

ios - 使用 LAME 将音频文件从 .wav 转换为 MP3 时出现问题

我正在尝试为我的 iOS 应用程序使用 LAME 将线性 PCM 音频文件 (.wav) 转换为 MP3。我成功地做到了,除了一个问题,创建的 MP3 文件比原来的 .wav 文件小。对于 30 秒的 wav 文件,创建的 MP3 文件为 27 秒,最后 3 秒的音频被截断。对于 5 分钟的音频,大约 30 秒的音频在生成的 MP3 中被截断。

我不确定是什么导致了这个问题,我尝试过改变一些事情,但没有任何效果。有人可以帮助我并将我推向正确的方向吗?

这是我为此使用的代码。

0 投票
1 回答
4426 浏览

c# - 如何仅从 MP4 文件中提取音频并将其转换为 C# 中的 FLAC 文件?

我的目标是编写将 Microsoft LYNC 会议音频转换为文本的 C#。 到目前为止,这是我的项目。最初我试图从麦克风录制,将其保存为 WAV,然后将 WAV 转换为 FLAC 并使用 GoogleSpeechAPI,将 FLAC 转换为文本。但是我卡住了将麦克风音频录制为 WAV 格式。

问题是它需要采用非常特定的 WAV 格式,即 int16 或 int24 才能使 WAV 与 WAV 到 FLAC 转换方法一起使用。我一直记录每个样本 8 位,而不是每个样本(16 或 24 位)。

所以,重新开始。Microsoft Lync 直接录制会议并将其保存为 MP4 格式的视频。如果我能以某种方式编写代码将 MP4 转换为 FLAC,那也可以解决我的问题。任何代码示例?

0 投票
1 回答
2121 浏览

java - 将 MP4 转换为 WAV

我正在用 Java 创建一个小型音频播放器,并且可以很好地播放某些格式(例如 WAV)。我发现这是因为javax.sound不支持 MP4。从我读过的内容来看,从 MP4 转换为 WAV 是无损的,所以我相信这不应该那么困难。我知道有很多第三方库可以做到这一点,但我对下载一个应该相当简单的东西不感兴趣。我已经查看了每个 ISO 的特定 ISO,试图了解数据是如何存储的,以便能够创建一个BufferedReaderBufferedWritter查看我是否可以手动转换它,但我无法找到我正在寻找的信息。在纯 Java 1.7.0 中执行此操作的方法是什么(我知道 JavaFX 有一个 MediaPlayer,但不幸的是我不能使用 1.8。

或者,如果有人知道我可以在哪里找到构成 MP4 和 WAV 的每个容器的特定容器信息(例如标头大小/信息、数据、ACK/NACK 等)。

0 投票
2 回答
4909 浏览

ios - 如何使用 CoreAudio 的 AudioConverter 实时编码 AAC?

我能找到的所有示例代码都AudioConverterRef集中在我预先拥有所有数据的用例上(例如转换磁盘上的文件)。他们通常AudioConverterFillComplexBuffer使用要转换的 PCM 调用,然后将其inInputDataProcUserData填写在回调中。(这真的是应该如何使用的吗?为什么它需要回调呢?)对于我的用例,我正在尝试从麦克风流式传输 aac 音频,所以我没有文件,并且我的 PCM 缓冲区正在实时填写。

因为我没有预先准备好所有数据,所以*ioNumberDataPackets = 0一旦我的输入数据出来,我就尝试在回调中进行操作,但这只会使 AudioConverter 处于需要测试的死状态AudioConverterReset(),而我没有从中获取任何数据。

我在网上看到的一种方法是,如果我存储的数据太小,则从回调中返回错误,一旦我有更多数据再试一次,但这似乎是一种资源浪费,我不能让自己尝试一下。

我真的需要“重试直到我的输入缓冲区足够大”,还是有更好的方法?

0 投票
0 回答
1616 浏览

ios - AudioConverterNew 返回 OSStatus fmt

我正在尝试将从 AVAudioCapture 获得的 pcm 音频转换为 aac 格式。我使用 AudioConverterNew。但我总是得到一个 OSStatus 1718449215,我知道这意味着 kAudioFormatUnsupportedDataFormatError,但我不知道为什么,这是我的代码

我从 CMSampleBufferRef 得到了 sourceFormat,有人知道问题出在哪里吗?源ASDB是

0 投票
3 回答
2206 浏览

ios - 无法使用 AudioFileStreamOpen 的 AudioFileStream_PacketsProc 回调中的 AudioConverterFillComplexBuffer 将 mp3 转换为 PCM

我在处理将音频数据包转换为 PCMAudioFileStream_PacketsProc期间设置了一个回调。我遇到的问题是在被调用后我得到了 -50 OSStatus (paramErr) 。以下是使用了哪些参数以及它们是如何制作的片段:AudioFileStreamOpenAudioConverterFillComplexBufferAudioConverterFillComplexBufferAudioConverterFillComplexBuffer

是什么可能导致参数错误?

如果需要,这是回调的完整方法:

0 投票
1 回答
36 浏览

ios - 如果在应用程序中添加任何 UI,基于 CoreAudio 的应用程序将停止播放

我有一个基于 CoreAudio 的播放器,可以流式传输远程 mp3。

它用于NSURLConnection检索 mp3 数据 -> 用于AudioConverter将流转换为 PCM -> 并将流输入AUGraph到播放音频中。

播放器在我的演示应用程序中运行良好(它只包含一个播放按钮),但是当我将播放器添加到另一个项目时,但是当与已经进行网络调用并更新 UI 的项目结合时,播放器无法播放音频过了几秒钟。

可能遇到线程问题?我可以采取或研究哪些预防方法可以防止这种情况发生?

0 投票
1 回答
1801 浏览

web - 如何将 PCM 音频流转换为在线播放

我可以访问 PCM 音频缓冲区的音频流。我应该清楚我无权访问音频文件。我只能访问 4096 字节的音频数据流。

PCM 缓冲区采用以下格式:

  • PCM 诠释 16
  • 小端
  • 两个通道
  • 交错

要在标准浏览器上支持音频播放,我需要将音频转换为以下格式:

  • PCM 浮点数 32
  • 大端
  • 两个通道(最多)
  • 去交错

该音频来自 iOS 应用程序,因此我可以访问 Swift 和 Objective C(尽管我对 Objective C 不太满意......这使得 Apple 的音频转换器服务几乎无法使用,因为 Swift 真的不喜欢指针)。

此外,播放将在浏览器上进行,因此我可以在客户端 Javascript 或服务器端处理转换。我足够精通以下服务器端语言来进行转换:

  • Java(首选)
  • PHP
  • 节点.js
  • Python

如果有人知道以任何这些语言执行此操作的方法,请告诉我。我已经在这方面工作了足够长的时间,以至于我可能会理解如何做到这一点的非常技术性的描述。

我目前的计划是使用按位运算对左右声道进行去交错,然后使用Web Audio API将 Int 16 缓冲区转换为 Float 32 缓冲区。这看起来是个好计划吗?

任何帮助表示赞赏,谢谢。

0 投票
1 回答
29 浏览

audio - 想要将音频单词保存在文本文件中

我搜索并发现可以将音频单词从录制的音频文件中保存在文本文件中。还发现很少有软件可用于此。但是没有任何算法或解决方案适用于将现场音频中识别的音频单词保存到文本文件中。有没有专家或研究人员可以帮助我解决这个问题?提前感谢所有专家。

0 投票
1 回答
791 浏览

python - 将mp3转换为ogg然后压缩的简单方法?(Python 3)

我有一个 mp3 文件夹,我想以特定的采样/比特率转换为 .oggs,例如 44.1k、160 kbps。然后将它们单独压缩以在线托管。

我将 Python 放在标题中是因为我喜欢使用它,但我也愿意使用任何免费软件或应用程序。

有推荐的图书馆吗?我发现了这个线程:Python library for convert files to MP3 and setting their quality 但它看起来相当过时

压缩文件呢?我发现https://docs.python.org/2/library/zipfile.html似乎 zipfile.zipfile 和 zipfile.write 会覆盖我。

谢谢!