web-dev-qa-db-ja.com

OpusをAACに変換するための推奨設定

YouTubeから音楽をダウンロードしていますが、ほとんどの場合(人気のあるビデオ)、最高品質のオーディオはopusファイルのようです。

(1)Opusは 最新かつより効率的なコーデック であり、(2)損失のあるコーデックから別のコーデックへの変換はお勧めしません。

ただし、Windows/iOs /車で同じファイルを使用する、つまり同じコンテナを使用するため、AACまたはMP3に変換したいと考えています。

私は here を読みました。ターゲットコーデックに高いビットレートを使用することで、ある程度の世代損失を軽減できます。

では、同じオーディオ品質を維持するためにopusファイルをAACに変換するためにどの設定(たとえばffmpeg)を推奨しますか(これは主観的なものであることを知っています...)?

による youtube-dl -Fデータは160kbsですが、ダウンロードすると、MediaInfoは全体で127Kbpsのビットレートと48Khzのサンプリングレートを提供します。

AACファイルには192kbsが適していますか? (AACはいずれにしてもMP3よりも良い選択だと思いますか?)CDまたはロスレスからは、VBRが最も推奨されますが、OpusからのトランスコーディングにはCBRがより良いでしょう。そして、48kHzのサンプルレートをopusファイルから保持するか、通常の44.1kHzのAACにダウンサンプリングする必要がありますか?

最後に、youtube-dlは128 kbsのAACファイルもダウンロードできます。オーパスの方が効率的/優れているため、同じビットレートでは品質は高くなります。しかし、オーパスをAACにトランスコーディングすると(例:192kbs/212kbs)、その品質の違いが維持されます。または、トランスコーディング(より高いビットレートでも)がアーティファクトを引き起こし、192kbs AACファイルのオーディオ品質が実際にはAAC 128kbsよりも悪くなります。ファイル?

編集

トランスコーディングの最適化設定を決定する方法を理解することに「概念的に」苦労する理由を説明しましょう。

ほとんどの場合、ロスレスファイル(50Mb wavなど)から始め、品質(VBR)または目的のビットレート(CBR/ABR)のエンコーダー設定を選択します。次に、エンコーダーはそのホーカスポーカス(聞き取れない情報、圧縮などを破棄する)を実行します。これにより、選択した設定に基づいて、損失の少ないファイルが得られます。議論のために、128kbs MP3の場合は3Mb、最高品質のVBR(つまり、lameまたはqaacの最高の設定)の場合は5-6Mb、320kbsのCBRの場合は7-8Mbとしましょう。

ただし、この場合、ソースファイルは5Mb 128kbsのopusファイルです。トランスコーディングの最初のステップは、最初にファイルを(PCMストリームに?)デコードし、次に新しい形式で再度エンコードすることです。

したがって、ファイル内の最大情報が5Mb以下であることを理解し、エンコードする必要があります(ファイルを削減する必要がない場合)サイズ)opusファイルにまだ存在する事実上すべての情報をキャプチャするには、可能な限り最高品質のVBR、またはおそらく高CBR(256または320)を使用する必要があります。結果として生成されるファイルは、5Mbを超えることはありません。プロセスで新しい情報を作成/生成できないと思います(これをテストするために週末にいくつかの実験を行います)。

与えられた最初の答えはこれを示唆しているようです。

6
Peter K.

より一般的には、AACエンコーディングの FFmpeg Wiki ページを参照することをお勧めします。ここでは、最高の品質を実現するためのヒントを紹介します。

  • libfdk_aac組み込みのものではなくエンコーダー(エンコーダーは品質に大きな違いをもたらす可能性があります!)
  • vBRの使用—レートを制限したり、ビットを浪費したりする必要はありません
  • デフォルトでは一部の高周波数が変換中に失われるため、ハイパスフィルターをオフにする

したがって、以下が機能します。

ffmpeg -i input.opus -c:a libfdk_aac -vbr 5 -cutoff 18000 output.m4a

これは誰の耳にも完全に透過的であるべきです。 -vbr 4して、違いを検出できるかどうかを確認します。あなたはそうしないと思います。


具体的には、次のように質問します。

最後に、youtube-dlは128 kbsのAACファイルもダウンロードできます。 (…)しかし、オーパスをAAC(…)にトランスコーディングすると、その品質の違いが維持されますか、それともトランスコーディング(…)がアーティファクトを誘発して、オーディオ品質(…)が実際に悪化するのでしょうか。

正式なリスニングテストを実施せずに答える方法がわからないという素晴らしい質問。

ただし、128 kbpsでのステレオAACが少なくとも良い品質(ただし、優れていない)であると想定する場合、変換を忘れて、次の場合はそれを直接使用できます。いいですね。直接ダウンロードしたオリジナルのOpusおよびAACサンプルを聞いて、ブラインドテストを実行しようと思います。違いを確実に検出できますか?いいえの場合は、AACを使用して変換を保存します。

PS:私はOpusとAACの両方のバリエーションでYouTubeからいくつかのミュージッククリップを聴きましたが、個人的にはOpusがより好きでした—少し高周波の空間性があったようです。しかし、科学的に正しい結論だとは考えないでください!


最後に、同様の問題について議論している スレッド があり、ここで、1人のユーザーは、VBRエンコーディングにより積極的な心理音響シェーピングがあると考えています。彼は、高ビットレートのABRがそのようなタスクにより適していると結論付けています。

5
slhck

私が自分に同じ質問をしたときのちょうど私の2セント:

  1. 利用可能な最高の品質は、ダウンロード時のOpusです。別の形式を強制すると、不可逆的な損失が発生します(例:Spekで観察)
  2. しかし、私の古いMP3はAACのみをサポートしており、Opusはサポートしていません
  3. そして、Youtube-dlによって取得されたメタデータを保持しながら、-map_metadataでffmpegを使用してOpusをAACに変換するだけでは、Windows 10では失敗します。 "部分、youtube-dlによる。
  4. したがって、コンパクトで高解像度のOpusライブラリをWindows 10の古いMP3に適合するAACライブラリに変換する場合、メタデータを手動で追加する必要があります。

次のバッチファイルを使用しない限り...

@Echo off
SetLocal EnableDelayedExpansion
Set _InputPath=Opus\*.opus
Set _OutputPath=M4A_from_Opus
For %%A in (%_InputPath%) Do (
    FOR /F "tokens=* USEBACKQ" %%F IN (`ffprobe -v error -show_format -show_streams "%%A" ^| FINDSTR artist`) DO (
        SET ArtistLine=%%F
    )
    FOR /F "tokens=* USEBACKQ" %%F IN (`ffprobe -v error -show_format -show_streams "%%A" ^| FINDSTR title`) DO (
        SET TitleLine=%%F
    )
    FOR /F "tokens=* USEBACKQ" %%F IN (`ffprobe -v error -show_format -show_streams "%%A" ^| FINDSTR album`) DO (
        SET AlbumLine=%%F
    )
    for /F "tokens=2 delims==" %%b in ("!ArtistLine!") do (
        Set Artist=%%b
    )
    for /F "tokens=2 delims==" %%b in ("!TitleLine!") do (
        Set Title=%%b
    )
    for /F "tokens=2 delims==" %%b in ("!AlbumLine!") do (
        Set Album=%%b
    )
    Echo Converting %%A...
    ffmpeg -i "%%A" -c:a aac -b:a 160k -metadata artist="!Artist!" -metadata title="!Title!" -metadata album="!Album!" "%_OutputPath%/%%~nA".m4a
)
SET "_OutputPath="
SET "_InputPath="
SET ArtistLine=
SET AlbumLine=
SET TitleLine=
SET Artist=
SET Album=
SET Title=
1
MrBrody

それは価値があるので、「専門家」の意見として少し答えるわけではありません[私はサウンドエンジニアですが、コーディング/アルゴリズムの男ではありません]

IOS /車の場合、iTunesを128k AACでリサンプリングするだけです-オプションはiTunes自体にあり、デバイス専用の新しいバージョンを作成します-確かに車内で、そして携帯電話からは違いが聞こえません非常に高価なヘッドフォンのある環境。

スペースを節約するためにウィンドウを押しつぶしました...

enter image description here

「最大」でアーカイブする場合は、Apple lossless [ALAC]を使用します。
すでになくなったものを取り戻すことはありませんが、それ以上失うことはありません。

ところで、iOS自体がOpusファイルを再生できるようになりました[iOS 11以降]-それがiTunes経由か、ストリーミング形式のみかはわかりません。

0
Tetsujin