Skip to main content

Convenience facilities for using FFmpeg (ffmpeg.org), with invocation via `ffmpeg-python`.

Project description

Convenience facilities for using FFmpeg (ffmpeg.org), with invocation via ffmpeg-python.

Latest release 20260531: FFMPEG_DOCKER_IMAGE_DEFAULT=docker.io/linuxserver/ffmpeg, adjust for cs.dockerutils changes.

Short summary:

  • ConversionSource: ConversionSource(src, srcfmt, start_s, end_s).
  • convert: Transcode video to dstpath in FFMPEG compatible dstfmt.
  • ffmpeg_docker: Invoke ffmpeg using docker.
  • FFmpegSource: A representation of an ffmpeg input source.
  • ffprobe: Run ffprobe -print_format json on input_file, return format, stream, program and chapter information as an AttrableMapping (a dict subclass).
  • main_ffmpeg_docker: The ffm[peg-docker command line implementation.
  • MetaData: Object containing fields which may be supplied to ffmpeg's -metadata option.

Module contents:

  • class ConversionSource(builtins.tuple): ConversionSource(src, srcfmt, start_s, end_s)

ConversionSource.__replace__(self, /, **kwds): Return a new ConversionSource object replacing specified fields with new values

ConversionSource.end_s: Alias for field number 3

ConversionSource.src: Alias for field number 0

ConversionSource.srcfmt: Alias for field number 1

ConversionSource.start_s: Alias for field number 2

  • convert(*srcs, dstpath: str, doit=True, dstfmt=None, ffmpeg_exe=None, fstags: Optional[cs.fstags.FSTags] = <function <lambda> at 0x10e323a60>, conversions=None, metadata: Optional[dict] = None, timespans=(), overwrite=False, acodec=None, vcodec=None, extra_opts=None) -> List[str]: Transcode video to dstpath in FFMPEG compatible dstfmt.

    Parameters:

    • srcs: the positional parameters specify source files
    • doit: optional flag (default True); do not procude the output if false
    • dstfmt: optional destination format
    • ffmpeg_exe: optional ffmepg executable
    • conversions: optional format conversions
    • metadata: an optional mapping of metadata values
    • timespans: optional timespans to select form the sources
    • overwrite: optional flag (default False); if true allow overwriting an existing destination file
    • acodec: optional target audio codec
    • vcodec: optional target video codec
    • extra_opts: an optional mapping of additional ffmpeg output options
  • ffmpeg_docker(*ffmpeg_args: Iterable[str], docker_run_opts: Union[List[str], Mapping, NoneType] = None, doit: Optional[bool] = None, quiet: Optional[bool] = None, ffmpeg_exe: Optional[str] = None, image: Optional[str] = None, output_hostdir: Optional[str] = None) -> Optional[subprocess.CompletedProcess]: Invoke ffmpeg using docker.

  • class FFmpegSource: A representation of an ffmpeg input source.

FFmpegSource.add_as_input(self, ff): Add as an input to ff. Return None if self.source is a pathname, otherwise return the file descriptor of the data source.

Note: because we rely on ff.input('pipe:') for nonpathnames, you can only use a nonpathname FFmpegSource for one of the inputs. This is not checked.

FFmpegSource.promote(source): Promote source to an FFmpegSource.

  • ffprobe(input_file, *, doit=True, ffprobe_exe='ffprobe', quiet=False): Run ffprobe -print_format json on input_file, return format, stream, program and chapter information as an AttrableMapping (a dict subclass).
  • main_ffmpeg_docker(argv=None): The ffm[peg-docker command line implementation.
  • class MetaData(cs.tagset.TagSet): Object containing fields which may be supplied to ffmpeg's -metadata option.

MetaData.__init__(self, format, **kw): pylint: disable=redefined-builtin

MetaData.options(self): Compute the FFmpeg -metadata option strings and return as a list.

Release Log

Release 20260531: FFMPEG_DOCKER_IMAGE_DEFAULT=docker.io/linuxserver/ffmpeg, adjust for cs.dockerutils changes.

Release 20241122: Honour the $FFMPEG_DOCKER_IMAGE environment variable.

Release 20240519: ffmpeg_docker: set DockerRun.output_hostdir from the output file dirname.

Release 20240316.1: DISTINFO fix.

Release 20240316: Fixed release upload artifacts.

Release 20240201:

  • New $FFMPEG_EXE envvar.
  • convert: use $FFMPEG_EXE, return the ffmpeg argv.
  • convert: include the media type in DEFAULT_CONVERSIONS, refactor the choice of codec conversion.
  • convert: supply dummy results if doit is false - could do with some finesse.
  • ffmpeg_docker: use DockerRun.{add_input,add_output}.
  • New main_ffmpeg_docker to support the ffmpeg-docker command, add ffmpeg-docker to DISTINFO scripts.

Release 20231202: Initial PyPI release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cs_ffmpegutils-20260531.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cs_ffmpegutils-20260531-py2.py3-none-any.whl (8.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file cs_ffmpegutils-20260531.tar.gz.

File metadata

  • Download URL: cs_ffmpegutils-20260531.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for cs_ffmpegutils-20260531.tar.gz
Algorithm Hash digest
SHA256 b3d2e4c97752f6d4c7e3fc9cf1e459880c97117b63b6684cb93a5b894c89f3fa
MD5 82bdcffe178436f5d955e0f697cb10df
BLAKE2b-256 fe5b6b910c6e005da81e237c421545e4abcb5188f8c6d55863e1104f96db56ad

See more details on using hashes here.

File details

Details for the file cs_ffmpegutils-20260531-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for cs_ffmpegutils-20260531-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 cab95e125ec39010194aea09cb612f2c25191239bc7e16bc951bb213c8e46421
MD5 3b7484441ddfa840dedd94cb7b960db7
BLAKE2b-256 dc6030516d5eb2964c83d90c4ed658143e2fba553f9c0ea8bb2b554f453c08b3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page