Apple Losslessオーディオは忠実度を失うことなくFLACに変換できますか?


19

Apple Losslessオーディオファイル(ALAC)は、忠実度を失うことなくFLACオーディオファイルに変換できますか?


2
短い答え「はい」(shlckが言ったように)。質問は、これを行うツールを探していますか、それともロスレス形式をロスレスに別のロスレス形式に変換できるかどうかを尋ねていますか?
ジャーニーマンオタク

回答:


37

はい、両方が数学的にロスレスであることを考えると、変換もロスレスです。

これは、FLAC / ALACファイルがデコードされるときに、信号を常に元の形式に再構築できるためです。したがって、これらは同等であり、複数回トランスコードする場合でも、トランスコードするときに損失は発生しません。

私が想像できる唯一のエラーは、算術的なものです。たとえば、計算での浮動小数点の精度の制限によるものです。これはFLACにもALACにも当てはまらないと思います。

「心理音響」ロスレスコーデックのみを使用する場合、これは不可能です。心理音響的な意味でロスレスとは、元のバージョンと圧縮されたバージョンを区別できないことを意味しますが、それらは互いに非常に異なっています。MP3またはMPEG-4 AACは、さまざまな心理音響技術を使用してこれを実現します。したがって、トランスコードする場合、元のバージョンを再構築することはできず、品質が低下します。


ALACをFLACに変換したい場合はffmpeg、ほぼすべてのプラットフォームで無料で利用できるため、良いオプションです。

ffmpeg -i audio.m4a -c:a flac audio.flac

FFmpegは問題なくALACを読み取ります。* nixシステムには、Convert to FLACというスクリプトがあり、これによりプロセス全体が簡単になります。Bashを使用すると、1つのディレクトリ内のすべてのファイルも単純に変換できます。

for f in *.m4a; do ffmpeg -i "$f" -c:a flac "${f%.m4a}.flac"; done

注:ffmpeg廃止されることについてのメッセージを受け取った場合、実際にはそうではありません。それはまだ積極的に開発されたプログラムです。ただし、Ubuntuのパッケージメンテナは、FFmpegのLibavフォークに切り替えることを決定したため、avconv代わりにを提供しますffmpegffmpeg したがって、Ubuntu で利用可能なバージョンは古くなっています。代わり静的ビルドをダウンロードするか、自分でコンパイルして、最新のビルドを取得できます。続きを読む:ffmpeg、libav、avconvの違いと関係を教えてくれる人


2
superuser.com/a/277358/45914に基づいて、次の操作を実行してディレクトリ全体を変換できます。 for f in *.m4a; do ffmpeg -i "$f" -acodec flac "${f%.m4a}.flac"; done これはLinuxで機能しますが、たとえばWindowsのGit bashでも機能します。
ルード

1
:、@RuudvAが言ったように、ffmpegのを使用して変換動作しますが、私に言うメッセージ与え*** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead. 代わりにこれを行うには、この使用してaconvを行うためには: for f in *.m4a; do avconv -i "$f" "${f%.m4a}.flac"; done
ダンカンロック

XLDはOSXにとってもう1つの優れたものです。
アランカドバードベル

3

Windows CMDで実行できます。

@for /R %%x in (*.m4a) do ffmpeg -i "%%x" -acodec flac "%%~dpnx.flac"

(バッチスクリプト)

(これは再帰を実行します(すべてのフォルダーとその実行場所の下))


1

Macをお持ちの場合(ALACファイルがあるため)、オープンソースソフトウェアMaxをALAC / FLACまたは他の多くの形式との間で変換するための素敵なフロントエンドとして使用することもできます。


2
もう1つの優れた機能はXLDです。
ナサニエル

1

PowershellのWindows(ffmpegを使用)では、これを実行してalacをflacに変換できます。

Get-ChildItem . -filter *.m4a| ForEach-Object { ffmpeg -i "$_" -acodec flac "$($_.basename).flac" }

逆にこれを実行してalacに変換します

Get-ChildItem . -filter *.flac | ForEach-Object { ffmpeg -i "$_" -acodec alac $($_.basename).m4a" }

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.