Load data about a video file into SQLite
Install this tool using pip
:
pip install video-to-sqlite
To create a SQLite database with metadata about a video, run:
video-to-sqlite videos.db my_video.mp4
The tool will create two tables: videos
and frames
. If videos.db
already exists, the video will be added to the
videos
table.
To create the tables with a prefix, use --prefix prefix
. For example:
video-to-sqlite videos.db cool_video.mp4 --prefix cool_
This will create tables called cool_videos
and cool_frames
.
Using the library programatically allows extra columns to be added to the database via a callback. Specify the
callback
argument to cli.main()
.
The function will be called once per frame in the video. It should accept a numpy ndarray of the frame in question, and a dict containing metadata for the frame. The callback should return a dict. The dict's keys will be added as columns to the DB, and values will be the corresponding values for that row.
An example:
import video_to_sqlite
def my_callback(frame, metadata):
has_a_cat_in_it = ai_cat_image_detector(frame)
if metadata['pict_type'] == 'I': # is this frame a keyframe?
brightness = get_average_brightness(frame)
return {'cat': has_a_cat_in_it, 'brightness': brightness}
video_to_sqlite.main('my_database.db', 'cool_video.mp4', 'cool_', my_callback)
See callback.py
for a working example.
Usage: video-to-sqlite DB_PATH VIDEO_FILE PREFIX
Load data about frames from a video into SQLite
Usage example:
video-to-sqlite videos.db my_video.mp4 my_
Created tables will be videos and frames
To create tables called cool_videos, cool_frames use
--prefix cool_:
video-to-sqlite videos.db my_video.mp4 --prefix cool_
Options:
--version Show the version and exit.
--prefix TEXT Prefix to use for the created database tables
--help Show this message and exit.