问题标签 [amr]
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.
ffmpeg - 使用 ffmpeg api 调用将 3gp (amr) 转换为 mp3
使用 ffmpeg api 调用将 3gp (amr) 转换为 mp3
我尝试使用 libavformat (ffmpeg) 构建我自己的函数,将 3gp 音频文件(使用 android 移动设备录制)转换为 mp3 文件。
我使用 av_read_frame() 从输入文件中读取帧,并使用 avcodec_decode_audio3() 将数据解码到缓冲区中,并使用此缓冲区将数据编码为带有 avcodec_encode_audio 的 mp3。这似乎给了我一个正确的结果,可以将 wav 转换为 mp3 和 mp3 转换为 wav(或解码一个 mp3 并编码为另一个 mp3),但不能将 amr 转换为 mp3。我生成的 mp3 文件似乎具有正确的长度,但仅包含噪音。
在另一篇文章中,我读到 amr-decoder 不使用与 mp3 相同的样本格式。AMR 使用 FLT 和 mp3 S16 或 S32 以及我必须重新采样。因此,我为每个已解码的帧调用 av_audio_resample_init() 和 audio_resample。但这并不能完全解决我的问题。现在我可以听到我录制的声音并且听不懂我在说什么,但是质量非常低,并且仍然有很多噪音。我不确定我是否正确设置了 av_audio_resample 的参数,尤其是最后 4 个参数(我认为不是),或者我是否错过了其他东西。
ios - xCode 4.3.2 链接错误,但确实存在拱门。为什么?
我试图将 AMR-NB 解码支持添加到 iOS 应用程序中,这在之前已经成功完成。但是自从我升级了我使用的框架(PhoneGap,现在作为 Cordova),我开始了一个新项目并将所有代码迁移到新项目,AMR-NB 库在链接短语期间开始出错。
我一直在使用'file'和'lipo -info'命令检查.a lib文件,并确保fat lib包含i386的arch,并且它已经包含在构建短语的链接短语中。我一直在比较新旧项目的构建设置,但没有找到解决这个问题的运气。
有谁知道我可能在哪里弄错了?谢谢!
更新:添加了 amrFileCodec.h 和 CJ-Func.m 的代码片段
amrFileCodec.h
CJ-Func.m
ffmpeg - 使用 JAVE (ffmpeg) 从 amr 转码到 flac
我想使用使用 ffmpeg 的JAVE将 amr 音频文件转码为 flac。
转码过程在 Windows 上成功运行,但在 Linux (centOS) 上失败。
我检查了 JAVE 代码,发现它使用以下命令:
输出是:
所以问题是不支持的编解码器?我该如何解决这个问题?
iphone - 使用 Xcode4.2 为 ios5 编译 opencore-amr:没有包含路径来搜索limits.h
我正在尝试为opencore-amr项目编译一个静态库以在 ios 中使用。我的设置是 Xcode4.2 / iOS5 sdk(因为我还在运行 Snow Leopard)。我已调整此处附加的构建脚本以使用 -isysroot 而不是 --sysroot,并将 SDK var 更新为 /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk
此时在配置检查中失败:
根据我的 config.log,此检查过程中的第一个失败是查找 limits.h:
再往下,它也无法使用以下命令找到 assert.h:
谁能指出我错过了什么或做错了什么?谢谢!
php - 使用 codeigniter 上传 .amr
我一直在尝试将 .arm 上传到内置 codeigniter 的网站。我知道它不是默认的我的类型,所以我添加了它:
但它似乎并没有与之合作。我还将它添加到允许的类型中。知道是否可以支持 amr,如果可以,我可能做错了什么?
android - 拆分和合并/合并录制的音频
我需要能够在 Android 中拆分和合并录制的音频。由于有许多不同的格式,有谁知道哪种格式最容易处理?
只有“编码器”下带有点的格式可用于录制。
java - 如何读取和修改amr音频文件数据?
如何从 AMR-NB 文件中提取采样率、比特率等信息。严格来说,我想要采样率或任何其他可能改变其音高或速度的数据。
WAV 文件很容易,但在这里我受限于 AMR-NB 格式(J2me 设备)
我在谷歌上搜索了很多,但找不到任何东西......
AMR-NB 是固定在 8Khz 的吗?或者它随每个样本而变化?
android - 在 Android 上播放来自 amr 的音频
我可以从Socket
. 我需要播放这个字节数组中的音频——音频是用 AMR 8000Hz 编码的。
我发现我可以用MediaPlayer
. 但是,MediaPlayer
无法从字节数组播放音乐,我不想将它们写入文件。
有没有办法在 android 上从字节数组播放 AMR 声音?
android - 播放 AMR 文件格式
当我尝试使用 AMR 文件格式播放曲目时。它会发出警告
权限失败:android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK
和来自 libOpenSLES 的错误
AudioSfDecoder::onPrepare: 找不到支持的音轨。
我尝试在清单文件中设置权限。
但仍然抛出同样的错误。
我是否正确设置了权限?谁能帮帮我,我错过了什么。
android - Android:可靠的录音,所有设备
有人可以与我分享一种使用 MediaRecorder 在所有设备上录制音频的可靠方法吗?我只是想录制一个低比特率 AMR 格式的音频文件,根据谷歌的说法,这是所有设备的标准。那是一堆废话。
根据我的经验,当您使用默认的 AudioEncoder.AMR_NB 时,有许多非品牌设备、平板电脑等会严重失败。我目前的解决方法是使用反射来轮询超类中的编码器,然后使用错误侦听器循环遍历每个编码器以查看哪个编码器不会失败。这不仅不优雅,而且无法捕获所有设备。我还尝试将 AudioEncoder 和 OutputFormat 选项(常量 0)设置为默认值,这在某些设备上也失败了。
如果默认 AMR 编码器不起作用,这是我正在使用的:
然后我遍历每个编码器,设置一个错误监听器。如果它成功结束,我将其设置为默认编码器作为设置。
如果侦听器发现错误,我将继续循环:
这种技术适用于大多数设备。其余的呢?我仍然有设备从裂缝中掉下来,坦率地说,我想要几乎所有设备都可靠的东西????