lwiファイルの構造
lwiは
L-SMASH Works Index File
の略みたいです。
この記事は、Mr-Ojii版 r1118のlwiファイルの構造についてのノートです
ここに記載されている情報は、正確ではない可能性があります
階層構造
LSMASHWorksIndexVersion
LibavReaderIndexFile
InputFilePath
FileSize
FileHash
LibavReaderIndex
ActiveVideoStreamIndex
ActiveAudioStreamIndex
(Common)
Index
Type
Codec
TimeBase
POS
PTS
DTS
EDI
(Video)
Key
Pic
POC
Repeat
Field
Width
Height
Format
ColorSpace
(Audio)
Channels
Rate
Format
BPS
Length
StreamDuration
StreamIndexEntries
POS
TS
Flags
Size
Distance
ExtraDataList
(Video)
Size
Codec
4CC
Width
Height
Format
BPS
文字化けてるとこ
(Audio)
Size
Codec
4CC
Layout
Rate
Format
BPS
Align
文字化けてるとこ
table:xml形式のところ
タグ 記載内容の意味 内容の例
LSMASHWorksIndexVersion lwindexのバージョン(?) 0.0.2.0
LibavReaderIndexFile インデックスファイルのバージョン 15
InputFilePath 動画ファイルのフルパス C:\hogehoge\hoge.mkv
FileSize 動画ファイルのファイルサイズ 150192120
FileHash 動画ファイルのハッシュ(xxHash) 0x86d3daaf395f9090
LibavReaderIndex 動画ファイルのコンテナフォーマットに関する情報(Flags,Codec ID,Name) 0x00000000,0,matroska,webm
ActiveVideoStreamIndex 最初に発見したアクティブな動画ストリームのストリームインデックス +0000000000
ActiveAudioStreamIndex 最初に発見したアクティブな音声ストリームのストリームインデックス +0000000001
StreamDuration ストリームID,ストリームの種類>ストリームの長さ 0,0>5000
StreamIndexEntries ストリームID,ストリームの種類>ストリームのフレームインデックス情報 0,0
ExtraDataList 拡張データ情報 (ストリームID,ストリームの種類,何個目) 0,0,0
table:LibavReaderIndex (Common)
key 意味 valueの例
Index ストリームID 0
Type 映像か音声かなどの種類 0
Codec コーデックID 27
TimeBase 単位時間 1/1000
POS バイト単位での場所 4844
PTS TimeBase単位での表示時間 3
DTS TimeBase単位でのデコード時間 -9223372036854775808
EDI ExtraDataListでのIndex 0
table: LibavReaderIndex (Video)
key 意味 valueの例
Key キーフレームかどうか 1
Pic I, P, Bピクチャなどの種類 1
POC 何フレーム目か (AVCodecParserContext->output_picture_number, PictureOrderCount) 0
Repeat リピートフレームか? (AVCodecParserContext->repeat_pict, インタレ用?) 1
Field インタレでのTopFieldかBottomFieldか 0
Width 幅 1280
Height 高さ 720
Format ピクセルフォーマット名 yuv420p
ColorSpace 色空間ID 6
table:LibavReaderIndex (Audio)
key 意味 valueの例
Channels チャンネル数:チャンネルレイアウト 2:0x3
Rate サンプリングレート 48000
Format サンプルフォーマット fltp
BPS 1サンプルあたりのビット数 32
Length サンプル数? (AVCodecParserContext->duration) 1024
table:StreamIndexEntries
key 意味 valueの例
POS バイトポジション 62480
TS タイムスタンプ 0
Flags キーフレームかどうか 1
Size フレームのバイトサイズ 13514
Distance 直前のキーフレームまでのフレーム数 0
table:ExtraDataList (Video)
key 意味 valueの例
Size 拡張データのバイトサイズ 38
Codec コーデックID 27
4CC FOURCC 0x31637661
Width 幅 512
Height 高さ 384
Format ピクセルフォーマット yuv420p
BPS BitsPerSample 24
文字化けてるとこ 拡張データ内容
table:ExtraDataList (Audio)
key 意味 valueの例
Size 拡張データのバイトサイズ 5
Codec コーデックID 86018
4CC FOURCC 0x6134706d
Layout チャンネルレイアウト 0x3
Rate サンプリングレート 44100
Format サンプルフォーマット fltp
BPS BitsPerSample 16
Align BlockAlign 0
文字化けてるとこ 拡張データ内容
メモ
LibavReaderIndexはAVPacketの出力が多い
POCはBフレームが入る際にデコード順と表示順が入れ替わる可能性があるため必要