cutcutcodec.core.compilation.export.compatibility.Compatibilities

class cutcutcodec.core.compilation.export.compatibility.Compatibilities(*args, **kwargs)[source]

Link the muxers and the encoders.

check(encoders: list[str], muxers: list[str], **kwargs) ndarray[str][source]

Check all the couples encoder/muxer (cartesian product).

Parameters

encoderslist[str]

The encoder names.

muxerslist[str]

The muxer (format) names.

**kwargsdict

The optionals named parameters of cutcutcodec.core.compilation.export.compatibility.audio_encodec_compatibility and cutcutcodec.core.compilation.export.compatibility.video_encodec_compatibility.

Returns

compatibility_matrixnp.ndarray[str]

The 2d boolean compatibility matrix. Item (i, j) contains the codec name of the encoder[i] with the muxer[j].

Examples

>>> from cutcutcodec.core.compilation.export.compatibility import Compatibilities
>>> Compatibilities().check(["libx264", "libaom-av1", "libvorbis"], ["mp4", "ogg"])
array([['h264', ''],
       ['libdav1d', ''],
       ['vorbis', 'vorbis']], dtype='<U8')
>>> Compatibilities().check([], [])
array([], shape=(1, 0), dtype='<U1')
>>> Compatibilities().check(["libx264"], [])
array([], shape=(1, 0), dtype='<U1')
>>> Compatibilities().check([], ["mp4"])
array([], shape=(1, 0), dtype='<U1')
>>>
codecs_audio(muxers: list[str] | None = None, **kwargs) dict[str, list[tuple[str, str]]][source]

Search all the compatibles audio codecs.

Parameters

muxerslist[str]

The muxer (format) names.

**kwargsdict

The optionals named parameters of cutcutcodec.core.compilation.export.compatibility.audio_encodec_compatibility.

Returns

codecsdict[str, list[tuple[str, str]]]

For all audio codec, associate the encoder/muxer pairs.

Examples

>>> from pprint import pprint
>>> from cutcutcodec.core.compilation.export.compatibility import Compatibilities
>>> pprint(Compatibilities().codecs_audio(layout="5.1"))
{'aac': [('aac', '3g2'),
         ('aac', '3gp'),
         ('aac', 'adts'),
         ...
         ('aac', 'w64'),
         ('aac', 'wav'),
         ('aac', 'wtv')],
 ...
 'wavpack': [('wavpack', 'matroska'), ('wavpack', 'nut'), ('wavpack', 'wv')]}
>>>
codecs_video(muxers: list[str] | None = None, **kwargs) dict[str, list[tuple[str, str]]][source]

Search all the compatibles video codecs.

Parameters

muxerslist[str]

The muxer (format) names.

**kwargsdict

The optionals named parameters of cutcutcodec.core.compilation.export.compatibility.video_encodec_compatibility.

Returns

codecsdict[str, list[tuple[str, str]]]

For all video codec, associate the encoder/muxer pairs.

Examples

>>> from fractions import Fraction
>>> from pprint import pprint
>>> from cutcutcodec.core.compilation.export.compatibility import Compatibilities
>>> comp = Compatibilities().codecs_video(pix_fmt="yuv444p12le", rate=Fraction(120))
>>> pprint(comp["hevc"])
[('libx265', 'flv'),
 ...
 ('libx265', 'vob')]
>>>
encoders_audio(codec: str, muxers: list[str] | None = None, **kwargs) dict[str, set[str]][source]

Search all the compatible audio encoders.

Parameters

codecstr

The audio codec name.

muxerslist[str]

The muxer (format) names.

**kwargsdict

The optionals named parameters of cutcutcodec.core.compilation.export.compatibility.audio_encodec_compatibility.

Returns

encodersdict[str, set[str]]

For all audio encoder, associate the available muxers.

Examples

>>> from pprint import pprint
>>> from cutcutcodec.core.compilation.export.compatibility import Compatibilities
>>> pprint(Compatibilities().encoders_audio("vorbis", layout="5.1"))
{'libvorbis': {'asf',
               ...
               'wtv'}}
>>>
encoders_video(codec: str, muxers: list[str] | None = None, **kwargs) dict[str, set[str]][source]

Search all the compatible video encoders.

Parameters

codecstr

The video codec name.

muxerslist[str]

The muxer (format) names.

**kwargsdict

The optionals named parameters of cutcutcodec.core.compilation.export.compatibility.video_encodec_compatibility.

Returns

encodersdict[str, set[str]]

For all video encoder, associate the available muxers.

Examples

>>> from pprint import pprint
>>> from cutcutcodec.core.compilation.export.compatibility import Compatibilities
>>> pprint(
...     Compatibilities().encoders_video("h264", pix_fmt="yuv420p")
... )
{'libopenh264': {'3g2',
                 '3gp',
                 ...
                 'vob',
                 'wtv'},
 'libx264': {'3g2',
             '3gp',
             ...
             'vob',
             'wtv'}}
>>>
muxers(encoder: str, **kwargs) frozenset[str][source]

Search all the compatibles muxers.

Parameters

encoderstr

The encoder name.

**kwargsdict

The optionals named parameters of cutcutcodec.core.compilation.export.compatibility.Compatibilities.check.

Returns

available_muxersfrozenset[str]

All the available muxers for the given encoder.

Examples

>>> from pprint import pprint
>>> from cutcutcodec.core.compilation.export.compatibility import Compatibilities
>>> pprint(Compatibilities().muxers("libx264"))
frozenset({'3g2',
           '3gp',
           ...
           'vob',
           'wtv'})
>>>