#ifndef OPENSHOT_H #define OPENSHOT_H /** * @file * @brief This header includes all commonly used headers for libopenshot, for ease-of-use. * @author Jonathan Thomas * * @mainpage OpenShot Video Editing Library C++ API * * Welcome to the OpenShot Video Editing Library (libopenshot) C++ API. This library was developed to * make high-quality video editing and animation solutions freely available to the world. With a focus * on stability, performance, and ease-of-use, we believe libopenshot is the best cross-platform, * open-source video editing library in the world. This library powers * OpenShot Video Editor (version 2.0+), the highest rated video * editor available on Linux. It could also power your next video editing project! * * Our documentation is quite extensive, including descriptions and examples of almost every class, method, * and parameter. However, getting started is easy. * * All you need is a single include to get started: * @code * #include "OpenShot.h" * @endcode * * ### The Basics ### * To understand libopenshot, we must first learn about the basic building blocks:. * - Readers - A reader is used to read a video, audio, image file, or stream and return openshot::Frame objects. * - A few common readers are openshot::FFmpegReader, openshot::TextReader, openshot::ImageReader, openshot::ChunkReader, openshot::FrameMapper * * - Writers - A writer consumes openshot::Frame objects, and is used to write / create a video, audio, image file, or stream. * - A few common writers are openshot::FFmpegWriter, openshot::ChunkWriter * * - Timeline - A timeline allows many openshot::Clip objects to be trimmed, arranged, and layered together. * - The openshot::Timeline is a special kind of reader, built from openshot::Clip objects (each clip containing a reader) * * - Keyframe - A Keyframe is used to change values of properties over time on the timeline (curve-based animation). * - The openshot::Keyframe, openshot::Point, and openshot::Coordinate are used to animate properties on the timeline. * * ### Example Code ### * Now that you understand the basic building blocks of libopenshot, lets take a look at a simple example, * where we use a reader to access frames of a video file. * @code * // Create a reader for a video * FFmpegReader r("MyAwesomeVideo.webm"); * r.Open(); // Open the reader * * // Get frame number 1 from the video * tr1::shared_ptr f = r.GetFrame(1); * * // Now that we have an openshot::Frame object, lets have some fun! * f->Display(); // Display the frame on the screen * f->DisplayWaveform(); // Display the audio waveform as an image * f->Play(); // Play the audio through your speaker * * // Close the reader * r.Close(); * @endcode * * ### A Closer Look at the Timeline ### * The following graphic displays a timeline, and how clips can be arranged, scaled, and layered together. It * also demonstrates how the viewport can be scaled smaller than the canvas, which can be used to zoom and pan around the * canvas (i.e. pan & scan). * \image html /doc/images/Timeline_Layers.png * * ### Build Instructions (Linux, Mac, and Windows) ### * For a step-by-step guide to building / compiling libopenshot, check out the * Official Installation Guide. * * ### Want to Learn More? ### * To continue learning about libopenshot, take a look at the full list of classes available. * * ### License & Copyright ### * Copyright (c) 2008-2013 OpenShot Studios, LLC * (http://www.openshotstudios.com). This file is part of * OpenShot Library (http://www.openshot.org), an open-source project * dedicated to delivering high quality video editing and animation solutions * to the world. * * OpenShot Library is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * OpenShot Library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with OpenShot Library. If not, see . */ #include "AudioBufferSource.h" #include "AudioResampler.h" #include "Cache.h" #include "ChunkReader.h" #include "ChunkWriter.h" #include "Clip.h" #include "Coordinate.h" #ifdef USE_BLACKMAGIC #include "DecklinkReader.h" #include "DecklinkWriter.h" #endif #include "DummyReader.h" #include "EffectBase.h" #include "Exceptions.h" #include "ReaderBase.h" #include "WriterBase.h" #include "FFmpegReader.h" #include "FFmpegWriter.h" #include "Fraction.h" #include "Frame.h" #include "FrameMapper.h" #include "FrameRate.h" #include "ImageReader.h" #include "KeyFrame.h" #include "Player.h" #include "Point.h" #include "Sleep.h" #include "TextReader.h" #include "Timeline.h" /* Effects */ #include "effects/ChromaKey.h" #include "effects/Deinterlace.h" #include "effects/Mask.h" #include "effects/Negate.h" #endif