問題タブ [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 lib でエラーが発生し始めました。
「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 を検索するインクルード パスがありません
iOS で使用するopencore-amrプロジェクトの静的ライブラリをコンパイルしようとしています。私のセットアップは Xcode4.2 / iOS5 sdk です (まだ Snow Leopard を実行しているため)。--sysroot の代わりに -isysroot を使用するようにここに添付されているビルド スクリプトを微調整し、SDK var を /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk に更新しました。
これは、この時点で構成チェックに失敗します。
私の config.log によると、このチェック中の最初の失敗は、limits.h を見つけることです。
さらに下に進むと、次のコマンドで assert.h を見つけることができません。
私が見逃していることや間違っていることを誰かが指摘できますか? ありがとう!
php - codeigniterで.amrをアップロードする
codeigniterに組み込まれているWebサイトに.armをアップロードしようとしています。私はそれがデフォルトの鉱山タイプではないことを知っているので、これを追加しました:
しかし、それはうまく機能していないようです。許可されたタイプにも追加しました。amrをサポートできるかどうか、もしそうなら、私は何を間違っているのでしょうか?
android - 録音されたオーディオの分割と結合/連結
Android で録音されたオーディオを分割およびマージできる必要があります。いろいろなフォーマットがあるので、どのフォーマットが一番扱いやすいか分かる人いますか?
録音できるのは、「エンコーダー」の下にドットがあるフォーマットのみです。
java - amr オーディオファイルのデータを読み込んで変更するには?
AMR-NB ファイルからサンプル レート、ビット レートなどの情報を抽出する方法を教えてください。厳密に言えば、サンプルレート、またはピッチやテンポを変更する可能性のあるその他のデータが必要です。
WAV ファイルの場合は簡単でしたが、ここでは AMR-NB 形式 (J2me デバイス) に制限されています。
グーグルでいろいろ調べたのですが、なかなか出てきません...
AMR-NBは8Khz固定ですか?それともサンプルごとに異なりますか?
android - Androidでamrからオーディオを再生する
からバイト配列を受け取ることができますSocket
。このバイト配列からオーディオを再生する必要があります-オーディオはAMR8000Hzでエンコードされています。
でAMRオーディオを再生できることがわかりましたMediaPlayer
。ただし、MediaPlayer
バイト配列から音楽を再生することはできません。ファイルに書き込みたくありません。
Androidでバイト配列からAMRサウンドを再生する方法はありますか?
android - AMR ファイル形式の再生
AMR ファイル形式でトラックを再生しようとすると。警告をスローします
権限の失敗: android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK
および libOpenSLES からのエラー
AudioSfDecoder::onPrepare: サポートされているオーディオ トラックが見つかりませんでした。
マニフェストファイルに権限を設定してみました。
しかし、それでも同じエラーがスローされます。
パーミッションを正しく設定していますか? 誰が私を助けてくれますか、何が欠けていますか。
android - Android: 信頼性の高いオーディオ録音、すべてのデバイス
MediaRecorder を使用してすべてのデバイスでオーディオを録音する信頼できる方法を教えてください。低ビットレートの AMR 形式のオーディオ ファイルを録音しようとしているだけです。Google によれば、これはすべてのデバイスで標準になっています。それはがらくたの束です。
私の経験では、デフォルトの AudioEncoder.AMR_NB を使用するとひどく失敗するブランド外のデバイス、タブレットなどが多数あります。私の回避策は、現在、リフレクションを使用してスーパークラスにあるエンコーダーをポーリングし、エラーリスナーを使用して各エンコーダーをループして、失敗していないエンコーダーを確認することです。これは適切ではないだけでなく、すべてのデバイスをキャッチするわけではありません。また、AudioEncoder および OutputFormat オプション (定数 0) をデフォルトに設定しようとしましたが、これは一部のデバイスでもひどく失敗します。
デフォルトの AMR エンコーダーが機能しない場合に使用しているものは次のとおりです。
次に、エラーリスナーを設定して、各エンコーダーをループします。正常に終了した場合は、設定としてデフォルトのエンコーダーとして設定します。
リスナーがエラーをキャッチした場合、ループを続行します。
この手法は、ほとんどのデバイスで機能します。残りはどうですか?私はまだ見過ごされているデバイスを持っています。率直に言って、ほぼすべてのデバイスで信頼できるものが欲しいですか????