mendevi.decode

Perform decoding measures.

Functions

decode(vid, **kwargs)

Decode an existing video.

decode_and_store(database, env_id, vid, **kwargs)

Decode a video file and store the result in the database.

get_decode_cmd(video, additional_filter, ...)

Return the ffmpeg decode cmd.

Details

mendevi.decode.decode(vid: Path, **kwargs) tuple[str, dict[str]][source]

Decode an existing video.

Parameters

vidpathlib.Path

The source video file to be decoded.

**kwargsdict

Transmitted to get_decode_cmd().

Returns

cmdstr

The ffmpeg command.

activitydict[str]

The computeur activity during the decoding process.

mendevi.decode.decode_and_store(database: Path, env_id: int, vid: Path, **kwargs)[source]

Decode a video file and store the result in the database.

Parameters

databasepathlike

The path of the existing database to be updated.

env_idint

The primary integer key of the environment.

vidpathlib.Path

The path of the video to be encoded.

**kwargs

Transmitted to decode().

mendevi.decode.get_decode_cmd(video: Path, additional_filter: str, resolution: tuple[int, int] | None) list[str][source]

Return the ffmpeg decode cmd.

Parameters

videopathlib.Path

The video to be decoded. It is required to know the resolution in order to adapt the filter.

additional_filterstr

The additional video filter, (can be an empty string).

resolutiontuple[int, int], optional

The new (heigh, width) video shape.

Returns

filterstr

The full ffmpeg decode bash command arguments.

Examples

>>> import cutcutcodec
>>> from mendevi.decode import get_decode_cmd
>>> media = cutcutcodec.utils.get_project_root().parent / "media" / "video" / "intro.webm"
>>> get_decode_cmd(media, additional_filter="", resolution=None)  
['ffmpeg', '-i', '.../media/video/intro.webm', '-vf', 'format=rgb24', '-f', 'null', '/dev/null']
>>> get_decode_cmd(media, additional_filter="", resolution=(480, 720))
[..., '-vf', 'scale=h=480:w=720:sws_flags=bicubic,format=rgb24', '-f', 'null', '/dev/null']
>>>