cutcutcodec.core.compilation.export.rate

Allow to suggest an appropriate rate.

Functions

available_audio_rates(encoders)

Search the different sampling frequencies available by this encoder.

suggest_audio_rate(stream[, choices])

Return the best compatible audio samplerate.

suggest_video_rate(stream)

Return the best compatible video framerate.

Details

cutcutcodec.core.compilation.export.rate.available_audio_rates(encoders: Iterable[str]) None | set[int][source]

Search the different sampling frequencies available by this encoder.

Parameters

encoderslist[str]

The encoder name.

Returns

ratesset[int] or None

The set of the available rates. The value None means their is no constraints. An empty set means there is not availaible or common rates.

Examples

>>> from cutcutcodec.core.compilation.export.rate import available_audio_rates
>>> available_audio_rates([])
set()
>>> sorted(available_audio_rates(["libmp3lame"]))
[8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000]
>>> sorted(available_audio_rates(["libopus"]))
[8000, 12000, 16000, 24000, 48000]
>>> print(available_audio_rates(["flac"]))
None
>>> sorted(available_audio_rates(["libmp3lame", "libopus"]))
[8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000]
>>>
cutcutcodec.core.compilation.export.rate.suggest_audio_rate(stream: StreamAudio, choices: Iterable[int] | None = None) int[source]

Return the best compatible audio samplerate.

Parameters

streamcutcutcodec.core.classes.stream_audio.StreamAudio

The stream that we want to encode.

choicesset[int], optional

The possible rates. If provide, returns the most appropriate rate of this set. The value None means all rates are allowed. This selection could be generated from cutcutcodec.core.compilation.export.rate.available_audio_rates.

Returns

rateint

A suitable sampling rate compatible with the specified options.

Examples

>>> from cutcutcodec.core.compilation.export.rate import suggest_audio_rate
>>> from cutcutcodec.core.io.read_ffmpeg import ContainerInputFFMPEG
>>> (stream,) = ContainerInputFFMPEG("cutcutcodec/examples/audio_5.1_narration.oga").out_streams
>>> suggest_audio_rate(stream)  # no constraint
16000
>>> suggest_audio_rate(stream, [8000, 12000, 24000, 48000])  # constraint
24000
>>>
cutcutcodec.core.compilation.export.rate.suggest_video_rate(stream: StreamVideo) Fraction[source]

Return the best compatible video framerate.

Parameters

streamcutcutcodec.core.classes.stream_video.StreamVideo

The stream that we want to encode.

Returns

rateFraction

An optimal frame rate.

Examples

>>> from cutcutcodec.core.compilation.export.rate import suggest_video_rate
>>> from cutcutcodec.core.io.read_ffmpeg import ContainerInputFFMPEG
>>> (stream,) = ContainerInputFFMPEG("cutcutcodec/examples/video.mp4").out_streams
>>> suggest_video_rate(stream)
Fraction(25, 1)
>>>