【ffmpeg】 fdk-aac を ffmpeg に組み込む

FDK-AAC は Fraunhofer社 のオープンソースのコーデック。

【AAC+】HE-AAC が使える ffmpeg をつくる方法 の記事と同様にしていくが、その記事を書いた時(現在はそちらも修正済み)より幾つかアップデートされているファイルがあり、それによって一部コマンドが異なる。

以前の AAC+ との違いは低ビットレートの HE-AAC だけではなくて、高ビットレートの AAC-LC も使えるところ。

注:HE-AAC や AAC-LC はコーデック名で、AAC+ や FDK-AAC はエンコーダー名

ビルド環境




解凍場所などファイルの配置場所は 【AAC+】HE-AAC が使える ffmpeg をつくる方法 を参照。fdk-aac-0.1.3.tar.gz は以前と同じように msys\home\username のフォルダに入れる。

この方法の注意点は aacplus や vo-aacenc を同梱して make しないこと。これらを同梱すると make のところでエラーが出て ffmpeg が作れない。

shared ビルドで同梱出来ます。
【ffmpeg】 fdk-aac と aacplus を同梱する
【ffmpeg】 fdk-aac をffmpeg に組み込む : comment458 より

インストール と ビルド


  • fdk-aac のインストール
    $ cd fdk-aac-0.1.3
    $ autoreconf -i
    $ ./configure --prefix="/mingw/i686-w64-mingw32" --build="i686-w64-mingw32" -host="i686-w64-mingw32" --disable-shared --enable-static --enable-fast-install
    $ make clean && make && make install-strip


  • ffmpeg に組み込む
    ffmpeg にパッチを当てて使用する外部ライブラリを含める。ただし libaacplus をインストールしている人は --enable-libaacplus を付けずにビルドするか、shared ビルドにして同梱する(未確認)。libaacplus をインストールしていない人は --enable-libaacplus を付けずにビルドする。

    libfdk-aac を ffmpeg にリンクするのに必要なコマンドは以下の通り
    --enable-gpl --enable-nonfree --enable-libfdk-aac

    【ffmpeg】 fdk-aac をffmpeg に組み込む (07/19) : comment459 より

  • ffmpeg の make の時に

    libswresample/x86/Makefile:4: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.


    のエラーがすぐに出た場合は、おそらく当該ファイル(Makefile)のパッチが上手く当たっていないので、同じフォルダ内のパッチ済みのファイルをパッチが当たっていないオリジナルのファイルに差し替える。

    当該ファイルは
    ffmpeg-HEAD-*******\libswresample\x86\Makefile
    ffmpeg-HEAD-*******\libavutil\x86\Makefile


  • 追記 2012年7月18日
    ffmpeg-configure-fix.diff を使うことで make した時の Makefile のエラーを回避できる。
    Sada_Maruさんのコメントが大変参考になりました。
    【AAC+】HE-AAC が使える ffmpeg をつくる方法 : #comment449
    【AAC+】HE-AAC が使える ffmpeg をつくる方法 : #comment452

    fdk-aac の使い方


    ffmpeg -i infile -acodec libfdk_aac -profile:a aac_he -ab 48k -ar 44100 -ac 2 -afterburner 1 out.m4a

    -profile:a で指定できるのが
    • aac_low :AAC-LC 何も指定しないとこれになる
    • aac_he :HE-AAC 44.1kHzでは28kから使える 推奨32k-48k
    • aac_he_v2 :HE-AACv2 44.1kHzでは28k-64kまで使える 推奨16-24k(24kHz,22.05kHz)
    • aac_ld :AAC-LD flashで再生不可
    • aac_eld :AAC-ELD flashで再生不可

  • -afterburner は品質を上げるオプション。規定値では使用するようになっているので改めて指定する必要はない。

    FFmpeg Codecs Documentation - libfdk_aac

    詳しくは -h コマンドで確認できる。E..A. はエンコード、オーディオの意味
    そのまま -h で出力してもコマンドが流れるので ffmpeg -h > ffmpeg_help.txt 2>&1 で ffmpeg_help.txt にリダイレクトして出力させる。

    libfdk_aac AVOptions:
    -afterburner E..A. Afterburner (improved quality)
    -eld_sbr E..A. Enable SBR for ELD (for SBR in other configurations, use the -profile parameter)
    -signaling E..A. SBR/PS signaling style
     default E..A. Choose signaling implicitly (explicit hierarchical by default, implicit if global header is disabled)
     implicit E..A. Implicit backwards compatible signaling
     explicit_sbr E..A. Explicit SBR, implicit PS signaling
     explicit_hierarchical E..A. Explicit hierarchical signaling

    aacplus ではTSが残らなかった HE-AACv2 はオプション(-signaling implicit、-signaling explicit_sbr)を追加することでTSが残るようになった。


    これでTSが残る HE-AACv2 配信が可能になる。
    -profile:a aac_he_v2 -signaling implicit
    -profile:a aac_he_v2 -signaling explicit_sbr



    ffmpeg -i infile -acodec libfdk_aac -profile:a aac_he_v2 -signaling explicit_sbr -ab 24k -ar 44100 -ac 2 -afterburner 1 out.m4a

    stream encoded with profile - aac_he_v2 - not playing in flash players · Issue #5 · mstorsjo/fdk-aac · GitHub

    商用不可の個人利用に限り、バイナリでの再配布禁止。ライセンスについてはまだよくわかっていない。



    追記 2013/06/29 ライセンスについて
    [FFmpeg-devel] Load FDK AAC at run-time
    fdk-aac/NOTICE at master · mstorsjo/fdk-aac · GitHub
    libfdk-aac: Relicense the library wrappers to the ISC license · 2f70651 · FFmpeg/FFmpeg · GitHub

    Open Source Fraunhofer AAC Encoder (fdk-aac) - Hydrogenaudio Forums

    誤った利用を防ぐために。このソフトウェアのライセンスは何かを特定「JNinka」 - MOONGIFT| で fdk-aac-0.1.0.tar.gz を出力してみた。
    fdk_aac_license.zip
    関連記事

この記事へのコメント

名無しさん(笑)@nw22012/07/16 (月) 09:43:12

ライセンス、ざっと見、GPLインコンパチくさいですね
というかオープンソースの定義にも反してるような印象
うーん残念

X5-452(Sada_Maru)2012/07/18 (水) 00:05:33

vo-aacenc + libaacplus
fdk-aac + libaacplus
上記 2種類を混在してffmpeg/libavをbuildするとErrorが出るので気を付けましょう。

X5-452(Sada_Maru)2012/07/19 (木) 02:36:45

fdk-aacは"External library"なので、--disable-xxxxと言うコマンドは存在しませんので、インストールしててもしてなくても"--enable-libaacplus"を付けなければ無効になります。

-2012/07/29 (日) 02:19:13

コーデックの使い方の項で、
aac_he_v2 :HE-AACv2 28k-64kまで使える 推奨16-24k
この記述だと使える範囲と推奨範囲が矛盾しているのですが、記述ミスですか?

ロベルト2012/07/29 (日) 09:44:00

> コーデックの使い方の項で、
> aac_he_v2 :HE-AACv2 28k-64kまで使える 推奨16-24k
> この記述だと使える範囲と推奨範囲が矛盾しているのですが、記述ミスですか?

指摘ありがとうございます。
44.1kHzではというのが抜けていました。推奨の16-24kを使うには44.1kHz未満の24kHzや22.05kHzにしなければなりません。

管理人のみ通知 :

トラックバック


ニコニコチャンネル始めました
ニコラボチャンネル
スポンサード リンク
THE IDOLM@STER THE@TER ACTIVITIES 03
THE IDOLM@STER THE@TER ACTIVITIES 03

Fate/EXTELLA REGALIA BOX for PlayStation (R) 4 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS4
Fate/EXTELLA REGALIA BOX for PlayStation (R) 4 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS4

妖怪ウォッチ くったりぬいぐるみだニャン ジバニャン
妖怪ウォッチ くったりぬいぐるみだニャン ジバニャン

Fate/EXTELLA VELBER BOX 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS4
Fate/EXTELLA VELBER BOX 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS4

Fate/EXTELLA REGALIA BOX for PlayStation (R) Vita 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS Vita
Fate/EXTELLA REGALIA BOX for PlayStation (R) Vita 【初回限定特典】ネロ・クラウディウス、アルトリア・ペンドラゴン衣装「純真のナイトドレス」プロダクトコード付+【Amazon.co.jp限定特典】アルテラ衣装「スイートデビル」プロダクトコード配信 - PS Vita

【早期購入特典あり】初音ミクシンフォニー~Miku Symphony 2016~オーケストラ ライブ CD(初音ミクシンフォニー描き下ろしクリアファイル付き(ランダム配布))
【早期購入特典あり】初音ミクシンフォニー~Miku Symphony 2016~オーケストラ ライブ CD(初音ミクシンフォニー描き下ろしクリアファイル付き(ランダム配布))

「うたわれるもの 偽りの仮面&二人の白皇」歌集(初回限定盤)
「うたわれるもの 偽りの仮面&二人の白皇」歌集(初回限定盤)

TVアニメ『ラブライブ!サンシャイン!!』挿入歌シングル「想いよひとつになれ/MIRAI TICKET」
TVアニメ『ラブライブ!サンシャイン!!』挿入歌シングル「想いよひとつになれ/MIRAI TICKET」

『刀剣乱舞-花丸-』 歌詠集 其の三 特装盤
『刀剣乱舞-花丸-』 歌詠集 其の三 特装盤

本好きの下剋上~司書になるためには手段を選んでいられません~第一部 「本がないなら作ればいい3」
本好きの下剋上~司書になるためには手段を選んでいられません~第一部 「本がないなら作ればいい3」

新着記事と追記・編集記事
スポンサード リンク
ブログ内検索
プロフィール

Author:ロベルト
お問い合わせはこちらまで
robelt2525[at]gmail.com

中の人 @nico_lab
ブログ更新用 @blo_nico_lab

詳しいプロフィールはこちら

カテゴリ
アクセスの多い記事
記事アーカイブ

最新コメント
リンク
ニコニコ静画
アニメカテゴリ毎時ランキング
免責事項
当ブログはリンクフリーです。記事によりトラブルが生じた場合でも、当ブログ管理人は一切の責任を負いません。 当ブログに記載されている情報の正誤や利用は、ご自身の判断でお願いします。 紹介したアプリケーションに関する問い合わせは作者に問い合わせてください。ニコニコ動画に関する質問はまずは公式掲示板、2ch、各Q&Aサイトを参照ください。
ブログの読者になる(RSS)
アクセス数