Skip to content

Linux Build Instructions

Jonathan Thomas edited this page Feb 8, 2019 · 16 revisions

Getting Started

The best way to get started with libopenshot, is to learn about our build system, obtain all the source code, install a development IDE and tools, and better understand our dependencies. So, please read through the following sections, and follow the instructions. And keep in mind, that your computer is likely different than the one used when writing these instructions. Your file paths and versions of applications might be slightly different, so keep an eye out for subtle file path differences in the commands you type.

Build Tools

CMake is the backbone of our build system. It is a cross-platform build system, which checks for dependencies, locates header files and libraries, generates makefiles, and supports the cross-platform compiling of libopenshot and libopenshot-audio. CMake uses an out-of-source build concept, where all temporary build files, such as makefiles, object files, and even the final binaries, are created outside of the source code folder, inside a /build/ sub-folder. This prevents the build process from cluttering up the source code. These instructions have only been tested with the GNU compiler (including MSYS2/MinGW for Windows).

Dependencies

The following libraries are required to build libopenshot. Instructions on how to install these dependencies vary for each operating system. Libraries and Executables have been labeled in the list below to help distinguish between them.

  • FFmpeg (libavformat, libavcodec, libavutil, libavdevice, libavresample, libswscale)

    • http://www.ffmpeg.org/ (Library)
    • This library is used to decode and encode video, audio, and image files. It is also used to obtain information about media files, such as frame rate, sample rate, aspect ratio, and other common attributes.
  • ImageMagick++ (libMagick++, libMagickWand, libMagickCore)

  • OpenShot Audio Library (libopenshot-audio)

    • https://github.com/OpenShot/libopenshot-audio/ (Library)
    • This library is used to mix, resample, host plug-ins, and play audio. It is based on the JUCE project, which is an outstanding audio library used by many different applications
  • Qt 5 (libqt5)

    • http://www.qt.io/qt5/ (Library)
    • Qt5 is used to display video, store image data, composite images, apply image effects, and many other utility functions, such as file system manipulation, high resolution timers, etc...
  • CMake (cmake)

    • http://www.cmake.org/ (Executable)
    • This executable is used to automate the generation of Makefiles, check for dependencies, and is the backbone of libopenshot’s cross-platform build process.
  • SWIG (swig)

    • http://www.swig.org/ (Executable)
    • This executable is used to generate the Python and Ruby bindings for libopenshot. It is a simple and powerful wrapper for C++ libraries, and supports many languages.
  • Python 3 (libpython)

    • http://www.python.org/ (Executable and Library)
    • This library is used by swig to create the Python (version 3+) bindings for libopenshot. This is also the official language used by OpenShot Video Editor (a graphical interface to libopenshot).
  • Doxygen (doxygen)

  • UnitTest++ (libunittest++)

    • https://github.com/unittest-cpp/ (Library)
    • This library is used to execute unit tests for libopenshot. It contains many macros used to keep our unit testing code very clean and simple.
  • ZeroMQ (libzmq)

    • http://zeromq.org/ (Library)
    • This library is used to communicate between libopenshot and other applications (publisher / subscriber). Primarily used to send debug data from libopenshot.
  • OpenMP (-fopenmp)

    • http://openmp.org/wp/ (Compiler Flag)
    • If your compiler supports this flag (GCC, Clang, and most other compilers), it provides libopenshot with easy methods of using parallel programming techniques to improve performance and take advantage of multi-core processors.

Obtaining Source Code

The first step in installing libopenshot is to obtain the most recent source code. The source code is available on GitHub. Use the following command to obtain the latest libopenshot source code.

git clone https://github.com/OpenShot/libopenshot.git
Clone this wiki locally