Skip to content

Commit 62fa717

Browse files
authored
Update README and INSTALL files (including build instructions) (#194)
* Update README.md * Create INSTALL.md * Delete InstallationGuide.pdf * Create INSTALL-LINUX.md * Create INSTALL-MAC.md * Create INSTALL-WINDOWS.md
1 parent 1bf3e37 commit 62fa717

File tree

9 files changed

+990
-409
lines changed

9 files changed

+990
-409
lines changed

INSTALL.md

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
## Detailed Install Instructions
2+
3+
Operating system specific install instructions are located in:
4+
5+
* doc/INSTALL-LINUX.md
6+
* doc/INSTALL-MAC.md
7+
* doc/INSTALL-WINDOWS.md
8+
9+
## Getting Started
10+
11+
The best way to get started with libopenshot, is to learn about our build system, obtain all the source code,
12+
install a development IDE and tools, and better understand our dependencies. So, please read through the
13+
following sections, and follow the instructions. And keep in mind, that your computer is likely different
14+
than the one used when writing these instructions. Your file paths and versions of applications might be
15+
slightly different, so keep an eye out for subtle file path differences in the commands you type.
16+
17+
## Build Tools
18+
19+
CMake is the backbone of our build system. It is a cross-platform build system, which checks for dependencies,
20+
locates header files and libraries, generates makefiles, and supports the cross-platform compiling of
21+
libopenshot and libopenshot-audio. CMake uses an out-of-source build concept, where all temporary build
22+
files, such as makefiles, object files, and even the final binaries, are created outside of the source
23+
code folder, inside a /build/ sub-folder. This prevents the build process from cluttering up the source
24+
code. These instructions have only been tested with the GNU compiler (including MSYS2/MinGW for Windows).
25+
26+
## Dependencies
27+
28+
The following libraries are required to build libopenshot. Instructions on how to install these
29+
dependencies vary for each operating system. Libraries and Executables have been labeled in the
30+
list below to help distinguish between them.
31+
32+
* ### FFmpeg (libavformat, libavcodec, libavutil, libavdevice, libavresample, libswscale)
33+
* http://www.ffmpeg.org/ `(Library)`
34+
* 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.
35+
36+
* ### ImageMagick++ (libMagick++, libMagickWand, libMagickCore)
37+
* http://www.imagemagick.org/script/magick++.php `(Library)`
38+
* This library is **optional**, and used to decode and encode images.
39+
40+
* ### OpenShot Audio Library (libopenshot-audio)
41+
* https://github.com/OpenShot/libopenshot-audio/ `(Library)`
42+
* 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
43+
44+
* ### Qt 5 (libqt5)
45+
* http://www.qt.io/qt5/ `(Library)`
46+
* 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...
47+
48+
* ### CMake (cmake)
49+
* http://www.cmake.org/ `(Executable)`
50+
* This executable is used to automate the generation of Makefiles, check for dependencies, and is the backbone of libopenshot’s cross-platform build process.
51+
52+
* ### SWIG (swig)
53+
* http://www.swig.org/ `(Executable)`
54+
* 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.
55+
56+
* ### Python 3 (libpython)
57+
* http://www.python.org/ `(Executable and Library)`
58+
* 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).
59+
60+
* ### Doxygen (doxygen)
61+
* http://www.stack.nl/~dimitri/doxygen/ `(Executable)`
62+
* This executable is used to auto-generate the documentation used by libopenshot.
63+
64+
* ### UnitTest++ (libunittest++)
65+
* https://github.com/unittest-cpp/ `(Library)`
66+
* 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.
67+
68+
* ### ZeroMQ (libzmq)
69+
* http://zeromq.org/ `(Library)`
70+
* This library is used to communicate between libopenshot and other applications (publisher / subscriber). Primarily used to send debug data from libopenshot.
71+
72+
* ### OpenMP (-fopenmp)
73+
* http://openmp.org/wp/ `(Compiler Flag)`
74+
* 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.
75+
76+
## CMake Flags (Optional)
77+
There are many different build flags that can be passed to cmake to adjust how libopenshot is compiled. Some of these flags might be required when compiling on certain OSes, just depending on how your build environment is setup. To add a build flag, follow this general syntax: $ cmake -DMAGICKCORE_HDRI_ENABLE=1 -DENABLE_TESTS=1 ../
78+
79+
* MAGICKCORE_HDRI_ENABLE (default 0)
80+
* MAGICKCORE_QUANTUM_DEPTH (default 0)
81+
* OPENSHOT_IMAGEMAGICK_COMPATIBILITY (default 0)
82+
* DISABLE_TESTS (default 0)
83+
* CMAKE_PREFIX_PATH (`/location/to/missing/library/`)
84+
* PYTHON_INCLUDE_DIR (`/location/to/python/include/`)
85+
* PYTHON_LIBRARY (`/location/to/python/lib.a`)
86+
* PYTHON_FRAMEWORKS (`/usr/local/Cellar/python3/3.3.2/Frameworks/Python.framework/`)
87+
* CMAKE_CXX_COMPILER (`/location/to/mingw/g++`)
88+
* CMAKE_C_COMPILER (`/location/to/mingw/gcc`)
89+
90+
## Obtaining Source Code
91+
92+
The first step in installing libopenshot is to obtain the most recent source code. The source code is available on [GitHub](https://github.com/OpenShot/libopenshot). Use the following command to obtain the latest libopenshot source code.
93+
94+
```
95+
git clone https://github.com/OpenShot/libopenshot.git
96+
git clone https://github.com/OpenShot/libopenshot-audio.git
97+
```
98+
99+
## Folder Structure (libopenshot)
100+
101+
The source code is divided up into the following folders.
102+
103+
* ### build/
104+
* This folder needs to be manually created, and is used by cmake to store the temporary build files, such as makefiles, as well as the final binaries (library and test executables).
105+
106+
* ### cmake/
107+
* This folder contains custom modules not included by default in cmake, used to find dependency libraries and headers and determine if these libraries are installed.
108+
109+
* ### doc/
110+
* This folder contains documentation and related files, such as logos and images required by the doxygen auto-generated documentation.
111+
112+
* ### include/
113+
* This folder contains all headers (*.h) used by libopenshot.
114+
115+
* ### src/
116+
* This folder contains all source code (*.cpp) used by libopenshot.
117+
118+
* ### tests/
119+
* This folder contains all unit test code. Each class has it’s own test file (*.cpp), and uses UnitTest++ macros to keep the test code simple and manageable.
120+
121+
* ### thirdparty/
122+
* This folder contains code not written by the OpenShot team. For example, jsoncpp, an open-source JSON parser.
123+
124+
## Linux Build Instructions (libopenshot-audio)
125+
To compile libopenshot-audio, we need to go through a few additional steps to manually build and install it. Launch a terminal and enter:
126+
127+
```
128+
cd [libopenshot-audio repo folder]
129+
mkdir build
130+
cd build
131+
cmake ../
132+
make
133+
make install
134+
./src/openshot-audio-test-sound (This should play a test sound)
135+
```
136+
137+
## Linux Build Instructions (libopenshot)
138+
Run the following commands to compile libopenshot:
139+
140+
```
141+
cd [libopenshot repo directory]
142+
mkdir -p build
143+
cd build
144+
cmake ../
145+
make
146+
make install
147+
```
148+
149+
For more detailed instructions, please see:
150+
151+
* doc/INSTALL-LINUX.md
152+
* doc/INSTALL-MAC.md
153+
* doc/INSTALL-WINDOWS.md

README.md

Lines changed: 65 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,85 @@
1-
# OpenShot Library
1+
OpenShot Video Library (libopenshot) is a free, open-source C++ library dedicated to
2+
delivering high quality video editing, animation, and playback solutions to the
3+
world.
24

3-
OpenShot Library (libopenshot) is an open-source project dedicated to
4-
delivering high quality video editing, animation, and playback solutions
5-
to the world. For more information visit [http://www.openshot.org/](http://www.openshot.org/).
5+
## Build Status
66

7-
### License
7+
[![Build Status](https://img.shields.io/travis/OpenShot/libopenshot/develop.svg?label=libopenshot)](https://travis-ci.org/OpenShot/libopenshot) [![Build Status](https://img.shields.io/travis/OpenShot/libopenshot-audio/develop.svg?label=libopenshot-audio)](https://travis-ci.org/OpenShot/libopenshot-audio)
88

9-
Copyright (c) 2008-2019 OpenShot Studios, LLC
10-
[http://www.openshotstudios.com/](http://www.openshotstudios.com/).
9+
## Features
1110

12-
OpenShot Library (libopenshot) is free software: you can redistribute it
13-
and/or modify it under the terms of the GNU Lesser General Public License
14-
as published by the Free Software Foundation, either version 3 of the
15-
License, or (at your option) any later version.
11+
* Cross-Platform (Linux, Mac, and Windows)
12+
* Multi-Layer Compositing
13+
* Video and Audio Effects (Chroma Key, Color Adjustment, Grayscale, etc…)
14+
* Animation Curves (Bézier, Linear, Constant)
15+
* Time Mapping (Curve-based Slow Down, Speed Up, Reverse)
16+
* Audio Mixing & Resampling (Curve-based)
17+
* Audio Plug-ins (VST & AU)
18+
* Audio Drivers (ASIO, WASAPI, DirectSound, CoreAudio, iPhone Audio, ALSA, JACK, and Android)
19+
* Telecine and Inverse Telecine (Film to TV, TV to Film)
20+
* Frame Rate Conversions
21+
* Multi-Processor Support (Performance)
22+
* Python and Ruby Bindings (All Features Supported)
23+
* Qt Video Player Included (Ability to display video on any QWidget)
24+
* Unit Tests (Stability)
25+
* All FFmpeg Formats and Codecs Supported (Images, Videos, and Audio files)
26+
* Full Documentation with Examples (Doxygen Generated)
1627

17-
OpenShot Library (libopenshot) is distributed in the hope that it will be
18-
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
19-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20-
GNU Lesser General Public License for more details.
28+
## Install
2129

22-
You should have received a copy of the GNU Lesser General Public License
23-
along with OpenShot Library. If not, see [http://www.gnu.org/licenses/](http://www.gnu.org/licenses/).
30+
Detailed instructions for building libopenshot and libopenshot-audio for each OS. These instructions
31+
are also available in the /docs/ source folder.
2432

25-
---
26-
To release a closed-source product which uses libopenshot (i.e. video
27-
editing and playback), commercial licenses are available: contact
28-
[email protected] for more information.
33+
* [Linux](https://github.com/OpenShot/libopenshot/wiki/Linux-Build-Instructions)
34+
* [Mac](https://github.com/OpenShot/libopenshot/wiki/Mac-Build-Instructions)
35+
* [Windows](https://github.com/OpenShot/libopenshot/wiki/Windows-Build-Instructions)
2936

30-
---
37+
## Documentation
3138

32-
### Install
39+
Beautiful HTML documentation can be generated using Doxygen.
40+
```
41+
make doc
42+
```
43+
(Also available online: http://openshot.org/files/libopenshot/)
3344

34-
Please see /doc/InstallationGuide.pdf for a very detailed
35-
Linux, Mac, and Windows compiling instruction guide. An online version
36-
is also available:
37-
[https://docs.google.com/document/d/1V6nq-IuS9zxqO1-OSt8iTS_cw_HMCpsUNofHLYtUNjM/pub](https://docs.google.com/document/d/1V6nq-IuS9zxqO1-OSt8iTS_cw_HMCpsUNofHLYtUNjM/pub)
45+
## Developers
3846

47+
Are you interested in becoming more involved in the development of
48+
OpenShot? Build exciting new features, fix bugs, make friends, and become a hero!
49+
Please read the [step-by-step](https://github.com/OpenShot/openshot-qt/wiki/Become-a-Developer)
50+
instructions for getting source code, configuring dependencies, and building OpenShot.
3951

40-
### Documentation
52+
## Report a bug
4153

42-
Documentation is auto-generated by Doxygen, and can be created with
43-
```
44-
make doc
45-
```
46-
(Also available online: [http://openshot.org/files/libopenshot/](http://openshot.org/files/libopenshot/))
54+
You can report a new libopenshot issue directly on GitHub:
55+
56+
https://github.com/OpenShot/libopenshot/issues
57+
58+
## Websites
4759

60+
- https://www.openshot.org/ (Official website and blog)
61+
- https://github.com/OpenShot/libopenshot/ (source code and issue tracker)
62+
- https://github.com/OpenShot/libopenshot-audio/ (source code for audio library)
63+
- https://github.com/OpenShot/openshot-qt/ (source code for Qt client)
64+
- https://launchpad.net/openshot/
4865

49-
### Authors
66+
### License
5067

51-
Please see AUTHORS file for a full list of authors.
68+
Copyright (c) 2008-2019 OpenShot Studios, LLC.
5269

70+
OpenShot Library (libopenshot) is free software: you can redistribute it
71+
and/or modify it under the terms of the GNU Lesser General Public License
72+
as published by the Free Software Foundation, either version 3 of the
73+
License, or (at your option) any later version.
5374

54-
---
55-
[www.openshot.org](http://www.openshot.org) | [www.openshotstudios.com](http://www.openshotstudios.com)
75+
OpenShot Library (libopenshot) is distributed in the hope that it will be
76+
useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
77+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
78+
GNU Lesser General Public License for more details.
5679

57-
---
58-
Copyright (c) 2008-2019 OpenShot Studios, LLC
80+
You should have received a copy of the GNU Lesser General Public License
81+
along with OpenShot Library. If not, see http://www.gnu.org/licenses/.
5982

60-
[www.openshotstudios.com](http://www.openshotstudios.com).
83+
To release a closed-source product which uses libopenshot (i.e. video
84+
editing and playback), commercial licenses are also available: contact
85+
[email protected] for more information.

cmake/Windows/README

Lines changed: 0 additions & 85 deletions
This file was deleted.

0 commit comments

Comments
 (0)