Globals¶
- av.open(file, mode='r', **kwargs)¶
Main entrypoint to opening files/streams.
- Parameters:
file (str) – The file to open, which can be either a string or a file-like object.
mode (str) –
"r"
for reading and"w"
for writing.format (str) – Specific format to use. Defaults to autodect.
options (dict) – Options to pass to the container and all streams.
container_options (dict) – Options to pass to the container.
stream_options (list) – Options to pass to each stream.
metadata_encoding (str) – Encoding to use when reading or writing file metadata. Defaults to
"utf-8"
.metadata_errors (str) – Specifies how to handle encoding errors; behaves like
str.encode
parameter. Defaults to"strict"
.buffer_size (int) – Size of buffer for Python input/output operations in bytes. Honored only when
file
is a file-like object. Defaults to 32768 (32k).timeout – How many seconds to wait for data before giving up, as a float, or a
(open timeout, read timeout)
tuple.io_open (callable) – Custom I/O callable for opening files/streams. This option is intended for formats that need to open additional file-like objects to
file
using custom I/O. The callable signature isio_open(url: str, flags: int, options: dict)
, whereurl
is the url to open,flags
is a combination of AVIO_FLAG_* andoptions
is a dictionary of additional options. The callable should return a file-like object.
- Return type:
For devices (via
libavdevice
), pass the name of the device toformat
, e.g.:>>> # Open webcam on MacOS. >>> av.open('0', format='avfoundation')
For DASH and custom I/O using
io_open
, add a protocol prefix to thefile
to prevent the DASH encoder defaulting to the file protocol and using temporary files. The custom I/O callable can be used to remove the protocol prefix to reveal the actual name for creating the file-like object. E.g.:>>> av.open("customprotocol://manifest.mpd", "w", io_open=custom_io)
See also
More information on using input and output devices is available on the FFmpeg website.