fc2ブログ

【EAC】外部エンコーダエラーが出る人のためのrefalac

私的メモですが、同様のエラーが出る方の参考になれば、幸いです。

症状:EACでrefalacを使おうとすると、以下のような「外部エンコーダがエラーを報告しました!」というエラーメッセージが出る。
Extrenal_encoder_error.png

解決方法:EACのコマンド(両端が%で囲まれているコマンド)をダブルクオーテーション(")で囲む。
コマンド例) "%source%" -o "%dest%" --verbose --title "%title%" --artist "%artist%" --band "%albumartist%" --album "%albumtitle%" --composer "%composer%" --comment "%comment%" --genre "%genre%" --date "%year%" --track "%tracknr%/%numtracks%" --disk "%cdnumber%/%totalcds%" --lyrics "%lyrics%" --artwork "%coverfile%"

ちなみに、上のコマンド例はEACで取り込んだWAVをALACに変換し、EACでタグ付けしたアーティスト名やジャケット画像、歌詞をALACにタグ付けするものです。

念のため、どういうことをやっているか説明すると、

"%source%" -o "%dest%" : [(EACのコマンド)エンコード元のファイル名] [(refalacのコマンド)出力ファイル名を指定する。] [(EACのコマンド)出力ファイル名]

--verbose : より詳細なコンソールメッセージを表示するようにする。

refalac_without_verbose.png
--verbose無しの時

refalac_verbose.png
--verbose有りの時


ここから先は、EACでタグ付けしたアーティスト名やジャケット画像、歌詞をALACファイルにタグ付けしていく処理です。

[refalacのコマンド] "[EACのコマンド]" : [EACでの項目名]→[iTunesでの項目名]

--title "%title%" : [タイトル]→[曲名]

--artist "%artist%" : [アーティスト]→[アーティスト]

--band "%albumartist%" : [CDアーティスト]→[アルバムアーティスト]

--album "%albumtitle%" : [CDタイトル]→[アルバム]

--composer "%composer%" : [作者]→[作曲者]

--comment "%comment%" : [コメント]→[コメント]

--genre "%genre%" : [ジャンル]→[ジャンル]

--date "%year%" : [リリース年]→[年]

--track "%tracknr%"/"%numtracks%" : [トラックナンバー/(総トラック数)]→[トラック]

--disk "%cdnumber%"/"%totalcds%" : [CDナンバー/CD数]→[ディスク番号]

--lyrics "%lyricsfile%" : [歌詞]→[歌詞]

--artwork "%coverfile%" : [CDジャケット]→[アートワーク]

■EACのエンコードオプション
EAC_refalac_settings-1.png

EAC_refalac_settings-2.png


EACとqaac(iTunesのAACエンコーダのフロントエンド。--formatsオプションを除いて、refalacとコマンドが共通。)のコマンド一覧はそれぞれ以下のサイトで確認できます。

qaac: https://github.com/nu774/qaac/wiki/Command-Line-Options
EAC: http://sonicdisorder.net/eacenccommand.php


では。
スポンサーサイト



【Aviutl】インターレース保持時の参照距離と最大連続Bフレーム数【x264】

最大連続Bフレーム数と参照距離の関係は、コチラコチラのサイトを見るとわかるように

・2 x 最大連続Bフレーム = 参照距離
・最大連続Bフレーム数は3の倍数


の時が、最も画質が良いらしいのでプログレッシブな動画を作る際はこれに従ってエンコード速度を見ながら適当な値を設定してやればいいのですが…

1920x1080のフルHD動画をインターレースを保持した状態でエンコードする時はちょっとすんなりいかないんですね(´・ω・`)

というのも、
①インターレースが扱えるのはH.264 Level 2.1~4.1まで
②参照距離の最大値はDPB(Decoded Picture Buffer)が関係している→詳しくはコチラのサイトの下の方にある「おまけ:DPBと--refの最大値の計算」を参照

で、結論としては
1920x1080の動画をLevel 4.1でエンコードする場合、参照距離の最大値は4

ここで、一番上の四角で囲った部分を見ていただくとわかるように
参照距離は最大連続Bフレーム数の2倍が好ましく、また最大連続Bフレーム数は3の倍数であることが好ましい
つまり、参照距離は最低でも6でなければならない
ということで、ここでの疑問は

・「2 x 最大連続Bフレーム = 参照距離」と「最大連続Bフレーム数は3の倍数」のどちらを優先したほうが画質が良くなるか?
・参照距離が稼げない分、最大連続Bフレーム数に参照距離の1/2を超えた値を指定しても良いのか


ということで、早速検証しました

■検証方法
某アニメの冒頭3000フレーム(1分40秒)をそれぞれの設定でエンコードし、SSIMを算出、比較しました
(出来るだけオリジナルとの差異をなくすため、フィルターは一切無しでエンコードしました)

Q,なぜ、3000フレーム?
A,本当は24分まるまるエンコードしたほうが、より正確な値を出せると思うのですが
流石に時間がかかるので今回は3000フレームだけエンコードした結果で比較しました
なぜ、3000フレームなのかについてはコチラの3項目に書いてあります


■検証環境
・Aviutl 1.00(入力プラグインはL-SMASH Works File Reader r679、出力プラグインは拡張x264出力(GUI)Ex 2.02を使用)
・エンコーダーはx264 r2358(x64版)

■検証結果
参照距離 / 最大連続Bフレーム数:SSIM値(1.0に近いほど画質が良い)
①4 / 3:0.9894866
②4 / 6:0.9894253
③4 / 9:0.9894351
④4 / 2:0.9894806
⑤4 / 0:0.9893641

①と②・③を比較すると、最大連続Bフレーム数は参照距離の1/2を超えない方が良いみたいです
また、①と④を比較すると、無理に「2 x 最大連続Bフレーム = 参照距離」の関係を成り立たせるより、「最大連続Bフレーム数は3の倍数」であることを優先したほうが良いみたいです
あと、最大連続Bフレーム数は0にはしないほうがいいみたいです(⑤)

■結論
正直、殆ど差はない
気にしたい人だけ気にしよう

コチラのサイトによるとSSIMの値が0.98以上では見分けが付かないらしいので、正直気にする必要は無いと思います(つまり、この記事の意味なし!

では