2016年2月15日 に ffmpeg 3.0 Einstein(アインシュタイン)がリリースされた。今回のリリースはメジャーアップデートとなり、2.8 以降に追加された新機能の中からマスターにしか追加されていなかったフィルタやエンコーダ、デコーダ等の新機能が全て取り込まれた。

RELEASE NOTES for FFmpeg 3.0 “Einstein”

2.8 以降に取り込まれた機能の一覧
Changelog 2.8.1 to 3.0 < git.videolan.org Git

今回のアップデートの主な特徴

  • ffplay の挙動変更
  • MP4 の暗号化、復号対応
  • DTS-HD を外部ライブラリに頼らずフルサポート
  • DXVA2、VAAPI の VP9 ハードウェアデコード対応
  • libaacplus と libvo-aacenc のサポート打ち切りと内蔵AACエンコーダの品質向上
  • マスターにしか追加されていなかったフィルタの追加
  • HLS のセキュリティ対策(2.8.5以降)

ffplay の挙動変更については ffplay のショートカットキー に追記しているが、画面左クリックでシーン移動できていたのが右クリックに変わったのと、左マウスダブルクリックでフルスクリーンに変えられるようになっている。

MP4 の暗号化、復号対応についてはウェブサイトに設定方法が書いおらず ffmpeg -h full からオプションを調べると載っているが設定方法は不明。encryption、decryption で検索する。

libaacplus と libvo-aacenc のサポート打ち切りと Kamedo2 さんの多大な貢献で内蔵AACエンコーダの品質が向上した。それにより内蔵AACは libvo-aacenc の代わりとして、libaacplus は当初 HE-AAC、HE-AACv2 のエンコーダとして使われていたが libfdk-aac の登場によりその役目を終えた。しかし内蔵AACは128k以下の高速エンコードでは libvo-aacenc の代わりになっていないと Kamedo2 さんが言及している。

Kamedo2 さんの記事:FFmpegから使えるAACエンコーダ の音質比較 – 音風景ブログ

マスターにしか追加されていなかったフィルタの追加については適宜このブログでも更新していたが、更新予定のフィルタもあるので随時更新予定。
追加されたフィルタで記事にしているフィルタ。

HLS のセキュリティ対策(2.8.5以降)については ffmpeg 2.8.5 リリース で言及しそれ以降も数回更新が有り HLS のマニフェストファイルの読み込み制限がきつくなった。既定値のプロトコル以外を読み込むには別途 -protocol_whitelist で指定する。ローカルファイルを読み込む file は既定値に含まれないので既定値のプロトコルを含めて追記する。全てを許可する場合は ALL。いつの間にか使えなくなっていたので個別に指定する。ブラックリストは対象プロトコルの前に - をつける。
既定値:file,crypto

ローカルに保存した HLS のマニフェストファイルから保存する場合のコマンド例
この場合、マニフェストファイルに記載してあるセグメントファイルは絶対パスになっている必要がある。そして最後に行に #EXT-X-ENDLIST を追加する。
ffmpeg -protocol_whitelist http,https,tls,tcp,crypto,file -analyzeduration 30M -probesize 30M -i master.m3u8 -c copy output.ts
ffmpeg -protocol_whitelist http,https,tls,tcp,crypto,file -analyzeduration 30M -probesize 30M -i master.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)