To use :py:mod:`ffmpegio`, the package must be installed on Python as well as having the FFmpeg binary files at a location :py:mod:`ffmpegio` can find.
Install the :py:mod:`ffmpegio` package via pip. There are two options: ffmpegio and ffmpegio-core.
pip install ffmpegioThis option installs the ffmpegio and ffmpegio_plugin_numpy packages so that the media data I/O are performed with numpy.ndarray objects. Naturally, ffmpegio_plugin_numpy requires numpy dependency. For use cases in which media data I/O is not needed, it unnecessarily bloats the site-package install. In such case, use the core-only install:
pip install ffmpegio-coreThis option only installs the ffmpegio package without numpy dependency. While media I/O functions (e.g., open(), video.read(), and audio.write()) are still available, the data are represented binary a dict object containing bytes data.
The installation of FFmpeg is platform dependent. For Ubuntu/Debian Linux,
sudo apt install ffmpegand for MacOS,
brew install ffmpegno other actions are needed as these commands will place the FFmpeg executables on the system path.
For Windows, it is a bit more complicated.
Download pre-built packages from the links available on the FFmpeg's Download page.
Unzip the content and place the files in one of the following directories:
Auto-detectable FFmpeg folder path
Example
%PROGRAMFILES%\ffmpegC:\Program Files\ffmpeg%PROGRAMFILES(X86)%\ffmpegC:\Program Files (x86)\ffmpeg%USERPROFILE%\ffmpegC:\Users\john\ffmpeg%APPDATA%\ffmpegC:\Users\john\AppData\Roaming\ffmpeg%APPDATA%\programs\ffmpegC:\Users\john\AppData\Roaming\programs\ffmpeg%LOCALAPPDATA%\ffmpegC:\Users\john\AppData\Local\ffmpeg%LOCALAPPDATA%\programs\ffmpegC:\Users\john\AppData\Local\programs\ffmpegKeep the internal structure intact, i.e., the executables must be found at
ffmpeg\bin\ffmpeg.exeandffmpeg\bin\ffprobe.exe.There are two other alternative. First, the FFmpeg binaries could be placed on the Python's current working directory (i.e.,
os.getcwd()). Second, they could be placed in an arbitrary location and use :py:func:`ffmpegio.set_path` to specify the location. The latter feature is especially useful when ffmpegio is bundled in a package (e.g., PyInstaller).