video.VideoDataset
kedro_datasets_experimental.video.VideoDataset ¶
VideoDataset(
*,
filepath,
fourcc="mp4v",
credentials=None,
fs_args=None,
metadata=None
)
Bases: AbstractDataset[AbstractVideo, AbstractVideo]
VideoDataset loads/saves video data from a given filepath as a sequence of PIL.Image.Image using OpenCV.
Example usage for the YAML API¶
cars:
type: video.VideoDataset
filepath: data/01_raw/cars.mp4
motorbikes:
type: video.VideoDataset
filepath: s3://your_bucket/data/02_intermediate/company/motorbikes.mp4
credentials: dev_s3
Example usage for the Python API:¶
from kedro_datasets.video import VideoDataset
import numpy as np
video = VideoDataset(
filepath="https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"
).load()
frame = video[0]
Example creating a video from numpy frames using Python API¶
from kedro_datasets.video.video_dataset import VideoDataset, SequenceVideo
import numpy as np
from PIL import Image
frame = np.ones((640, 480, 3), dtype=np.uint8) * 255
imgs = []
for i in range(255):
imgs.append(Image.fromarray(frame))
frame -= 1
video = VideoDataset(filepath=tmp_path / "my_video.mp4")
video.save(SequenceVideo(imgs, fps=25))
Example creating a video from numpy frames using a generator and the Python API¶
from kedro_datasets.video.video_dataset import VideoDataset, GeneratorVideo
import numpy as np
from PIL import Image
def gen():
frame = np.ones((640, 480, 3), dtype=np.uint8) * 255
for i in range(255):
yield Image.fromarray(frame)
frame -= 1
video = VideoDataset(filepath=tmp_path / "my_video.mp4")
video.save(GeneratorVideo(gen(), fps=25, length=None))
Parameters:
-
filepath(str) –The location of the video file to load / save data.
-
fourcc(str | None, default:'mp4v') –The codec to use when writing video, note that depending on how opencv is installed there might be more or less codecs avaiable. If set to None, the fourcc from the video object will be used.
-
credentials(dict[str, Any] | None, default:None) –Credentials required to get access to the underlying filesystem. E.g. for
GCSFileSystemit should look like{"token": None}. -
fs_args(dict[str, Any] | None, default:None) –Extra arguments to pass into underlying filesystem class constructor (e.g.
{"project": "my-project"}forGCSFileSystem). -
metadata(dict[str, Any] | None, default:None) –Any arbitrary metadata. This is ignored by Kedro, but may be consumed by users or external plugins.
Source code in kedro_datasets_experimental/video/video_dataset.py
265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 | |
_describe ¶
_describe()
Source code in kedro_datasets_experimental/video/video_dataset.py
360 361 | |
_exists ¶
_exists()
Source code in kedro_datasets_experimental/video/video_dataset.py
363 364 | |
_write_to_filepath ¶
_write_to_filepath(video, filepath)
Source code in kedro_datasets_experimental/video/video_dataset.py
333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 | |
load ¶
load()
Loads data from the video file.
Returns:
-
AbstractVideo–Data from the video file as a AbstractVideo object
Source code in kedro_datasets_experimental/video/video_dataset.py
299 300 301 302 303 304 305 306 307 308 309 310 | |
save ¶
save(data)
Saves video data to the specified filepath.
Source code in kedro_datasets_experimental/video/video_dataset.py
312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 | |