Download .venv/Lib/site-packages/ffmpeg/_ffmpeg.py from DrDavis/PythonProject1: direct link, hf CLI and curl.
- Browser
- Download file 3.1 kB
-
https://huggingface.co/DrDavis/PythonProject1/resolve/main/.venv/Lib/site-packages/ffmpeg/_ffmpeg.py
- Command line
-
hf download hf://DrDavis/PythonProject1/.venv/Lib/site-packages/ffmpeg/_ffmpeg.py
-
curl -L -o _ffmpeg.py https://huggingface.co/DrDavis/PythonProject1/resolve/main/.venv/Lib/site-packages/ffmpeg/_ffmpeg.py
3.1 kB
| from __future__ import unicode_literals | |
| from past.builtins import basestring | |
| from ._utils import basestring | |
| from .nodes import ( | |
| filter_operator, | |
| GlobalNode, | |
| InputNode, | |
| MergeOutputsNode, | |
| OutputNode, | |
| output_operator, | |
| ) | |
| def input(filename, **kwargs): | |
| """Input file URL (ffmpeg ``-i`` option) | |
| Any supplied kwargs are passed to ffmpeg verbatim (e.g. ``t=20``, | |
| ``f='mp4'``, ``acodec='pcm'``, etc.). | |
| To tell ffmpeg to read from stdin, use ``pipe:`` as the filename. | |
| Official documentation: `Main options <https://ffmpeg.org/ffmpeg.html#Main-options>`__ | |
| """ | |
| kwargs['filename'] = filename | |
| fmt = kwargs.pop('f', None) | |
| if fmt: | |
| if 'format' in kwargs: | |
| raise ValueError("Can't specify both `format` and `f` kwargs") | |
| kwargs['format'] = fmt | |
| return InputNode(input.__name__, kwargs=kwargs).stream() | |
| def global_args(stream, *args): | |
| """Add extra global command-line argument(s), e.g. ``-progress``. | |
| """ | |
| return GlobalNode(stream, global_args.__name__, args).stream() | |
| def overwrite_output(stream): | |
| """Overwrite output files without asking (ffmpeg ``-y`` option) | |
| Official documentation: `Main options <https://ffmpeg.org/ffmpeg.html#Main-options>`__ | |
| """ | |
| return GlobalNode(stream, overwrite_output.__name__, ['-y']).stream() | |
| def merge_outputs(*streams): | |
| """Include all given outputs in one ffmpeg command line | |
| """ | |
| return MergeOutputsNode(streams, merge_outputs.__name__).stream() | |
| def output(*streams_and_filename, **kwargs): | |
| """Output file URL | |
| Syntax: | |
| `ffmpeg.output(stream1[, stream2, stream3...], filename, **ffmpeg_args)` | |
| Any supplied keyword arguments are passed to ffmpeg verbatim (e.g. | |
| ``t=20``, ``f='mp4'``, ``acodec='pcm'``, ``vcodec='rawvideo'``, | |
| etc.). Some keyword-arguments are handled specially, as shown below. | |
| Args: | |
| video_bitrate: parameter for ``-b:v``, e.g. ``video_bitrate=1000``. | |
| audio_bitrate: parameter for ``-b:a``, e.g. ``audio_bitrate=200``. | |
| format: alias for ``-f`` parameter, e.g. ``format='mp4'`` | |
| (equivalent to ``f='mp4'``). | |
| If multiple streams are provided, they are mapped to the same | |
| output. | |
| To tell ffmpeg to write to stdout, use ``pipe:`` as the filename. | |
| Official documentation: `Synopsis <https://ffmpeg.org/ffmpeg.html#Synopsis>`__ | |
| """ | |
| streams_and_filename = list(streams_and_filename) | |
| if 'filename' not in kwargs: | |
| if not isinstance(streams_and_filename[-1], basestring): | |
| raise ValueError('A filename must be provided') | |
| kwargs['filename'] = streams_and_filename.pop(-1) | |
| streams = streams_and_filename | |
| fmt = kwargs.pop('f', None) | |
| if fmt: | |
| if 'format' in kwargs: | |
| raise ValueError("Can't specify both `format` and `f` kwargs") | |
| kwargs['format'] = fmt | |
| return OutputNode(streams, output.__name__, kwargs=kwargs).stream() | |
| __all__ = ['input', 'merge_outputs', 'output', 'overwrite_output'] | |