【问题标题】:how to convert audio to ".WAV" format on upload如何在上传时将音频转换为“.WAV”格式
【发布时间】:2013-02-06 07:25:52
【问题描述】:

我正在开发一个应用程序,用户可以通过

将音频文件上传到服务器

在手机中使用任何安卓版本。通过使用内置的安卓录音机,他们可以

只创建.amr 格式的音频。但我需要.wav 格式的音频来播放一些

服务器端的电话使用。

android 有什么方法可以在内置的android 录音机中创建.wav 格式

或者在服务器端是否可以使用PHP将任何音频文件格式转换为.wav

任何帮助将不胜感激。

【问题讨论】:

  • 比起设置服务器来转换AMR->WAV,在你的应用程序中进行录制不是更容易吗? IE。使用 AudioRecord 类来记录 PCM 数据,添加一个 WAV 头,你就完成了。
  • 无论您选择做什么工作,都不要在“上传”时进行。排队转换。我推荐完美的服务,称为 Gearman 来完成这项工作。

标签: php android file-upload wav audio-recording


【解决方案1】:

我建议在服务器端进行转换,以节省未压缩文件传输中的带宽。

您可以使用FFMPEG 为您进行转换。

【讨论】:

  • 在服务器端进行转换的另一个好处是,如果您的格式要求发生变化,您无需发布应用程序的新版本。
【解决方案2】:

最好的方法是使用 FFMPEG 作为 php 扩展,或者您可以直接运行 ffmpeg 进行转换。使用 php 的简单方法是:

<?php exec(ffmpeg -i audio.amr testwav.wav) ?>

但是你可能会遇到一些困难。所以你应该添加一些参数。您可以使用“-ar”设置音频采样率(以Hz为单位),“-ab”设置音频比特率(以比特/秒为单位)等。以下是示例:

<?php exec("ffmpeg -i audio.amr -ar 22050 -ab 32 -map_meta_data audio.wav:audio.amr audio.wav"); ?>

【讨论】:

    【解决方案3】:

    我认为 PHP 是最好的选择,你可以使用FFMPEG,看看这些页面:

    1. http://wiki.dreamhost.com/FFmpeg
    2. http://wiki.dreamhost.com/Php-ffmpeg

    【讨论】:

      【解决方案4】:

      您还可以在Android 设备上使用FFMPEG。这可能是一个棘手的设置(需要一些NDK 配置),但JavaCV 已经大大简化了这一点(here 可用)。

      【讨论】:

        【解决方案5】:

        我强烈建议您使用 3rd 方在线格式转换 API 来完成这项工作,但如果您的服务器不受资源限制,您可以按照 Brad 的建议转到 FFMPEG
        您可以使用online-convert 等在线 API 或找到最适合您的 API。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-10-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多