回答:
はい、両方が数学的にロスレスであることを考えると、変換もロスレスです。
これは、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
代わりにを提供しますffmpeg
。ffmpeg
したがって、Ubuntu で利用可能なバージョンは古くなっています。代わりに静的ビルドをダウンロードするか、自分でコンパイルして、最新のビルドを取得できます。続きを読む:ffmpeg、libav、avconvの違いと関係を教えてくれる人
for f in *.m4a; do ffmpeg -i "$f" -acodec flac "${f%.m4a}.flac"; done
これはLinuxで機能しますが、たとえばWindowsのGit bashでも機能します。
*** 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