derenotes.libs.image.video module¶
動画ファイルから画像を取り出すためのモジュール。
- 目的:
入力から 任意のタイムスタンプ の出力を取り出す。- 入力:
デレステのオートLIVEを録画した動画ファイル
動画ファイルの形式:
MP4エンコード形式:
H.264/AVC
- 出力:
kivy.graphics.textureへの入力を前提にした画像フレーム(バッファ)ピクセルフォーマット:
rgb24データ型:
uint8配列
- 手段:
FFMpeg共有ライブラリィから目的に合った機能を呼び出す。以下の機能は、取り扱わない。
画像のエンコード
音声や字幕のエンコードおよびデコード
- 背景:
可変フレームレートの動画ファイルのインデックス検索で問題があり、画像を取り出せなかった。
- class Stream¶
ベースクラス:
object画像ストリームを扱う。
デレステ動画ファイルの画像ストリームを扱う。画像ストリームから、任意のタイムスタンプに紐付いた画像フレーム(バッファ)を取り出す。ピクセルフォーマット:
rgb24データ型:
uint8配列
音声および字幕のストリームは無視する。
- パラメータ:
url (str) -- url形式のデレステ動画ファイル名。
file_type (str) -- デレステ動画ファイルの形式。デフォルトは
mp4。hardware (str) --
デコーダーに適用するハードウェア名。デフォルトは
None。ハードウェアデコーダーを有効にする場合は、ハードウェア名を指定する。
例: "cuda", "vaapi", "vdpau", "vulkan" など
- 例外:
VIDEOError -- 動画ファイルのオープンに失敗、ストリーム情報の取得に失敗、デコーダーの初期化に失敗など
- decoder_name¶
デコーダー名。
- 戻り値:
デコーダー名
- 戻り値の型:
str
- dump()¶
画像ストリームの情報をデバック用ログに出力する。
- 戻り値の型:
None
- frame_buffer(index)¶
画像フレーム(バッファ)を読み出す。
indexに対応したタイムスタンプの画像フレーム(バッファ)を読み出す。kivy.graphics.textureへ渡すこと前提に、ピクセルフォーマットrgb24およびuint8配列に整形し、画像フレームが見つからなかった際には、 黒 画面相当の画像フレーム(バッファ)を返す。範囲外のindexに対しては、エラー発生。- パラメータ:
index (int) -- 読み出したい画像フレームのインデックス
- 戻り値:
指定のインデックスの画像フレーム(バッファ)
- 戻り値の型:
bytes
- 例外:
VIDEOError -- 指定のインデックスが範囲外、ハードウェアデコーダー向けのデータ変換に失敗
- hardware_supported_by_codecs¶
デコーダーで利用可能なハードウェア名の一覧。
- 戻り値:
デコーダーで利用可能なハードウェア名の一覧
- 戻り値の型:
str
- height¶
画像の高さ。
- 戻り値:
画像の高さ
- 戻り値の型:
int
- nearby_keyframe_buffer(index, nearby_keyframe)¶
近傍のキーフレームの画像フレーム(バッファ)を読み出す。
indexからnearby_keyframe(GOP単位)離れた近傍のIフレームの画像フレーム(バッファ)を読み出す。範囲外の場合には、"黒"画面相当の画像フレーム(バッファ)を返す。- パラメータ:
index (int) -- 画像フレームのインデックス
nearby_keyframe (int) -- 近傍のキーフレームへの間隔(
GOP単位)
- 戻り値:
近傍のキーフレームの画像フレーム(バッファ)
- 戻り値の型:
bytes
- pixel_format¶
ピクセルフォーマット名。
- 戻り値:
ピクセルフォーマット名
- 戻り値の型:
str
- time_base¶
時間単位(秒)。
- 戻り値:
時間単位(秒)
- 戻り値の型:
Fraction(分子, 分母)
- timestamp(index)¶
画像フレームの
indexをタイムスタンプに変換する。- パラメータ:
index (int) -- タイムスタンプを取得したい画像フレームのインデックス
- 戻り値:
指定のインデックスの画像フレームのタイムスタンプ
- 戻り値の型:
int
- 例外:
VIDEOError -- 指定のインデックスが範囲外
- total_frames¶
動画ファイル内の総フレーム数。
- 戻り値:
総フレーム数
- 戻り値の型:
int
- video_path¶
動画ファイルのパス。
- 戻り値:
動画ファイルのパス
- 戻り値の型:
Path
- width¶
画像の幅。
- 戻り値:
画像の幅
- 戻り値の型:
int
- exception VIDEOError(*args)¶
ベースクラス:
Exceptionvideoモジュールのエラーハンドラ。
- info_ffmpeg()¶
FFMpeg関連共有ライブラリィの情報をログ出力する。
- 戻り値の型:
None