ファイルのheightは、ファイル内の画像の縦方向の大きさのことで、ピクセル数で数える値です。メタデータレポートでは、この数値が「Height」行に表示されます。ファイルの幅とheightを組み合わせると画像サイズが分かります。例えば 1920x1080 の場合、最初の数値がwidthです。
ファイルのheightは、ファイルサイズとは異なる値です。heightはピクセルの行数を数えますが、ファイルサイズはファイル内のバイト数を数えます。
FFmpegプロジェクトのffprobeというプログラムは、動画ストリームのheightを height と呼びます。ExifToolには ImageHeight というタグがあり、これはImage Heightの記事で説明されています。MOVおよびMP4動画では、ExifToolはこのタグをトラックヘッダーから取得するため、2つの数値が異なる場合があります。
どのファイルがそれを持っているか
画像や動画、カバーアート付きの音声ファイルは、heightを持つことがあります。各フォーマットはそれぞれ異なる場所にheightを保存します。
- MOVおよびMP4: 動画サンプル記述にソース画像のheight(ピクセル数)が保存されます。トラックヘッダーにはトラック専用の別のheightが保存されます。
- MKVおよびWebM:
PixelHeight要素にエンコードされた動画フレームのheightが保存されます。 - AVI: AVIヘッダーに画像のheightが保存されます。
- PNG: IHDRチャンクにheightが4バイトのピクセル数として保存されます。
音声そのものにはheightがないため、ffprobeは音声ストリームに対してheightを出力しません。音声ファイルにカバー画像が含まれている場合は、値が表示されることがあります。FFmpegはこの添付画像を動画ストリームとして扱うため、そのストリームにはheightがあります。
MP3ファイルのピクチャフレームにはheightフィールドがないため、その数値は画像データから取得する必要があります。FLACのピクチャブロックには独自のheightフィールドがあり、heightが不明な場合は 0 が入ります。
ドキュメントは仕組みが異なります。PDFページはピクセルではなく、1インチの1/72単位で測定されます。これらの値については、Page Sizeの記事で説明しています。
その値がどのように表示されるか
この値は通常、単位のないピクセルの整数です。FFmpegは他のサイズとともに次のような動画サイズを一覧表示し、各サイズの2つ目の数値がheightです。
1280x720: heightは7201920x1080: heightは10803840x2160: heightは21607680x4320: heightは4320
一部のファイルでは別の値になることがあります。heightを持たない字幕ストリームは、ffprobeで N/A と表示されます。SVG画像のheightは、長さまたはパーセンテージになることがあります。
値の由来
ファイルを作成するプログラムがheightを設定します。heightを変更するには、画像をリサイズまたはトリミングして、ファイルを保存し直します。
表示されている内容とheightが異なる理由
動画ファイルには回転値を保存でき、FFmpegは既定でその値に従って動画を回転します。90度回転した場合、画面上で見えるheightは、保存されているwidthと同じになります。
一部のフォーマットは、2種類の異なるheightも保持します。Matroskaファイルでは、PixelHeight はエンコードされたフレームのheightであり、DisplayHeight はクロップ後に表示するheightです。FFmpegのcoded heightも、フレームが出力前にクロップされる場合は、表示されるheightと異なることがあります。
それが重要な理由
heightを使うと、アップロードフォームなどでファイルがサイズ制限を満たしているか確認できるようになります。「Height」行が 720 と表示していれば、ファイル名が1080と書かれていても、その動画は720行のピクセルを持つことになります。
heightと幅によって、ピクセル数も決まります。1920x1080 の動画は、1フレームあたり2,073,600ピクセルで、約2.1メガピクセルです。
印刷の場合、Y Resolutionタグは、height方向の1インチまたは1センチあたりのピクセル数を示します。heightをその数値で割ると、同じ単位での印刷時の高さが分かります。