2020年12月18日

CoreMediaのプリセット

MPEG Exporter TNGが利用しているCoreMedia(avconvert)のプリセットがそれぞれどのような特性を持っているのか、少し調査してみました。
素材に使用したのは、AppleがYouTubeで公開している「iPad Pro − Your next computer is not a computer − Apple」という動画ファイルです。QuickTime Playerで属性を確認すると、H.264 HD、1920x1080、29.97 FPS、16.5 MB、1.72 Mbpsとあります。
MPEG Exporter TNGのカスタム設定で、PresetLowQuality、PresetMediumQuality、PresetHighestQuality、Preset3840x2160、PresetHEVC3840x2160、PresetHEVCHighestQualityを呼び出して変換しました。FFmpeg (x265)を利用した独自の設定もあわせてテストしました。使用したマシンはMacBook 2017、macOS Catalina 10.15.7です。








プリセット名映像CODEC解像度フレームレート音声ファイルサイズ
PresetLowQualityH.264 SD224 x 12815 FPSMPEG-4 HE AAC Mono1.3 MB
PresetMediumQualityH.264 SD568 x 32029.97 FPSAAC Stereo6.9 MB
PresetHighestQualityH.264 HD1920 x 108029.97 FPSAAC Stereo16.4 MB
Preset3840x2160H.264 HD1920 x 108029.97 FPSAAC Stereo16.4 MB
PresetHEVC3840x2160HEVC HD1920 x 108029.96 FPSAAC Stereo65.4 MB
PresetHEVCHighestQualityHEVC HD1920 x 108029.96 FPSAAC Stereo65.4 MB
FFmpeg (x265)HEVC1920 x 108029.97 FPSAAC Stereo20.2 MB

ここからわかることは、
・Appleがいうところの品質とは圧縮率ではなく、解像度とビットレートのこと
・それぞれのプリセットは解像度に上限があり、それを上回る動画は縮小される
・HEVC(H.265)はなぜかH.264より圧縮率がかなり悪い
・おそらくフレームレートも変更されている
・いくつかのプリセットは内容が同じ
MPEG Exporter TNG独自の設定はこれとはかなり異なっており、以下のようなコンセプトで設定しています。
・品質固定可変ビットレートであり、品質とは圧縮率のこと
・できるかぎりフレームレートや画面サイズは変更しない
CoreMediaによるH.265の挙動はT2チップによるハードウエアエンコードのように見えますが、T2チップを搭載していないマシンではどうなってしまうのでしょうか?いずれにしてもAppleのH.265 HEVCエンコーダは、ストリーミング配信など特定の用途を除くと、圧縮率と画質のバランスの点で実用になりません。
そういうわけで、MPEG Exporter TNGの新しい設定プロファイルではCoreMediaを用いた4KにHEVCではなくH.264を使用することにしました(上記のPreset3840x2160に相当)。H.265/HEVCを利用したい場合、ffmpegのx.265を利用した方が画質と圧縮率の高いバランスを実現できます。
ちなみに、変換にかかる時間は計測しませんでした。どの設定も秒単位で変換が終わるので、 ストップウォッチでうまく図ることができる自信もありません。昔はMPEG Exporter TNGに変換時刻をログで出力させていたような気がします。

CoreMedia(avconvert)がサポートするプリセットは Terminalで avconvert --helpと入力すると確認することができ、
Supported presets:
Preset640x480
Preset960x540
Preset1280x720
Preset1920x1080
Preset3840x2160
PresetAppleM4A
PresetAppleM4V480pSD
PresetAppleM4V720pHD
PresetAppleM4V1080pHD
PresetAppleM4VAppleTV
PresetAppleM4VCellular
PresetAppleM4ViPod
PresetAppleM4VWiFi
PresetAppleProRes422LPCM
PresetAppleProRes4444LPCM
PresetHEVC1920x1080
PresetHEVC1920x1080WithAlpha
PresetHEVC3840x2160
PresetHEVC3840x2160WithAlpha
PresetHEVCHighestQuality
PresetHEVCHighestQualityWithAlpha
PresetHighestQuality
PresetLowQuality
PresetMediumQuality
PresetPassthrough
となっています。
posted by MacLab. at 00:00| Comment(0) | TrackBack(0) | 技術情報

2020年12月16日

アップル公証用ツール

Catalina以上で動作するアプリを作成するために必要なアップルの公証手続きはGUIベースではなく、煩雑極まりません。
SD NotaryというツールやXcodeを用いることでかなり楽にはなりますが、面倒なことにかわりはありません。
公証を行う上で役に立ちそうなAppleScriptを作成したので紹介します。いずれもTerminalの扱いに慣れている方ならば簡単にできる作業ですが、GUIで使えた方が便利ですよね。
ダウンロードしてお使いいただくのは、これまた公証の問題が出ますので、AppleScriptをHTMLに埋め込んで提供します。
リンクをクリックするとスクリプト編集プログラムに新規プログラムが作成されるので、それをアプリケーションとして保存してください。Dropletになっているので、対象となるアプリなどをドロップして使います。
なお、AppleScriptのHTMLへの埋め込み形式(URLエンコード)にはAS Compilerを使用しています。

続きを読む
posted by MacLab. at 00:00| Comment(0) | TrackBack(0) | 技術情報

2020年12月12日

MPEG Exporter TNG ver.3.88

MET3 Icon
ffmpegやCoreMediaのフロントエンドで動作する動画変換ソフトウエア MPEG Exporter TNGのver. 3.88です。
メインウインドウの設計を変更しました。

・環境設定をメインウインドウから開けるようになりました
・プリセットとカスタム設定に別々のボタンを用意しました
 これによりボタンを押す回数が減りました。ボタンを押す回数なんて少ない方がいいですよね。
・メインウインドウのテキストを選択できるようにしました
 すでに設定してあるffmpegのコマンドをコピペで利用してカスタマイズすることが簡単になりました。



Download MPEG Exporter TNG ver. 3.88

ダウンロード後はダウンロードフォルダから他のフォルダに移動してから起動してください。
初回起動時に各OSの環境に合わせたライブラリをアプリ本体のパッケージ内にダウンロードします。
このバージョンの対応環境はEl Capitan以上です。
posted by MacLab. at 18:07| Comment(0) | TrackBack(0) | リリース情報

AR Foundation互換性

AR Foundationを使っていてエラーに遭遇したので、忘備録がわりに公開します。ググってもあまり解決方法が明記されていなかったので、誰かの役に立ちますように。
Unityのバージョンによって利用できるAR Foundationのバージョンが違い、Package Managerが管理しているので間違った組み合わせをインストールすることはまずありません。
しかし、XcodeでBuildやArchiveできないことがあります。
これを書いている時点ではmacOS MojaveでUnity 2020.1.12f1ではAR Foundation 3.1.6がverified versionで、AR Foundation 4.0.9が最新バージョンとなっていますが、どちらもMojaveのXcode 11.3.1ではBuildは通るのにArchiveでエラーが発生します。
Could not reparse object file in bitcode bundle: 'Invalid bitcode version (Producer: '1103.0.32.62.0_0' Reader: '1100.0.33.17_0')', using libLTO version 'LLVM version 11.0.0, (clang-1100.0.33.17)' for architecture arm64

Unity 2020.1.12f1のまっさらなプロジェクトではエラーは起きませんが、AR FoundationをInstallするとエラーが起きるため、AR Foundationが原因であることは間違いないようです。
解決するためにはmacOS CatalinaをインストールしてXcodeの新しいバージョンを入れることです。Xcode 2.1では問題は起きませんでした。つまり、AR Foundation 3以上を使いたければ、macOSはCatalina以上に上げろということです。
なお、Unity 2019.4.11f1 LTSではAR Foundation 2.1.10がverified versionとなっています。
posted by MacLab. at 00:00| Comment(0) | TrackBack(0) | AR