video2frames_v2
-
説明:マルチスレッドで動画からフレームを抽出します。秒間サンプリング、時間範囲の切り出し、リサイズ、色空間変換に対応します。
-
パラメータ
- video_path (
str | Any):動画パス(存在し、対応 suffix を持つ必要があります)。 - frame_per_sec (
int | None):サンプルレート(fps)。Noneの場合は元の FPS を使用します。 - start_sec (
float):開始秒。デフォルトは 0。 - end_sec (
float | None):終了秒(exclusive)。Noneまたは動画長を超える場合、末尾に丸められます。 - n_threads (
int):スレッド数。デフォルトは 8。 - max_size (
int):出力フレームの長辺サイズ。デフォルトは 1920。 - color_base (
str):出力色空間。デフォルトはBGR(例:RGBを指定)。
- video_path (
-
戻り値
- list[np.ndarray]:抽出されたフレーム(読み取り不能なフレームはスキップされるため、期待数より少ない場合があります)。
-
例外
- TypeError:
video_pathが存在しない、または suffix が未対応。 - ValueError:
n_threads < 1、frame_per_sec <= 0、start_sec > end_sec、または要求サンプル数が範囲内の総フレーム数を超える場合。
- TypeError:
-
備考
frame_per_secが元の FPS を上回る場合、ValueErrorになることがあります(サンプル数が総フレーム数を超える)。- フレームは長辺が概ね
max_sizeになるようにリサイズ(拡大/縮小あり)した後、color_baseに変換されます。
-
例
import capybara as cb
frames = cb.video2frames_v2(
'video.mp4',
frame_per_sec=2,
start_sec=0,
end_sec=10,
n_threads=4,
max_size=1280,
color_base='BGR',
)