一時停止と再開機能を備えた mpeg-4 で記録する方法を探していましたが、ないように思えました。そこで、rawwave
形式で記録してから に変換することにしました.m4a
。Androidで.wav
ファイルを変換できる方法はありますか。.m4a
私はAndroid用のポートを探しましたが、何も見つかりませんでした。Androidへmencoder
の移植に関する投稿がいくつかありましたが、Androidでそれを使用して2つのファイルをマージしたり、ファイルを. ffmpeg
linux
.m4a
.wav
.m4a
2 に答える
オーディオファイルを「マージ」することで意味する可能性のある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で厳密に連結を実行したい場合は、次のように実行できます。
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")チャンネル。ffmpeg -i in-2.m4a -f s16le in-1.raw
次に、2番目のファイルを生のPCMにデコードします。ffmpeg -f s16le -ar 44100 -ac 2 -i 'concat:in-1.raw|in-2.raw' -acodec libfaac out.m4a
繰り返しますが、オプションの順序は非常に重要です。入力に応じて、サンプリングレート(-ar
)とチャンネル(-ac
)のオプションを変更します。
関連するフォーマットとコーデックを使用して ffmpeg をビルドすると仮定すると、次のように簡単に変換できwav
ますm4a
。
ffmpeg -i in.wav out.m4a
オーディオの仕事をしている場合は、SoXの方がうまくいくかもしれません。