ffmpeg-python-wrapper is a lightweight python binder built for the FFmpeg library. Unlike most of the other Ffmpeg python bindings, this project focuses on providing user friendly documentation and clear & simple syntax to perform music, image, and video editing tasks.

Example Creations


You need FFmpeg to be installed on your computer. If not, please follow the instructions below to get it.

Installing FFmpeg in Windows

  1. Download a static build from here.
  2. Use 7-Zip to unpack it in the folder of your choice.
  3. Open a command prompt with administrator's rights.
    NOTE: Use CMD.exe, do not use Powershell! The syntax for accessing environment variables is different from the command shown in Step 4 - running it in Powershell will overwrite your System PATH with a bad value.
  4. Run the command (see note below; in Win7 and Win10, you might want to use the Environmental Variables area of the Windows Control Panel to update PATH):
    setx /M PATH "path\to\ffmpeg\bin;%PATH%"
    Do not run setx if you have more than 1024 characters in your system PATH variable. See this post on SuperUser that discusses alternatives.
    Be sure to alter the command so that path\to reflects the folder path from your root to ffmpeg\bin.
    (Here's another explanation with pictures.)

Installing FFmpeg in OS X

Here are a couple of links to instructions:

Installing FFmpeg in Ubuntu

sudo add-apt-repository ppa:mc3man/trusty-media  
sudo apt-get update  
sudo apt-get install ffmpeg  
sudo apt-get install frei0r-plugins  

Helpful links for Ubuntu users:

Usage Examples

Creating a subclip of a video

video = Media('path_to_video')

Setting duration

music = Media('path_to_music')

Looping Video

video = Media('path_to_video')
target_duration = 120

Reshaping Media

image = Media('path_to_image')
new_size = [720,360]

Concatenating Clips

clip_list = ['path_to_video1', 'path_to_video2']
concatenate_clips(clip_list, 'output_name.mp4')


This project is in the very early stages of development. Please feel free to fork the repository and mess around with it.

  • For small changes, please open a pull request
  • For larger changes, please start an issue so other people can weigh in. Otherwise, feel free to contact me at my email.