4

一時停止と再開機能を備えた mpeg-4 で記録する方法を探していましたが、ないように思えました。そこで、rawwave形式で記録してから に変換することにしました.m4a。Androidで.wavファイルを変換できる方法はありますか。.m4a私はAndroid用のポートを探しましたが、何も見つかりませんでした。Androidへmencoderの移植に関する投稿がいくつかありましたが、Androidでそれを使用して2つのファイルをマージしたり、ファイルを. ffmpeglinux.m4a.wav.m4a

4

2 に答える 2

4

オーディオファイルを「マージ」することで意味する可能性のある2つのことと、ffmpegを使用してそれを実行する2つの異なる方法があります。

2つの別々のオーディオトラックを同じファイルに入れる

通常のオーディオトラックと、解説や吹き替え言語のような別のオーディオトラックがあるDVDのように。ffmpegと2つのm4aファイルでこれを行うには、コマンドを使用しますffmpeg -i in-1.m4a -acodec copy out.m4a -i in-2.m4a -acodec copy -newaudio。オプションの順序は重要なので、それを台無しにしないでください。

2つのオーディオファイルを連結する

最初のファイルの直後に2番目のファイルを再生します。これを行う最も簡単な方法は、 SoXのようなオーディオ操作用に設計されたプログラムを使用することです。SoXの最近の不安定なAndroidポートがあるようです。

ffmpegで厳密に連結を実行したい場合は、次のように実行できます。

  1. ffmpeg -i in-1.m4a -f s16le in-1.raw
    これにより、オーディオファイルが生のPCMに出力されます。この情報は生のPCMファイルに保存されず、後で必要になるため、サンプリングレートとチャネル数に注意する必要があります。ffmpegは、再エンコード中にオーディオストリーム情報を表示します。のようになりますAudio: aac, 44100 Hz, stereo, s16, 63 kb/s。つまり、サンプリングレートは44100で、チャンネル数は2(ステレオ)です。ほとんどの場合、22050、44100、または48000のサンプリングレートを処理します。および1( "mono")、2( "stereo")、または6( "5.1")チャンネル。

  2. ffmpeg -i in-2.m4a -f s16le in-1.raw
    次に、2番目のファイルを生のPCMにデコードします。

  3. ffmpeg -f s16le -ar 44100 -ac 2 -i 'concat:in-1.raw|in-2.raw' -acodec libfaac out.m4a
    繰り返しますが、オプションの順序は非常に重要です。入力に応じて、サンプリングレート(-ar)とチャンネル(-ac)のオプションを変更します。

于 2011-11-08T14:06:14.970 に答える
2

関連するフォーマットとコーデックを使用して ffmpeg をビルドすると仮定すると、次のように簡単に変換できwavますm4a

ffmpeg -i in.wav out.m4a

オーディオの仕事をしている場合は、SoXの方がうまくいくかもしれません。

于 2011-11-08T03:54:12.403 に答える