Linux で H.264/AAC エンコード

Table of Contents

詳細はともかく、コピペで使いたいという方向け。 動作確認は bash のみ。

各種エンコーダの概要

使ってみたり調べたりしたモノ。 編集したければノンリニア編集ソフトや、DAW(Digital Audio Workstation) とかを使った方がいいかも。

  • x264
    • ソフトウェアエンコーダの定番
    • 映像をエンコードするのみ
    • MP4 コンテナを扱うには GPAC/L-SMASH が必要
    • 内臓フィルタを扱うには FFmpeg/Libav が必要
    • 複数のオプションを追加した非公式なものが存在する (ここでは扱わない)
  • FFmpeg
    • FFmpeg だけあれば、他がいらないかもしれないという意味でお手軽
    • x264 もしくは OpenH264/NVENC (v2.6) か QSV (v2.7) が必要
    • 組み込める LC 対応エンコーダは FDK-AAC > 内蔵AAC (v3.0) >> FAAC など (その他は解析してない)
    • 字幕を扱える
    • フィルタが豊富
    • 付属の ffserver は配信できる
    • 付属の ffplay は再生できる
  • MPlayer
    • 主に再生で用いる
    • 付属の mencoder はエンコードできる
    • FFmpeg を内包している ( x264 が必要)
    • インターレース解除などのフィルタが豊富
    • ISO イメージも扱える
  • Nero AAC
    • Nero社よりバイナリで提供
    • LC/HE/HEv2 に対応
    • 2-pass エンコードができる
  • FAAC
    • MAIN/LC/LTP に対応
    • FFmpeg/Libav などに組み込める
  • FDK AAC
    • AAC の開発元の一つである Fraunhofer IIS より提供 ( MP3 の開発元でもある)
    • LC/HE/HEv2 などに対応
    • FFmpeg/Libav などに組み込める
  • qaac
    • Apple 社より提供されている iTunes などが必要
    • エミュレータ?が必要 (ややこしくなるので気にしてはいけない)
    • LC/HE などに対応
  • fdkaac
    • FDK AAC のフロントエンド

他にもいろいろある。よく知らないけど。

  • Libav
    • FFmpeg でいろいろあって分裂した
    • コマンドは avconv
  • Avidemux
    • GUI
    • x264 が必要
    • FAAC を組み込める
  • HandBrake
    • GUI
    • x264 が必要
    • FDK AAC を組み込める (v0.10.0)
  • vo-aacenc
    • VisualOn 社より提供
    • LC 対応
    • Libav などに組み込める (FFmpeg は v3.0 廃止)
  • AAC+
    • 3GPP より提供
    • HE/HEv2 対応
    • Libav などに組み込める (FFmpeg は v3.0 廃止)
  • GPAC
    • MP4Box で MP4 コンテナに手を加えることができる
    • x264 の MP4 muxer として組み込める
  • L-SMASH
    • MP4 コンテナの規格に "できるだけ(実用的な範囲で?)" 忠実に実装しているらしい
    • x264 に MP4 muxer として組み込める (r2376)
  • AvxSynth
    • AviSynth の Linux 版
    • スクリプトフィルタは AviSynth のが流用できるかも?
  • GNEVE
    • Emacs で映像編集
    • フロントエンドに徹して、キーボードで操作を完結できるならアリだと思う
  • OpenH264
    • Cisco 社より提供
    • Firefox に組み込める (v33)
    • FFmpeg に組み込める (v2.6)
  • VapourSynth
    • AviSynth を置き換える予定のフレームサーバ
    • 音声はまだ扱えない
  • NVENC
    • NVIDIA 社より提供
    • ハードウェアエンコーダ (CUDA)
    • FFmpeg に組み込める (v2.6)
  • GStreamer
    • マルチメディアフレームワーク
    • gst-omx にて AMD 社より提供されているハードウェアエンコーダを組み込める (VCE)
    • gst-plugins-ugly にて x264 を組み込める
    • gst-plugins-bad にて FAAC/vo-aacenc を組み込める
  • OBS Multiplatform
    • GUI
    • 主にライブ配信向け?
    • x264 が必要
    • FDK AAC を組み込める
    • FFmpeg を組み込める
  • Intel Media Server Studio
    • Intel 社より提供 (付属の SDK が必要)
    • ハードウェアエンコーダ (QSV)
    • mfx_dispatch が必要
    • FFmpeg に組み込める (v2.7)

x264

コマンド

  • 再現性を優先
    --preset placebo に近い。 当方が常用しているのは、--me umh --subme 9 --trellis 1 --aq-strength 0.6 に変えたもの。
    x264 --muxer mp4 --demuxer lavf --video-filter resize:width=512,height=288,sar=0:0,csp=i420:8,method=area --crf 26 --me tesa --subme 11 --qcomp 0.8 --qpstep 8 --partitions all --bframes 3 --b-adapt 2 --trellis 2 --ref 6 --aq-strength 0 --no-psy --no-dct-decimate --chroma-qp-offset -2 --threads auto --output "$2" -- "$1"
    
  • 視覚を考慮
    デフォルトに近い。SSIM=0.980 以上を狙いつつ、エンコード時間と再生負荷を抑える。
    -> 512x288, 30000/1001->24000/1001fps
    x264 --muxer mp4 --demuxer lavf --video-filter resize:width=512,height=288,sar=0:0,csp=i420:8,method=area/select_every:5,0,1,3,4 --crf 26 --me umh --subme 7 --qcomp 0.8 --qpstep 8 --partitions "p8x8,b8x8,i8x8,i4x4" --bframes 3 --ref 6 --psy-rd 0.25:0.0 --aq-strength 0.6 --threads auto --output "$2" -- "$1"
    

オプション

  • できるだけ元の映像を再現する方向で、等倍もしくは縮小するときに留意するもの
    --crf / --bitrate / --qp はどれか一つだけ 記述すること。 それぞれが、品質固定(VBR) / 平均or固定ビットレート(ABR or CBR) / 固定量子化値(CQP) のモードを選択するものの、どれが有効になるかは実装次第なので。
    オプション 効果
    --crf 26.0 品質固定 (VBR) モード。品質を量子化値 (QP: Quantization Parameter = 間引く量のこと、以降 QP と記述する) で指定すると考えて差し支えはない。26 はエコノミー品質。20 で元の映像とほとんど同じ。16 未満にしても無意味。なお、0 にするだけでは可逆にできない。小数指定可。実際には、指定の値でレート因数を固定 (crf: Constant Rate Factor) して、ビットレートを考慮せずに QP を決定する。
    --me umh 動き探索 (Motion Estimation) に umh (Uneven-cross Multi-Hexagon-grid search) を指定。動きの複雑な映像のビットレートを低くするなら umh 以上を推奨。というより探索パターンが少なくて単純な hex と、愚直で遅い esa は避けたい。umh は複数の探索パターンを用いるけど、無駄な探索は抑える仕組みになってる。探索半径は --merange で指定。
    --subme 7 より低いビットレートで品質を保持するために、RD (Rate-Distortion optimization: レート歪み最適化、以降 RD と記述する) は必須。よって 5 以下は論外なので、サブピクセルについては考慮しない。基本は 7/9/10/11 からの選択となる。--bframes 0 なら 6/8 もアリ。数字が大きいほど精度が良い。10/11 を指定するなら、--trellis 2 --aq-mode 1 以上を同時に指定しないと 9 に変更されてしまうので注意。
    --partitions all マクロブロックの分割パターン。品質に関しては RD に丸投げするので全て有効にする。p4x4 が増えるので再生負荷がちょっと上がるけど、ビットレートは低くなるハズ。
    --bframes 3 3 以下を指定する。24fps の場合、劣化したフレームが 4 つ以上続くと品質の低下を視認できることがある。低品質なソースでは 0 にすることも考えること。
    --aq-mode 1 QP の オフセット を決定する方法を選択する。マクロブロック間の品質の差は 0<1<2 の順に大きくなる。0 で無効にするのは非推奨。適応 QP モードについての補足は下記
    --aq-strength 0.6 --aq-mode の係数。0.0〜3.0 を指定できる。数字が大きいほどマクロブロック間の品質の差が大きくなる。0 を指定すると --aq-mode 0 とほぼ同じだけど、QP の変動が単純になるので --subme 10 以上の場合を除いて非推奨。指定の値は、--aq-mode 1 なら固定され、--aq-mode 2 だとフレーム毎に変動する。大きな値を指定して周辺とは品質の差が大きいマクロブロックが発生すると、ブロックノイズになるので注意。
    --trellis 1 量子化後に残った成分を個別に丸めて最適化する。一律な量子化による歪みが軽減されて品質が向上するので、1 以上を推奨。同時に --no-dct-decimate を指定すると結果を維持できる。トレリス (trellis) は、複数の親ノードを持つツリー構造なアルゴリズムの名前?。トレリス線図とか検索するとわかるかも。
    --no-dct-decimate 成分の少ないマクロブロックから品質補償なしで間引くのをやめる。ビットレートは高くなるけど --trellis 0 なら指定を推奨。--trellis 1 以上でも、余計な間引きをしなくなってわずかに品質が良くなる。ノイズの原因を減らすことになるのでグレインを残すときや、リンギングノイズを軽減したいときに指定する。ベタな赤のエッジがにじんでしまって気になるけど --crf 20 でも除けないときなどに多分有用。
    --no-psy --psy-rd を無効にする。視覚についてまったく考慮しないという意味ではない。指定するとビットレートが低下するのは、色 (色差、彩度) の QP=+2 とノイズ?低減などによる。再現性を優先するなら必須。
    --chroma-qp-offset -2 色の QP オフセット。0 がデフォルトだけど、--psy-rd の値に応じて 0〜-4 が加算される。(左右の値それぞれについて 0<f<0.25 なら -1、 0.25<=f で -2。--no-psy は 0)
  • 基本的に使わないもの
    オプション 効果
    --pass 2 2-pass エンコード。平均ビットレートを指定して、ファイルサイズを決めることができる。ただし、平均ビットレートが同じなら品質固定な --crf の方が高品質。
    --bitrate <integer> 平均ビットレート (ABR) モード。2pass エンコードで --vbv-maxrate に同じ値を指定すると、固定ビットレート (CBR) になる。
    --qp 0 固定量子化値 (CQP) モード。0 で可逆モード。0 を越える値は、特定の QP ごとに映像を比較するようなテスト向け?。
    --fps 24000/1001 フレームレートの指定。フレーム数は増減しないので、再生速度が変わることになる。(select_every に上書きされるので注意)
    --psy-rd 0.25: 複雑さを測定するときの感度係数。0.0〜10.0 を指定できる。平坦になったと感じられるなら、値を指定することで適度に複雑さを保てるかも。大きな値を指定すると複雑な箇所がキレイに見えやすくなるけど、平坦な箇所は鮮明さを失ってモスキートノイズが発生しやすくなる。心理視覚についての補足は下記
    --psy-rd :0.0 --trellis による丸めの感度係数。0.0〜10.0 を指定できる。平坦になったと感じられるなら、値を指定することで適度に粗くなるかも。大きな値を指定すると粗かった箇所がより粗さを保ってるように見えやすくなるけど、エッジの周辺は鮮明さを失ってモスキートノイズが発生しやすくなる。心理視覚についての補足は下記
    --no-fast-pskip 映像の一部が引きずられるようにして残る場合に使う。スキップ判定のミスを抑制できるので、常に指定するのもアリ。動き探索の回数は増えるけど、負荷は小さい。
    --no-mbtree 成分が少なくなるマクロブロックタイプを優先的に選択するのをやめる。指定すると動いてるところや暗部などから間引く量が減る。小さな QP を指定すると同時に QP の増分を抑えても、なお暗部の劣化が気になってしまう場合などに指定するかも。主に巨大モニタを間近で見る方や、不幸なほどに目の肥えてしまった方向け。指定すると CQP に近づいてしまうので、--subme 10 以上を推奨 ( QP-RD が有効になるので、--aq-strength 0 も指定すると少し品質が向上する) 。ビットレートを抑えたいなら非推奨。
    --no-cabac 再生負荷は軽くなるけど、ビットレートが高くなって映像のファイルサイズが 10% ほど増える。 CABAC に対応していない携帯端末などで再生する時に指定する。
    --no-deblock --deblock を無効にするのは非推奨。極端に小さな QP でない限りブロックノイズは発生するもので、ないように見えても存在するものだと考えておくべき。再生のときにデブロックフィルタ (ループフィルタとか書いてあるかも) が使えないなら指定する。
    --deblock 0:0 インループなデブロックフィルタの強さ。左値がブロックの境界に、右値がその周囲に作用する。不要な箇所には作用しないし QP に応じて最適化されるので、0:0 から動かしても品質が向上する可能性は低い。潰れて欲しくない箇所が潰れたなら -1:-1、ブロックノイズが見えるのなら 1:1 にしてみるかも。必要になるのは --psy-rd を考慮する場合やカスタムマトリクスを使うときくらい?。
    --nr <integer> 負荷の少ないノイズフィルタ。単純で融通が効かないので使ってない。--no-deblock が必要なときには役立つのかも。ノイズ除去についての補足は下記
    --vbv-maxrate <integer> ビットレート (kbit/s) の上限。0〜2000000 を指定できる。--vbv-bufsize の指定が必須。
    --vbv-bufsize <integer> バッファサイズ (kbit) 。0〜2000000 を指定できる。
    --threads <integer> スレッド数。auto がデフォルト。
    --level <string> 自動的に最適な値になるので使わない。 再生機器の性能に応じて指定する。
    --profile <string> 自動的に最適な値になるので使わない。 再生機器の性能に応じて指定する。
    --preset <string> オプションを個別に指定するのが面倒な方向け。
    --tune <string> オプションを個別に指定するのが面倒な方向け。
    --fullhelp 全てのオプションを一覧する。習熟した方ならこれで十分に違いない。当方がそう思えたのは、ソースコードを読んだ後だけど。

  • 適応 QP モード (--aq-mode: Adaptive QP offset MODE) についての補足
    何に応じてマクロブロック単位の QP の オフセット を決定するのかを選択する。 マクロブロック間の品質の差は 0<1<3<2 の順に大きくなる。
    --aq-mode 効果
    0 無効にする。同時に --no-mbtree の指定が必須。無効にすると QP の変動が単純になるので非推奨。
    1 マクロブロックの差分に応じたオフセットになる。
    2 マクロブロックの差分とフレームの差分の量を考慮して、オフセットは動きの少ないフレームでは小さく、動きの多いフレームでは大きくなる。
    3 基本的には 2 と同じ。違いは、暗部などのビットが少ないところでオフセットが大きくなりにくいこと。(r2524)

  • 心理視覚最適化 (--psy-rd: PSYcho-visual Rate-Distortion optimization) についての補足
    サイコビジュアルって用語を、わかりやすく(乱暴に)言い換えるとアンチエイリアス。 フォントに使われてるアレ。 再現性は低下しても、目で見る分には良くなることがある。

    オプションとしては、複雑な箇所をどのくらい優先するかを指定するもの。 間引いたらソースよりも平坦な映像になるのは仕様なんだから、 平坦な箇所よりも複雑な箇所を少し優先することで、良くなったように見えるのかも。

    --crf 26 でモスキートノイズの発生を避けるなら、どちらの値も 1.0 以下が目安。 値が大きすぎると、ビットレートを高くしてノイズを加える側面がある。 QP を小さくすれば許容できる値が大きくなるかもしれないけど、効果はわかりにくくなると思う。 再現性を優先するなら --no-psy を推奨。 ビットレートの制限がキツいときも、--no-psy は有用。 個々人の嗜好、ソース、モニタなどによるところもあるので、ノイズが発生しない範囲内で好みの値を選択する。 同時に --deblock などの値を調節したほうがいい場合もあるので注意。( --tune 参照)

    少し粗めのソースを、フィルタなしでエンコードするようなときには手軽かも。 にじみに見えてしまうので、当方はできるだけ使わないことにしてる。 ( 2001 年に製造停止されたアナログ入力な液晶モニタなので参考にならないかも)

    --psy-rd RD:Trellis
    

    RD の値は、複雑さを測定するときの感度係数。 値が大きいほどマクロブロックが複雑だと判定されやすくなって、 ブロックサイズが大きくなったりスキップされにくくなったりするのでビットレートは高くなる。 高周波成分が残りやすくなるという側面もあるので、潰れてしまったグレインなどにはいいのかも。

    Trellis の値は、量子化後に丸める際の感度係数。 値が大きいほど、マクロブロック内の偏りを生む周波数成分が削られ (-1 され) やすくなる。 ついでに潰れた薄い線とかが復元されるように見えることもあるけど、 それは歪みが大きいと判定されてマクロブロックタイプに参照なしを選択されたり、 小さな QP を適用するハメになったりすることでビットレートが高くなるからだと思う。 (検証不足につき注意)

  • ノイズ除去についての補足
    ノイズが発生したときは QP (--zones/qpfile) を小さくする、10bit に走る、フィルタを使うなどの方法がある。 当方は許容できないノイズだけを FFmpeg などのフィルタで除去して、x264 には再現性のみを求める方針。 再生に MPlayer を使っているなら、フィルタ (-vf) を指定したり、映像出力ドライバ (-vo) を変えるという手もある。 ( gl/vdpau などの映像出力ドライバは RGB に変換するので、明暗部が潰れてノイズがわからなくなる)

    ブロックノイズは発生させたら負け。 よってキツいブロックノイズのあるソースはあきらめる。 バンディングは QP を小さくしてもダメなら 8bit で表現できないからだと考えて均す。 ビットレートの制限がキツいとか、ソースが汚いのでなければ、妥協するのはこの 2 つくらい?。

    ソースに比べて静止部分が汚いとか潰れたなどと感じるなら、割り当てられた QP が大きいということ。 よって小さな QP (--zones/qpfile) を指定するのみ。

    ソースに比べて動く部分が汚いとか潰れたなどと感じるなら、割り当てられた QP の増分が大きいということ。 動き探索の精度を高く、QP (--zones/qpfile) 小さくするのが基本。 ビットレートをより低くする方針でキレイにするのは難しいので、必要な QP が割り当てられるまで複数のオプションを変更したりはしてない。 (FFmpeg などのフィルタでノイズを除去したり、映像を平坦にするなどの手はある)

  • 参照元
    2012.09.16 に git pull した ソースコード(r2216) を参考に記述してある。 ついでに コールグラフ も出力したけど、500 個以上のノードを省略してるので注意。

    古くなったけど、まだ通用するハズ。(r2538)

フィルタ

  • FFmpeg/Libav を必要とするものを含む。
    --video-filter 効果
    resize:width=512,height=288 フレームサイズの指定。height=288 は 16 と 9 の公倍数よりフレームの高さに指定した。マクロブロック 16x16 と、アスペクト比 16:9 によるもので、モニタサイズや規格に従って決めても構わない。 ただし、奇数はエラーになる。2K 以下を列挙すると、144, 288, 432, 576, 720, 864, 1008, 1152, 1296, 1440, 1584, 1728, 1872, 2016, 2160。
    resize:sar=0:0 Sample Aspect Ratio の指定。再生時にフレームサイズを強制的に伸縮させないなら、0:0 で良い。
    resize:csp=i420:8 色空間(Color SPace)の指定。色を完全に再現する必要はないので、BD/DVD と同じ yuv420p, 8bit(256階調) に固定。2x2pixel を { y:輝度x4 + u:色差Cbx1 + v:色差Crx1 } x 8bit で量子化する。情報量は yuv444p の半分。指定がなければソースと同じになる。
    resize:method=area 画素間の補間方式に area を指定。area は 縮小向け なので注意。少しシャープな映像になる。もしジャギーになるようなら lanczos を使う。lanczos でもダメならフィルタを併用する。他にもあるが使っていない。
    select_every:5,0,1,3,4 フレームレートの変更。左の欄は 24->30fps (30000/1001->24000/1001fps) の例。実際はフレームを取捨する。{0}〜{4} の連続する 5 フレームのうち、{0},{1},{3},{4} の 4 フレームを残し、{2} の 1 フレームを破棄する。結果としてフレームレートが変わる。指定可能なステップは 100 まで。--fps オプションを上書きしてしまうため、併用できないことに注意。
    crop:0,60,0,60 四辺を切り落とす。left, top, right, bottom の順。左の値は 640x480(4:3) の映像を 640x360(16:9) にするためのもの。

FFmpeg

コマンド

  • 映像のみエンコード
    音声はコピー。字幕は削除。後で結合する必要がない。
    ffmpeg -i "$1" -vcodec libx264 -acodec copy -sn -map 0:0 -map 0:1 -vsync cfr -aspect 16:9 -s 512x288 -r 24000/1001 -pix_fmt yuv420p -sws_flags 'area+bitexact+print_info' -x264-params 'crf=26:me=umh:subme=7:qcomp=0.8:qpstep=8:partitions=p8x8,b8x8,i8x8,i4x4:bframes=3:ref=6:psy-rd=0.25,0.0:aq-strength=0.6' "$2"
    
  • パイプ出力
    FFmpeg のフィルタを通して、別に用意した最新の x264 を使うなどが可能。
    ブロックノイズのチラつきなどを減らすため hqdn3d フィルタを調節して適用する。グレインが潰れるかもしれない。
    ffmpeg -i "$1" -f yuv4mpegpipe -filter hqdn3d=4:3:6 -s 512x288 -r 24000/1001 -pix_fmt yuv420p -sws_flags -bicubic+bitexact+area+print_info -v 0 - | x264 --muxer mp4 --demuxer y4m --crf 26 --qcomp 0.8 --qpstep 8 --partitions "p8x8,b8x8,i8x8,i4x4" --me umh --subme 7 --bframes 3 --ref 6 --psy-rd 0.3:0.0 --aq-strength 0.6 --threads auto --output "$2" -
    
  • 音ズレ補正
    映像と音声を結合(追加)しつつ、音声を 0.4s 遅らせる。一定間隔の音ズレを補正。
    ffmpeg -i "video.h264" -ss -0.4 -i "audio.aac" -vcodec copy -acodec copy "av_joined.mp4"
    
  • ディスプレイをライブ配信 (未検証)
    利用する配信サーバ側の制限に応じて、オプションの追加や変更が必要になる。 配信中にディスプレイとカメラの映像を切り替える安易な方法は、 MPlayer でカメラの映像を再生 してウィンドウマネージャを操作すること。
    ffmpeg -f x11grab -i :0.0 -s 512x288 -aspect 16:9 -f alsa -i hw:0 -vcodec libx264 -acodec libfdk_aac -vsync cfr -y -f flv 'rtmp://... flashver=FME/3.0\20(compatible;\20FMSc/1.0)'
    
  • 音声のみエンコード
    内蔵 AAC で CBR エンコード。 (VBR は非推奨)
    ffmpeg -i "$1" -acodec aac -b:a 69k "$2"
    

オプション

  • 汎用なものの一部 (-x264-params を除く)
    オプション 効果
    -i <file_name> ソースとして入力するファイル名。複数指定可。
    -i :0.0+10,20 ディスプレイをキャプチャするときのもの。ホスト名、ディスプレイ、スクリーン (xdpyinfo コマンドで確認できる) と、キャプチャ領域の左上 XY 座標を指定。
    -i hw:0 音声をキャプチャするときのもの。カード、デバイス、サブデバイスの順に指定。
    -ss -0.4 シーク、頭出し、開始時刻(s)。負の値を指定すると開始時刻が遅れる。-ss 以降の最初に -i で渡された入力が対象。複数指定可。
    -to 60 終了時刻(s)。指定の時刻、または終端までになる。再生できる時間は -ss の値によって増減する。
    -t 60 継続時間(s)。指定の時間分の再生ができるようになるか、終端までになる。
    -vcodec copy 映像をコピー。libx264 もしくは libopenh264 (v2.6)、 nvenc (v2.6 のみ)、 nvenc_h264/h264_qsv (v2.7) の指定で H.264 エンコード。複数指定可。libx264 なら -x264-params に詳細を指定する。( -vn で映像なし)
    -acodec copy 音声をコピー。libfdk_aac / libfaac / aac などの指定で AAC エンコード。複数指定可。( -an で音声なし)
    -scodec copy 字幕をコピー。コーデックの選択もできる。複数指定可。( -sn で字幕なし)
    -map 0:0 <input_file_id>:<stream_specifier> の順。左の値は -i で最初に記述した入力ファイルの 0 番目のストリームを選択する。複数指定可。記述の順にコンテナに格納される。
    -f yuv4mpegpipe 非圧縮な YUV4MPEG2(Y4M) 形式。
    -f x11grab ディスプレイの映像をキャプチャできる。-r 30000/1001 -s 640x480 -aspect 4:3 がデフォルト。
    -f video4linux2 カメラの映像をキャプチャできる。
    -f alsa 音声をキャプチャできる。最近は pulse かも。
    -b:v 200k 映像のビットレート。
    -b:a 69k 音声のビットレート。 -acodec aac では CBR 。モノラル 69k、ステレオ 128k 以上推奨。
    -q:a 1.41 音声の品質。 -acodec aac では VBR 。 1.41〜2.7 を指定。1.41 未満だと人の声がおかしくなるほど極端に再現性が低下した。 CBR の使用を推奨。
    -ac 2 音声のチャネル。
    -r 24000/1001 フレームレート。
    -s 512x288 フレームサイズ。
    -aspect 16:9 アスペクト比。
    -pix_fmt yuv420p ピクセルフォーマット。yuv420p は BD(2K)/DVD と同じ。10bit にするなら yuv420p10le など。-pix_fmts で一覧できる。
    -vsync cfr 映像の同期方法。固定フレームレートなら cfr を指定して、必要に応じてフレームの複製や破棄をする。可変フレームレートなら vfr を指定して、同じタイムスタンプのフレームを破棄する。変えたくなければ passthrough を指定する。auto で出力するコンテナなどに応じて cfr/vfr/passthrough を自動選択するのがデフォルト。タイムスタンプがおかしいなら drop を指定して、元のタイムスタンプを破棄して指定のフレームレートで作り直す。
    -x264-params 'crf=26:me=umh:...' x264 のオプションを参照。 区切り文字がコロン ":" なので、psy-rd にはカンマ "," を使うことに注意。( psy-rd=0.25,0.0 ) 同等のオプション -x264opts はパースに API (libavutil) を利用しない。
    -movflags faststart MP4 コンテナなどで配信するなら指定を推奨。再生開始に必要な情報を映像や音声よりも前に配置する。
  • その他のコーデック、フィルタ、デバイスについて
    まずはヘルプや一覧をコマンドを参照して、
    ffmpeg -h full
    
    ffmpeg -codecs
    
    ffmpeg -filters
    

    man コマンドで検索するだけで大抵のことはわかるハズ。

    man ffmpeg-all
    
    man ffmpeg-codecs
    
    man ffmpeg-filters
    
    man ffmpeg-devices
    

フィルタ

  • 映像向け
    モニタの製造元サイトなどで調べて、手動でモニタ調節してみることを推奨。 ビデオカードのエフェクトの類も無効化しておく。 その方が好みに合わせたままの状態よりも効果を確認しやすいハズ。 (一般的なモニタに精度を求めるのは無理なので注意)
    -filter <f1>,<f2>,...,<fn> 効果
    hqdn3d=2:1.5:3 3軸デノイズ。ちらつき(フリッカ)を抑える必要があれば指定する。グレインは潰れるかも。ls:cs:lt:ct (l:輝度、c:色、s:フレーム平面、t:時間) の順。
    unsharp=3:3:-0.2:3:3:-0.2 アンシャープマスクでぼかし、またはシャープ。lx:ly:la:cx:cy:ca (l:輝度、c:色、xy:範囲、a<0:ぼかし、a>0:シャープ) の順。左の値は lanczos で縮小しても発生したエッジのジャギーをぼかしたときのもの。
    gradfun=1.2:16 バンディング(banding)の除去。グラデーションが階段状になるときに指定する。これでダメなら 8bit の限界と考えて mp=eq2 で均してしまうか、再生のときに gradfun を指定する。再生向けのフィルタなので、もっといい方法があればそちらを推奨。
    crop=640:360:0:60 四辺を切り落とす。コロン ":" で区切って width, height, x_axis, y_axis, keep_aspect の順に指定する。左の値は 640x480(4:3) の映像を 640:360(16:9) にするためのもの。
    pad 四辺に帯を追加。色は指定できる。
    deshake 手ぶれ補正。
    yadif インターレース解除。MPlayer オプション参照。
    w3fdif インターレース解除。BBC R&D より提供。(v2.1)
    mp=pullup,mp=harddup (v2.6 廃止) MPlayer のフィルタを使って逆テレシネ変換。 MPlayer オプション参照。
    mp=eq2=... (v2.6 廃止) MPlayer のフィルタを使って色補正。色が変わるので指定しないのが基本。明らかに色がおかしいなら役立つ。gradfun で暗部のバンディングが除去できないときに、コロン ":" で区切って 0.970619, 0.979735, 0.020264, 1.0293802 の順に指定したことがある。MPlayer オプション参照。
    pullup 逆テレシネ変換。(v2.1)
    eq 色補正。(v2.6)
    deband バンディング(banding)の除去。(v2.8)
  • 音声向け
    v2.1 から LADSPA が使えるようになった。だんだん増えてる。

周波数解析 (v3.0)

AAC-LC のみ。 他の周波数解析と同じソース (WAVE, 48000Hz/1ch, 16bit, 768kbps) を使用し、 ffmpeg -acodec aac -b:a 128k でエンコード。 This VBR is experimental and likely to get even worse results than the CBR. なので、 VBR は非推奨。

  • 全域
    低音を除いて良好。 中高音の再現性はビットレート次第だけど、低音の再現性は 192k > 69k > 96k > 128k になる。 (see NeroAAC / FAAC / FDK AAC / qaac)

    dft_full_ffmpeg.png

  • カットオフ周波数
    キレイにカットしていない (軽いレゾナンスかも?)。 (see NeroAAC / FAAC / FDK AAC / qaac)

    dft_cutoff_ffmpeg.png

MPlayer

コマンド

  • 映像のみエンコード
    ソースが ISO イメージとかでなければ、x264/FFmpeg を直接使った方が楽。
    -> 512x288, 30000/1001->24000/1001fps
    mencoder "$1" -o "$2" -fps 30000/1001 -ofps 24000/1001 -oac copy -fafmttag 0x504D -of lavf -sws 5 -vf scale=512:288 -ovc x264 -x264encopts crf=26:bframes=3:frameref=6:partitions=all:subq=7:me=umh:psy-rd=0.3,0.0:aq_strength=0.6
    
  • mencoder から x264 へパイプ
    pp フィルタを使ったインターレースの縞模様があるプログレッシブな映像の補正。
    mencoder には、 -really-quiet の指定が必須。 -quiet に変えてもダメ。 x264 には、 --input-res と --fps の指定が必須。
    mencoder "$1" -o - -really-quiet -of rawvideo -fps 30000/1001 -ofps 24000/1001 -nosound -sws 9 -vf pp=lb:c,softskip,scale=512:288,harddup,format=i420 -ovc raw - 2>/dev/null | x264 --muxer mp4 --demuxer raw --crf 26 --qcomp 0.8 --qpstep 8 --partitions "p8x8,b8x8,i8x8,i4x4" --me umh --subme 7 --bframes 3 --ref 6 --psy-rd 0.3:0.0 --aq-strength 0.6 --threads auto --input-res 512x288 --fps 24000/1001 --output "$2" -
    
  • mplayer から x264 へリダイレクト
    インターレース解除のため yadif フィルタを適用。フレームレートを変更したければ mencoder など、他で行うことを推奨。
    mplayer -dvd-device "$1" dvd://1 -quiet -nosound -sws 5 -vf yadif,scale=512:288,harddup -aspect 16:9 -vo yuv4mpeg:file=>(x264 --muxer mp4 --demuxer y4m --crf 26 --qcomp 0.8 --qpstep 8 --partitions "p8x8,b8x8,i8x8,i4x4" --me umh --subme 7 --bframes 3 --ref 6 --psy-rd 0.3:0.0 --aq-strength 0.6 --threads auto --output "$2" - )
    
  • mplayer で再生
    デブロックフィルタを切るなら -lavdopts skiploopfilter=all を付ける。
    mplayer -dr -noslices -double -vo xv "$1"
    

  • mplayer でカメラ再生 (未検証)
    オプションはカメラの性能に合わせて指定する。キャプチャしているディスプレイに表示するなら -vo x11 を追加。( dvb:// なんてのもある)
    mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0 -fps 30
    

オプション

  • mplayer/mencoder 共用の一部
    オプション 用途 備考
    -dvd-device <file> デバイスファイルか ISO イメージを指定。 他にも -*-device あり。
    -novideo 映像なし。 N/A
    -nosound 音声なし。 N/A
    -nosub 字幕なし。 N/A
    -sws 5 画素間の補間方式に area を指定。9 で lanczos。 area は縮小向け。
    -aspect 16:9 アスペクト比の指定。 狂わないように使っておく。
    -fps 30000/1001 入力のフレームレートを 30000/1001 で上書き。 フレーム数は増減しないので注意。
    -o <file> 出力ファイルの指定。 N/A
  • mencoder 専用の一部
    -x264encopts は x264 と大差ないので省略。
    オプション 用途 備考
    -ofps 24000/1001 出力するフレームレートを指定。 フレーム数が増減する。
    -of rawvideo コンテナの選択。 -of help で一覧表示。 BETA CODE らしい。
    -ovc x264 Output Video Codec の指定。 -ovc help で一覧表示。
    -oac copy Output Audio Codec の指定。 -oac help で一覧表示。
    -fafmttag 0x???? オーディオフォーマットタグの指定。 -oac copy に失敗したら使う。下記参照。
  • -fafmttag 0x????
    -oac copy だけで音声をコピーできるハズだけど、 Audio format 0x4134504d is incompatible with '-oac copy', please try '-oac pcm' instead or use '-fafmttag' to override it. と文句を言われることがある。 そのときは こちら を参考に -fafmttag を追記すれば良い。
    渡す値は mplayer で取得できる。(´д`)ェェェ
    mplayer -novideo -v -endpos 0 "$1" | grep Tag
    

フィルタ

  • mplayer/mencoder 共用の一部。左から順に適用される。-vf <filter1>,<filter2>,...
    フィルタ 用途
    pullup 逆テレシネ変換。固定フレームレートでテレシネ変換されただけのソースに最適で、キレイに戻る。同時にフレームレートも下げること。でないと無用な複製フレームが挿入される。
    filmdint=io=5:4 逆テレシネ変換。できなければ単純なインターレース解除。x86 環境向け。MMX2/3DNow! を使ってくれる。文字などが苦手。io と -fps を指定すれば mplayer でもフレームレートの変更が可能。
    yadif インターレース解除。pullup でダメならコレ。可変フレームレートでも大丈夫なハズ。同時にフレームレートを変更してカクカクになったら、x264 の select_every が役に立つかも。
    pp=lb インターレース解除。インターレースの縞模様が残ったプログレッシブな映像に使える。ちょっとぼやける。
    softskip フレームを増減するタイミングを指定できる。基本的に逆テレシネ変換やインターレース解除の直後に記述する。全てのフレームを必要とする 逆テレシネ変換より前には絶対に記述しない こと。
    scale=512:288 フレームサイズの変更。
    setpts PTS (Presentation TimeStamps) を付け直す。PTS に関係するエラーが出たら追加してみる。
    harddup 後で AVI コンテナ以外に入れる場合は 必須 。複製フレームを残して映像フレームの減少を防止しないと、だんだん音の遅れが大きくなる。
    hqdn3d ノイズフィルタ(High precision / Quality version of the DeNoise3D filter)。
    eq2=... 色補正(EQualizer)。コロン ":" で区切って gamma, contrast, brightness, saturation, red_gamma, green_gamma, blue_gamma, weight の順に指定する。バンディング除去のために指定することもある。
    unsharp=l3x3:0.3 アンシャープマスク。lWxH:a:cWxH:a の順。a(amount) の値はプラスだとシャープ、マイナスだとぼかす効果があって、どちらも ±1.5の範囲内を推奨。
    gradfun バンディング除去。再生向け。
  • 再生時にインターレース解除
    インターレースはブラウン管モニタ向け。 それ以外ではプログレッシブの方がキレイに見えるハズ。 ただし、再生時に解除する方がエンコードし直すよりもキレイなので、解除のためだけにエンコードする必要はない。 再生コマンドは下記。x86 環境なら filmdint も負荷が少なくて良い。
    mplayer -vf yadif "$1"
    
  • エンコード時にインターレース解除
    エンコードの前に一度 mplayer で再生して確かめるのが良い。 pullup でダメなら yadif を指定するのが基本的な流れ。 pp はベタに重ねるので、動きのある映像が二重になったり、ぼやけたりジャギーになるので基本的に使わない。 ただし、インターレースの縞模様が残ったプログレッシブな映像には pp=lb が便利。 pp の概要は下記のコマンドで確認できる。詳細は man コマンドにて。
    mplayer -pphelp
    

    なお、 AVI コンテナ以外を使うなら -vf harddup が必須 になる。 使わない場合、全ての複製フレームが削除されてフレーム数が減るので、音声がだんだん遅れて聞こえる原因になる。

NeroAAC (v1.5.1)

コマンド

  • AAC-LC 品質固定
    全体的に良好。カットオフ周波数の辺りは多少変化する。
    mplayer -nocorrect-pts -novideo -ao pcm:fast:file=>(neroAacEnc -ignorelength -lc -q 0.5 -if -of "$2" - 2>nero.log) "$1"
    

オプション

  • AAC-LC 品質固定時のビットレート
    あくまでも目安。モノラルだとビットレートは半分になる。
    品質 -q ビットレート [kbps/2ch]
    0.05 16
    0.15 33
    0.25 66
    0.35 100
    0.45 146
    0.55 192
    0.65 238
    0.75 285
    0.85 332
    0.95 381
  • プロファイル
    ビットレートに合わせて自動的に選択されるため、指定なしでも良い。
    プロファイル ビットレート [kbps/2ch] 備考
    -lc 80〜 MAIN プロファイルに劣るけど、HE/HEv2 よりも高品質。192kbps 以上は再生環境次第かも。
    -he 40〜80 LC プロファイルよりも低ビットレートで音が破綻しにくい。
    -hev2 〜32 HE プロファイルよりもさらに低ビットレートで音が破綻しにくい。

周波数解析

AAC-LC のみ。 他の周波数解析と同じソース (WAVE, 48000Hz/1ch, 16bit, 768kbps) を使用し、 neroAacEnc -q 0.5 でエンコード。

  • 全域
    全体的に良好。 線形軸でプロットした差分も小さめ。
    (see FFmpeg / FAAC / FDK AAC / qaac)

    dft_full_neroAacEnc.png

  • カットオフ周波数
    キレイにカットしていない (レゾナンスかも?)。 16kHz を残すなら -q 0.45 くらいが下限になる。 カットオフ周波数はプロットしたものより細かく調べたけど、-q の値によって少しづつ変化するっぽい。 (see FFmpeg / FAAC / FDK AAC / qaac)

    dft_cutoff_neroAacEnc.png

FAAC (v1.28)

コマンド

  • AAC-LC 品質固定
    他を推奨。 特に低音が悲しいことになる。 カットオフ周波数は faac -q 100 と neroAacEnc -q 0.43 で同じくらい。
    mplayer -nocorrect-pts -novideo -ao pcm:fast:file=>(faac -q 100 -o "$2" - 2>faac.log) "$1"
    

オプション

  • 品質固定に関わる主なものだけ
    限度を越える値を -q/-c に指定しても、訂正されてエラーにならない。
    オプション 効果
    -q 100 品質固定でエンコード。10〜500 を指定。デフォルトは 100。44100Hz/2ch の音声に対して 500 を指定すると 320kbps になった。 ( 同じソースで 48000Hz/2ch にすると 450kbps )
    -b 128 平均 128kbps でエンコード。-q の値より優先される。2-pass にはできないので使う理由はない上、"ABR, lower quality mode" と記載されている。-c を指定しない場合、カットオフ周波数の上限が 16000Hz になってしまうので、44100Hz/2ch が 152kbps で頭打ちになる。( 48000Hz/2ch では 163kbps )
    -c 16000 カットオフ周波数 [Hz] を指定。-b を使うなら指定することを推奨。0 は、ソースのサンプリングレートの半分を指定するのと同じになる。-b を指定しない場合に、-c の指定なし、または負の値を指定することで -q の値を式に代入してカットオフ周波数が決定される。上限は -R の値の半分。cutoff [Hz] = (quantqual - 100) * 120 + 16000
    -R 44100 サンプリングレートに 44100Hz を指定。上限は 96000Hz。指定なしでソースと同じになる。FAAC に関わらず、音声はサンプリングレートの 1/2 がカットオフ周波数の上限。下げるときは高音を捨てるつもりで使うこと。
    -C 2 2 チャネルでステレオ音声に指定。指定なしでソースと同じになる。
  • ビットレートの目安
    あくまでも目安。モノラルだとビットレートは半分になる。
    品質 -q カットオフ周波数 -c [Hz] ビットレート [kbps/2ch] 備考
    10 N/A N/A 下限
    70 10000 62 N/A
    80 12000 79 N/A
    90 14000 103 N/A
    100 16000 129 def
    110 18000 158 N/A
    120 20000 194 N/A
    130 22000 218 N/A
    500 N/A N/A 上限

周波数解析

AAC-LC のみ。 他の周波数解析と同じソース (WAVE, 48000Hz/1ch, 16bit, 768kbps) を使用し、 faac -q 100 でエンコード。

  • 全域
    特に低音がイマイチ。 線形軸でプロットした差分のバラツキが大きい。 (see FFmpeg / NeroAAC / FDK AAC / qaac)

    dft_full_faac.png

  • カットオフ周波数
    可聴域を越えても良好。 カットオフ周波数は、だいたい指定通りになるみたい。 (see FFmpeg / NeroAAC / FDK AAC / qaac)

    dft_cutoff_faac.png

FDK AAC (v0.1.2)

コマンド

  • fdkaac を使う
    再現性は良好。 気に入らなければ NeroAAC を試すといいかも。
    fdkaac --bandwidth 24000 --bitrate-mode 3 -o "$2" "$1"
    
  • FFmpeg を使う
    FFmpeg v1.2 以降は 20000Hz を越える周波数を残せないので注意。
    ffmpeg -i "$1" -acodec libfdk_aac -profile:a aac_low -vbr 3 -afterburner 1 -cutoff 16000 "$2"
    
  • 付属のサンプルコードを使う
    不器用なので、fdkaac などを推奨。
    aac-enc -v 3 -t 2 -afterburner 1 "$1" "$2"
    

オプション

  • fdkaac に指定するもの
    オプション 効果
    --bitrate-mode 5 可変ビットレート (VBR)。
    --afterburner 1 良いスケールファクタを探し出すためにデフォルトの 1 を推奨。0 だと荒れることがある。
    --bitrate 128 固定ビットレート (CBR)。 10000 未満だと kbps として扱われる。
    --profile 2 プロファイル。
    --bandwith 24000 カットオフ周波数。
    -o "$2" 出力ファイル名。
  • FFmpeg に指定するもの
    オプション 効果
    -vbr 3 可変ビットレート (VBR) 。
    -afterburner 1 良いスケールファクタを探し出すためにデフォルトの 1 を推奨。0 だと荒れることがある。
    -ab 128k 固定ビットレート (CBR) なので、低ビットレートには不向き。-vbr を指定すると無視される。
    -ac 2 チャネル数。
    -ar 48000 サンプリングレート。
    -profile:a aac_low AAC-LC がデフォルト。他にも aac_he/aac_he_v2 などがある。
    -cutoff 18000 カットオフ周波数。FFmpeg (v1.2 以降) では 20000 が上限。

    可変ビットレートの目安。 FFmpeg v1.2 以降は -cutoff 20000 が上限。

    -vbr kbps/2ch 備考
    1 32 HE-AAC v2 にするなら -profile:a aac_he_v2 を指定。
    2 64 HE-AAC にするなら -profile:a aac_he を指定。
    3 80-96 -cutoff 20000 以下の指定を推奨。
    4 128 -cutoff 20000 以下の指定を推奨。
    5 192 -cutoff を指定せずに全域を残すならコレ。(FFmpeg v1.2 以降を除く)

    固定ビットレートの目安。AAC-LC 限定なので注意。

    -ab [kbps/2ch] サンプリングレート [kHz] 元のサンプリングレート [kHz]
    16.000 - 23.999 11.025 / 12.00 / 16.00 12.00
    24.000 - 31.999 16.00 16.00
    32.000 - 39.999 16.00 / 22.05 / 24.00 22.05
    40.000 - 95.999 32.00 32.00
    96.000 - 111.999 32.00 / 44.10 / 48.00 32.00
    112.000 - 320.001 32.00 / 44.10 / 48.00 44.10
    320.002 - 576.000 48.00 48.00

周波数解析

AAC-LC のみ。 他の周波数解析と同じソース (WAVE, 48000Hz/1ch, 16bit, 768kbps) を使用し、 ffmpeg -acodec libfdk_aac -vbr 3 でエンコード。

  • 全域
    再現性が良好。 線形軸でプロットした差分はかなり小さい。 ソースが良質なら再生環境次第と言えるかも。 (see FFmpeg / NeroAAC / FAAC / qaac)

    dft_full_libfdk_aac.png

  • カットオフ周波数
    FAAC よりもバッサリ。-vbr 3 は --cutoff 20000 以下の指定を推奨。 NeroAAC との違いがわかりやすいのは高音。 FFmpeg v1.2 から --cutoff 22000 の指定はできないことに注意。 (see FFmpeg / NeroAAC / FAAC / qaac)

    dft_cutoff_libfdk_aac.png

バージョン

v0.1.3 からは 7.1ch が使えるようになった。 バージョンアップされる毎にビットレートが低減されてるけど、再現性の上限は同じくらい。

  • 再現性
    VBR mode 5 では、 v0.1.(2|3|4) の再現性に大きな差はない。 低音の再現性は v0.1.(3|4) >= v0.1.2 だけど、中高音の再現性は v0.1.2 >= v0.1.(3|4) になる。

    VBR mode 3 での再現性は v0.1.2 > v0.1.4 >= v0.1.3 だと考えてる。 低音の再現性は v0.1.(2|4) >= v0.1.3 だけど、中高音の再現性は v0.1.2 > v0.1.(3|4) になる。

  • ビットレート
    基本的に v0.1.2 > v0.1.3 > v0.1.4 と考えてる。

qaac (v2.58)

コマンド

  • Wine でエミュレート?
    wine qaac.exe --tvbr 91 -o "$2" "$1"
    

オプション

  • qaac に指定するもの
    ここは最低限しか載せてないけど、他にもいろいろあって便利。
    オプション 効果
    --tvbr 91 True VBR 0, 9, 18, 27, 36, 45, 54, 64(63), 73, 82, 91, 100, 109, 118, 127
    --cvbr 128 Constrained VBR (kbps)
    --abr 128 ABR (kbps)
    --cbr 128 CBR (kbps)
    --lowpass 18000 カットオフ周波数 (Hz)
    --he HE-AAC

周波数解析

AAC-LC のみ。 他の周波数解析と同じソース (WAVE, 48000Hz/1ch, 16bit, 768kbps) を使用した。 wine qaac.exe --tvbr 91 でエンコード。 qaac v2.58 と CoreAudioToolbox v7.10.5.0 を Wine v1.9.4 でエミュレート?してることに注意。 当方はエンコーダの提供元が推奨する動作環境を持ってない上、タイトルに反してるので、参考資料として載せたことにしておく。

  • 全域
    特に --tvbr 91 以上での低音の再現性がすばらしい。 中高音も良好。 線形軸でプロットした差分を極めて小さくすることが可能。 (see FFmpeg / NeroAAC / FAAC / FDK AAC)

    dft_full_qaac.png

  • カットオフ周波数
    余計なことをせずにバッサリ。 --lowpass は使ってない。 (see FFmpeg / NeroAAC / FAAC / FDK AAC)

    dft_cutoff_qaac.png

バージョン

当方が周波数解析したのは、以下の 32bit 版のみ。他は手元にない。 Wine でエミュレート?していることに注意。

qaac CoreAudioToolbox Wine
v2.34 v7.9.8.5 v1.7.11
v2.44 v7.9.9.3 v1.7.30
v2.46 v7.9.9.4 v1.7.35
v2.46 v7.9.9.6 v1.7.37
v2.58 v7.10.5.0 v1.9.4

わずかな差だけど、再現性は全域で v7.10.5.0 > v7.9.8.5 >= v7.9.9.(3|4|6) と考えてる。

FDK AAC と比較すると、--tvbr 127 > FDK AAC (-vbr 5) >> FDK AAC (-vbr 3) > --tvbr 82 になる。

H.265 について

  • 規格
    HEVC とも呼ばれるけど、このページでは H.265 と記述しておく。 エンコーダの開発が順調なら、数年でこのページは不要になると期待したい。 普及しなかったら、ロイヤルティ抗争のおかげ。
    日付 規格 慨嘆
    2013.01.25 (ISO/IEC 23008-2) H.265 が 勧告(Recomendation) されたので、HM-10.0 を遊ぶ頃合いかも。
    2013.10.18 (ISO/IEC 23008-2) H.265 の教科書がインプレスから発行されたけど、持ってない。
    2013.11.25 ISO/IEC 23008-2:2013 H.265 の規格書が発行されたけど、買ってない。
    2014.04.10 ISO/IEC 13818-1:2013/Amd 3:2014 MPEG2 TS の規格書が発行されたけど、試験放送を見てない。
    2014.05.12 ISO/IEC 23009-1:2014 MPEG-DASH の規格書が発行されたけど、気になる配信を視聴 する環境がない し損ねた。
    2014.05.23 ISO/IEC 23008-1:2014 MMT の規格書が発行されたけど、パブリックビューイングに行ってない。
    2014.06.24 ISO/IEC 14496-15:2014 MP4 の規格書が発行されたけど、この先生きのこるエンコーダはどれなのかを知らない。
    2014.06.?? BT.2020-1 BT.2020 の勧告が出て発行されたので、表示できるモニタが欲しい。
    2014.10.28 HTML5 HTML5 が勧告されたので、このページだけ移行したけど新しいタグを使ってない。
    2015.05.04 ISO/IEC 23008-2:2015 H.265 V2 の規格書は発行されたけど CHF、気になります。
    2015.05.11 Ultra HD Blu-ray BD (4K) の規格が策定されたのに影が薄い気がするのは、とある技研の公開目録のせいかも。
  • 実装
    Linux で利用可能?なモノ。
    日付 エンコーダ 備考
    2013.07.23 x265 N/A
    2014.01.29 Kvazaar N/A
    2014.03.23 FFmpeg (v2.2) x265
    2014.03.27 HomerHEVC N/A
    2014.04.07 f265 Lost
    2014.04.13 CCLXV 停滞?
    2014.09.11 Libav (v11) x265
    2014.11.22 HandBrake (v0.10.0) x265
    2014.12.22 NVENC (v5.0) HW, BETA
    2015.05.16 Avidemux (v2.6.9) x265
    2015.06.10 FFmpeg (v2.7) HW, nvenc_hevc
    2015.09.09 FFmpeg (v2.8) HW, hevc_qsv
    2015.09.09 FFmpeg (v2.8) Kvazaar
日付 デコーダ 備考
2013.10.28 FFmpeg (v2.1) N/A
2014.03.23 Libav (v10) N/A
2015.03.07 FFmpeg (v2.6) HW, DXVA2 Wine v1.7.38 は H.264 まで。
2015.03.09 libvdpau (v1.0) HW, VDPAU
2015.09.09 FFmpeg (v2.8) HW, VAAPI
2015.09.09 FFmpeg (v2.8) HW, VDPAU

参考リンク

ライセンス

このページは、当方の勝手な解釈を淡々と羅列したものです。 正確さを期待しないでください。

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 - 継承 3.0 非移植 ライセンスの下に提供されています。

Author: ebdamDye

Email: ebdamDye@excite.co.jp

Created: 2016-03-08 Tue 22:04:55 +0900

Emacs 24.5.1 (Org mode 8.2.10)

Validate