OPENSHOT-QT(1) | OpenShot Video Editor | OPENSHOT-QT(1) |
openshot-qt - OpenShot Video Editor Documentation
OpenShot Video Editor is an award-winning, open-source video editor, available on Linux, Mac, Chrome OS, and Windows. OpenShot can create stunning videos, films, and animations with an easy-to-use interface and rich set of features. [image]
OpenShot Video Editor is an award-winning, open-source video editor, available on Linux, Mac, and Windows. OpenShot can create stunning videos, films, and animations with an easy-to-use interface and rich feature-set. [image]
[image]
Video editing benefits from modern, multi-core CPUs with fast clock speeds (GHz), large amounts of memory, and fast hard disk drives. Basically, you want the best computer you can afford when video editing. Here are the minimum system requirements:
Most computers manufactured after 2017 will run OpenShot
OpenShot Video Editor 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 Video Editor 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.
The latest stable version of OpenShot Video Editor for Linux, Mac, Chrome OS, and Windows can be downloaded from the official download page at https://www.openshot.org/download/. You can find our latest unstable versions (i.e. daily builds) at https://www.openshot.org/download#daily (these versions are updated very frequently, and often contain many improvements not yet released in our stable build).
Download the Windows installer from the official download page (the download page contains both 64-bit and 32-bit versions), double click it, and follow the directions on screen. Once completed, OpenShot will be installed and available in your Start menu. [image] [image]
If you need to install OpenShot on Windows without Administrator permissions, we also support a portable installation process. Download the Windows installer from the official download page, open the command prompt, and type the following commands:
Install portable version of OpenShot (no administrator permissions required)
cd C:\Users\USER\Downloads\ OpenShot-v2.6.1-x86_64.exe /portable=1 /currentuser /noicons
Download the DMG file from the official download page, double click it, and then drag the OpenShot application icon into your Applications shortcut. This is very similar to how most Mac applications are installed. Now launch OpenShot from Launchpad or Applications in Finder. [image]
Most Linux distributions have a version of OpenShot in their software repositories, which can be installed using your package manager / software store. However, these packaged versions are often very outdated (be sure to check the version number: Help→About OpenShot). For this reason, we recommend installing an AppImage from the official download page.
Once downloaded, right click on the AppImage, choose Properties, and mark the file as Executable. Finally, double click the AppImage to launch OpenShot. If double clicking does not launch OpenShot, you can also right click on the AppImage, and choose Execute or Run. For a detailed guide on installing our AppImage and creating a launcher for it, see our AppImage Installation Guide. [image]
For Debian-based Linux distributions (Ubuntu, Mint, etc…), we also have a PPA (Personal Package Archive), which adds our official OpenShot software repository to your package manager, making it possible to install our latest version, without relying on our AppImages.
Stable PPA (Contains only official releases)
sudo add-apt-repository ppa:openshot.developers/ppa sudo apt update sudo apt install openshot-qt python3-openshot
Daily PPA (Highly experimental and unstable, for testers)
sudo add-apt-repository ppa:openshot.developers/libopenshot-daily sudo apt update sudo apt install openshot-qt python3-openshot
Chrome OS supports Linux apps, but this feature is off by default. You can turn it on in Settings. Once Linux is enabled, you can install and run OpenShot Linux AppImages on any x86-based Chromebook. The command below will download our AppImage and configure your system to run OpenShot successfully.
Using OpenShot is very easy, and this tutorial will take you through the basics in under 5 minutes. After this tutorial, you will be able to make a simple photo slide-show with music.
To help understand the steps below, here are some definitions of a few basic terms used in this tutorial.
Term | Description |
Project | A project includes references to all the video files and edits (animations, titles, etc…), saved in a single file. |
Timeline | The timeline is an editing user interface that represents edits and clips on a horizontal ruler. Time progresses from left to right. |
Track | A separate layer on the timeline, which can hold clips. A timeline is made up of many tracks, stacked vertically. |
Clip | A trimmed portion of video, audio, or both positioned on a track, and at a specific position in time. When files are dropped on the timeline, they are represented as a Clip. |
Transition | A method to blend two images. Transitions can take many forms, including cuts, dissolves, and wipes. |
If you prefer to learn by watching videos instead of reading, we have many official video tutorials that cover a wide range of beginner and introductory topics. These videos are a great next step on your way to master OpenShot Video Editor!
Before we can begin making a video, we need to import media files into OpenShot. Most video, image and music file formats will work. Drag and drop a few videos or images and a music file from your Desktop to OpenShot. Be sure to drop the files where the arrow in the illustration is pointing to. [image]
Alternative methods to add files to your projects are described in the section Import Files. The “Show All”, “Video”, “Audio”, “Image” filters above the added files allows you to only see the file types you are interested in.
Next, drag each video or photo onto a track in the timeline (as seen in the illustration). The timeline represents your final video, so arrange your photos (i.e. clips) in whatever sequence you want them to appear in your video. If you overlap two clips, OpenShot will automatically create a smooth fade between them, displayed by blue rounded rectangles between the clips. Remember, you can rearrange the clips as many times as needed by simply dragging and dropping them.
You can also shorten or lengthen each clip, by clicking the left or right edge and dragging your mouse. For example, if you want a photo to last longer than 10 seconds (the default duration), simply grab the right edge of the photo (on the timeline), and drag it to the right (to increase the clip’s duration on the timeline). [image]
To make our creation more interesting, we need to add some music. Click on the music file that you imported in step 1, and drag it onto the timeline. If the song is too long, grab the right edge of your music clip, and resize it smaller (that will make it end earlier). You could also insert the same file multiple times, if your music is too short. [image]
To preview what our video looks & sounds like, click the Play button under the preview window. You can also pause, rewind, and fast-forward your video project by clicking the corresponding buttons. [image]
Once you have edited your photo slide-show video, the last step is to export the project. Exporting converts your OpenShot project into a single video output file. By using the default settings, the video works on most media players (such as VLC) or websites (such as YouTube, Vimeo, …).
Click on the Export Video icon at the top of the screen (or use the File→Export Video menu). The default values will work fine, so just click the Export Video button to render your new video. [image]
You should now have a basic understanding of how OpenShot works. Importing, Arranging, Previewing, and Exporting. Hopefully this tutorial took less than 5 minutes for you to complete. Please read the rest of this guide for a more detailed understanding of OpenShot and its advanced features.
If you have any questions after reading this User Guide, please consider joining our Reddit User Community to discuss topics, ask questions, and meet with other OpenShot users.
You do not need to be a trained videographer to understand how to create videos well. Simple editing can keep your viewers engaged longer, and add a professional feel, even if you are not a professional video editor.
Basically, video editing is taking footage, cutting it up, removing the pieces you do not want, and keeping the bits you do. Back in the old days, editing was slicing reels of film and piecing it together. Thankfully software makes the whole process much more manageable.
There are three main jobs of video editing:
Use these three points as a checklist as you edit.
Video editing does not require an expensive machine, especially if you are a beginner. It would be best if you had a decent monitor and graphics card. If you have an older computer, check your system specifications against OpenShot’s System Requirements to make sure it works for video editing. Unfortunately, many older computers are not fast enough for video editing, and you should upgrade your whole system, if possible.
Before beginning a video project, ensure there is enough storage space on your computer to save all the necessary clips. For example, one hour of 1080i video, such as from a mini-DV camcorder, takes up nearly 11 GB of storage. If your computer’s internal storage device cannot store all the clips, the solution is to buy an external drive.
It would help if you had several cables, usually Firewire or USB, to connect your computer, external hard drive, and a camera. Different computers and cameras accept other connectors, so check your manuals before buying anything.
Becoming a great video editor isn’t effortless, but with practice and patience, you’ll be editing like a professional in no time. Here are a few of the essential tips and techniques you need to know to become a skilled video editor.
People view most of their projects on phones, tablets, or computers, so it is essential to know how to export for the web. The goal when exporting a video for the web is to create the highest quality possible with the smallest file size. Four main factors determine the file size of your finished video:
OpenShot Video Editor has one main window which contains most of the information, buttons, and menus needed to edit your video project.
[image]
# | Name | Description |
1 | Main Toolbar | Contains buttons to open, save, and export your video project. |
2 | Function Tabs | Switch between Project Files, Transitions, Effects, and Emojis. |
3 | Project Files | All audio, video, and image files that have been imported into your project. |
4 | Preview Window | This is the area that the video will playback on the screen. |
5 | Edit Toolbar | This toolbar contains buttons used for snapping, inserting markers, slicing razor, and jumping between markers. |
6 | Zoom Slider | This slider will adjust the time-scale of your timeline. Drag the left or right edge to zoom in or out. Drag the blue area to scroll the timeline left or right. Clips and transitions are displayed as simple rectangles, to give you context for adjusting the zoom to specific clips. |
7 | Play-head / Ruler | The ruler shows the time-scale, and the red line is the play-head. The play-head represents the current playback position. Hold Shift key while dragging the playhead to snap to nearby clips. |
8 | Timeline | The timeline visualizes your video project, and each clip and transition in your project. You can drag the mouse to select, move, or delete multiple items. |
9 | Filter | Filter the list of items shown (project files, transitions, effects, and emojis) by using these buttons and filter textbox. Enter a few letters of what you are looking for, and the results will be shown. |
10 | Playback | Left to Right: Jump to Start, Rewind, Play/Pause, Fast Forward, and Jump to End |
For step-by-step instructions on the basic usage of OpenShot, be sure to read the Quick Tutorial.
When you first launch OpenShot, you will be presented with a friendly built-in tutorial. It will demonstrate and explain the basics. Clicking Next will jump to the next topic. You can always view this tutorial again from the Help→Tutorial menu. [image]
OpenShot uses tracks to layer videos and images. The top most track is the top layer, and the bottom track is the bottom layer. If you are familiar with layers in a photo editing application, then you should be quite familiar with this concept. OpenShot will stack the layers and mix each one together, just like a photo editing application. You can have an unlimited number of tracks, but typically a simple video project will not need more than 5 tracks.
For example, imagine a 3 track video project [image]
# | Name | Description |
1 | Top Track | Clips on this track will always be on top and visible. Often watermarks and titles are placed on higher tracks. |
2 | Middle Track | Clips in the middle (might or might not be visible, depending on what is above them) |
3 | Bottom Track | Clips on this track will always be on the bottom. Often audio clips are placed on lower tracks. |
Here is a list of the default keyboard shortcuts supported by OpenShot. You can configure these shortcuts in the Preferences window, which is opened by selecting Edit→Preferences from the OpenShot menu bar. (On macOS, choose OpenShot Video Editor→Preferences.) Learning a few of these shortcuts can save you a bunch of time!
Shortcut | Action |
Ctrl+H | About OpenShot |
Ctrl+M | Add Marker |
Ctrl+Shift+T | Add Track |
Ctrl+W | Add to Timeline |
Ctrl+B | Animated Title |
Ctrl+Up | Center on Playhead |
Ctrl+P | Choose Profile |
Ctrl+Shift+ESC | Clear All Cache |
Ctrl+C | Copy |
Delete | Delete Item |
Backspace | Delete Item (Alternate 1) |
Ctrl+D | Details View |
Ctrl+Shift+C | Duplicate Title |
Not Set | Edit Title |
Ctrl+E | Export Video |
L | Fast Forward |
F11 | Fullscreen |
Ctrl+F | Import Files… |
Ctrl+Shift+E | Insert Keyframe |
Ctrl+End | Jump To End |
Ctrl+Home | Jump To Start |
Ctrl+N | New Project |
Right | Next Frame |
Ctrl+Right | Next Marker |
Shift+Left | Nudge left |
Shift+Right | Nudge right |
Ctrl+O | Open Project… |
Ctrl+V | Paste |
Space | Play/Pause Toggle |
Up | Play/Pause Toggle (Alternate 1) |
Down | Play/Pause Toggle (Alternate 2) |
K | Play/Pause Toggle (Alternate 3) |
Ctrl+Shift+P | Preferences |
Left | Previous Frame |
Ctrl+Left | Previous Marker |
Ctrl+I | Properties |
Ctrl+Q | Quit |
Ctrl+Y | Redo |
J | Rewind |
Not Set | Save Current Frame |
Ctrl+S | Save Project |
Ctrl+Shift+S | Save Project As… |
Ctrl+A | Select All |
Ctrl+Shift+A | Select None |
Ctrl+K | Slice All: Keep Both Sides |
Ctrl+L | Slice All: Keep Left Side |
Ctrl+J | Slice All: Keep Right Side |
s | Slice Selected: Keep Both Sides |
d | Slice Selected: Keep Left Side |
a | Slice Selected: Keep Right Side |
Ctrl+G | Snapping Enabled |
Ctrl+X | Split Clip… |
Ctrl+Shift+D | Thumbnail View |
Ctrl+T | Title |
R | Toggle Razor |
Ctrl+R | Transform |
Ctrl+Z | Undo |
= | Zoom In |
- | Zoom Out |
Ctrl+Middle Button | Scroll Timeline |
To create a video, we need to make media files available to our project by importing files into OpenShot. Most media file types are recognized, such as videos, images, and audio files. Files can be viewed and managed in the Project Files panel.
Note that imported files are not copied anywhere, they remain in the physical location they were before and are simply being made available to your video project. So, they must not be deleted, renamed, or moved after adding them to your project. The “Show All”, “Video”, “Audio”, “Image” filters above the files allows you to only see the file types you are interested in. You can also toggle the view between details and thumbnails view of your files.
These are all possible methods to import media files into OpenShot: [image]
To view the file menu, right click on a file (in the Project Files panel). Here are the actions you can use from the file menu. [image]
Name | Description |
Import Files… | Import files into your project |
Thumbnail/Detail | Toggle the view between details and thumbnails |
Preview File | Preview a media file |
Split Clip… | Split a file into many smaller clips |
Edit Title | Edit an existing title SVG file |
Duplicate Title | Make a copy, and then edit the copied title SVG file |
Add to Timeline | Add many files to the timeline in one step |
File Properties | View the properties of a file, such as frame rate, size, etc… |
Remove from Project | Remove a file from the project |
If you need to cut a file into many smaller clips before editing, the Split Clip dialog is built exactly for this purpose. Right click on a file, and choose Split Clip… from the file menu. This opens the Split Clip dialog. Use this dialog to quickly cut out as many small clips as you need. The dialog stays open after you create a clip, to allow you to repeat the steps for your next clip. When you are finished, simply close the dialog. [image]
Please refer to the section Trimming & Slicing for more ways to cut and slice clips directly in the timeline.
If you want your clips available outside of your OpenShot project, or want to copy all your video assets to one place, you can do this with the Export Clips dialog. Simply Ctrl+Click to select any clips or files you like, then Right Click and choose Export Clips. In the dialog that appears, choose a destination folder, and click Export.
NOTE: This will export each clip using it’s original video profile (width, height, framerate, aspect ratio, etc…). It also supports any Split Clip (described above). For example, if you have split a long video file into many different clips (and named them), you can now export all the clips as separate video files (using the original clip’s video profile). [image]
In certain cases, you might need to add many files to the timeline at the same time. For example, a photo slide show, or a large number of short video clips. The Add to Timeline dialog can automate this task for you. First, select all files you need to add, right click, and choose Add to Timeline. [image]
To view the properties of any imported file in your video project, right click on the file, and choose File Properties. This will launch the file properties dialog, which displays information about your media file. For certain types of images (i.e. image sequences), you can adjust the frame rate on this dialog also. [image]
# | Name | Description |
1 | File Properties | Select an image sequence in the Project Files panel, right click and choose File Properties |
2 | Frame Rate | For image sequences, you can also adjust the frame rate of the animation |
This will remove a file from the project. It will not delete the underlying physical file though, so removing a file from the project merely makes it unavailable for this video project.
Each media file you add to the OpenShot timeline is called a clip and is visualized by a dark, rounded rectangle (as seen in the screenshot below). A clip has many properties, which affect how and when the clip is rendered and composited, such as position, layer, scale, location, rotation, and alpha. OpenShot can animate these properties over time, and when combined, can create some amazing effects.
To display a clip’s properties, either right-click and choose Properties or double click on the clip. Clip properties appear in the properties dock, in alphabetical order. These properties can be filtered by typing a few letters in the filter box, at the top of the property panel.
To adjust a property, you can:
Clip properties are part of the Animation system. If you change a clip property, you create a keyframe at the current position of the playhead. If you want a property to apply throughout the clip, you must place the playhead at (or before) the start of the clip before making the change. An easy way to locate the start of a clip is to use ‘next/previous marker’ on the Timeline toolbar. [image]
# | Name | Description |
1 | Clip 1 | A video clip |
2 | Transition | A gradual fade transition between the 2 clips |
3 | Clip 2 | An image clip |
OpenShot has many easy ways to adjust the start and end trim positions of a clip (otherwise known as trimming). The most common method is simply clicking and dragging the left (or right) edge of the clip. Here is a list of all methods for cutting or trimming clips in OpenShot:
Keep in mind that the above cutting methods also have Keyboard Shortcuts, to save even more time.
OpenShot has tons of great preset animations and clip properties, such as fading, sliding, zooming, etc… These presets can be accessed by right clicking on a clip. [image]
To quickly adjust the location, scale, rotation, and shear of a clip, select a clip on the timeline. By default, the selected clip appears in the preview window with transform controls (blue lines and squares). Or if disabled, right click on a clip and choose Transform. Dragging the blue squares will adjust scale, and dragging the center will move the image. Dragging the mouse on the outside of the blue lines will rotate the image. Dragging along the blue lines will shear the image in that direction. Dragging the circle in the middle will move the origin point that controls where we rotate the image. Note: Pay close attention to the play-head position (red playback line). Key frames are automatically created at the current playback position, to help create animations. [image]
For more info on key frames and animation, see Animation.
In addition to the many clip properties which can be animated and adjusted, you can also drop an effect directly onto a clip. Each effect is represented by a small letter icon. Clicking the effect icon will populate the properties of that effect, and allow you to edit (and animate) them. For the full list of effects, see Effects. [image]
Below is a list of clip properties which can be edited, and in most cases, animated over time. To view a clip’s properties, right click and choose Properties. The property editor will appear, where you can change these properties. Note: Pay close attention to where the play-head (i.e. red playback line) is. Key frames are automatically created at the current playback position, to help create animations.
Name | Description |
Alpha | Curve representing the alpha (1 to 0) |
Channel Filter | A number representing an audio channel to filter (clears all other channels) |
Channel Mapping | A number representing an audio channel to output (only works when filtering a channel) |
Frame Number | The format to display the frame number (if any) |
Duration | The length of the clip (in seconds) |
End | The end trimming position of the clip (in seconds) |
Gravity | The gravity of a clip determines where it snaps to its parent (details below) |
Enable Audio | An optional override to determine if this clip has audio (-1=undefined, 0=no, 1=yes) |
Enable Video | An optional override to determine if this clip has video (-1=undefined, 0=no, 1=yes) |
ID | A randomly generated GUID (globally unique identifier) assigned to each clip |
Track | The layer which holds the clip (higher tracks are rendered on top of lower tracks) |
Location X | Curve representing the relative X position in percent based on the gravity (-1 to 1) |
Location Y | Curve representing the relative Y position in percent based on the gravity (-1 to 1) |
Volume Mixing | The volume mixing choices control how volume is adjusted before mixing (None=don’t adjust volume of this clip, Reduce=lower the volume to 80%, Average=divide volume based on # of concurrent clips, details below) |
Origin X | Curve representing the rotation origin point, X position in percent (-1 to 1) |
Origin Y | Curve representing the rotation origin point, Y position in percent (-1 to 1) |
Parent | The parent object to this clip, which makes many of these keyframe values initialize to the parent value |
Position | The position of the clip on the timeline (in seconds, 0.0 is the beginning of the timeline) |
Rotation | Curve representing the rotation (0 to 360) |
Scale | The scale determines how a clip should be resized to fit its parent (details below) |
Scale X | Curve representing the horizontal scaling in percent (0 to 1) |
Scale Y | Curve representing the vertical scaling in percent (0 to 1) |
Shear X | Curve representing X shear angle in degrees (-45.0=left, 45.0=right) |
Shear Y | Curve representing Y shear angle in degrees (-45.0=down, 45.0=up) |
Start | The start trimming position of the clip (in seconds) |
Time | Curve representing the frames over time to play (used for speed and direction of video) |
Volume | Curve representing the volume (0 to 1) |
Wave Color | Curve representing the color of the audio wave form |
Waveform | Should a waveform be used instead of the clip’s image |
Gravity:
Scale:
Volume Mixing:
Consider the following guidelines when adjusting volume levels:
For more info on key frames and animation, see Animation.
A transition is used to gradually fade (or wipe) between two clips. In OpenShot, transitions are represented by blue, rounded rectangles on the timeline. They are automatically created when you overlap two clips, and can be added manually by dragging one onto the timeline from the Transitions panel. A transition must be placed on top of a clip (overlapping it), with the most common location being the beginning or end.
[image]
# | Name | Description |
1 | Clip 1 | A video clip |
2 | Transition | A gradual fade transition between the 2 clips, created automatically by overlapping the clips. |
3 | Clip 2 | An image clip |
Transitions adjust the alpha/transparency of the clip below it, and can either fade from opaque to transparent, or transparent to opaque. Right click and choose Reverse Transition to change the direction of the fade. You can also manually adjust the Brightness curve, animating the fade in any way you wish. [image]
OpenShot has many easy ways to adjust the start and end positions of a transition (otherwise known as cutting). The most common method is simply grabbing the left (or right) edge of the transition and dragging. Here is a list of methods for cutting transitions in OpenShot:
Keep in mind that all of the above cutting methods also have Keyboard Shortcuts.
Like Clips, transitions also have properties which can be animated over time. The fade (or wipe) can be adjusted with the Brightness curve, or held at a constant value to create a transparency mask on top of a clip.
Any greyscale image can be used as a transition (or mask), by adding it to your /.openshot_qt/transitions/ folder. Just be sure to name your file something that is easily recognizable, and restart OpenShot. Your custom transition/mask will now show up in the list of transitions.
Below is a list of transition properties which can be edited, and in most cases, animated over time. To view a transition’s properties, right click and choose Properties. The property editor will appear, where you can change these properties. NOTE: Pay close attention to where the play-head (i.e. red playback line) is. Key frames are automatically created at the current playback position, to help create animations.
Effects are used in OpenShot to enhance or modify the audio or video of a clip. They can modify pixels and audio data, and can generally enhance your video projects. Each effect has its own set of properties, most which can be animated over time.
Effects can be added to any clip by dragging and dropping them. Each effect is represented by a small colored icon and the first letter of the effect name. To view an effect’s properties, click on the effect icon. The property editor will appear, where you can edit these properties. Note: Pay close attention to where the play-head (i.e. red playback line) is. Key frames are automatically created at the current playback position, to help create animations. [image]
Effects are generally divided into two categories: video and audio effects. Video effects modify the image and pixel data of a clip. Below is a list of video effects, and their properties. Often it is best to experiment with an effect, entering different values into the properties, and observing the results.
Uses a grayscale mask image to gradually wipe / transition between 2 images.
Name | Description |
brightness | (float, -1 to 1) This curve controls the motion across the wipe |
contrast | (float, 0 to 20) This curve controls the hardness and softness of the wipe edge |
reader | (reader) This reader can use any image or video as input for your grayscale wipe |
replace_image | (int, choices: ['Yes', 'No']) Replace the clips image with the current grayscale wipe image, useful for troubleshooting |
Add colored bars around your video.
Name | Description |
bottom | (float, 0 to 0.5) The curve to adjust the bottom bar size |
color | (color) The curve to adjust the color of bars |
left | (float, 0 to 0.5) The curve to adjust the left bar size |
right | (float, 0 to 0.5) The curve to adjust the right bar size |
top | (float, 0 to 0.5) The curve to adjust the top bar size |
Adjust the blur of the frame’s image.
Name | Description |
horizontal_radius | (float, 0 to 100) Horizontal blur radius keyframe. The size of the horizontal blur operation in pixels. |
iterations | (float, 0 to 100) Iterations keyframe. The # of blur iterations per pixel. 3 iterations = Gaussian. |
sigma | (float, 0 to 100) Sigma keyframe. The amount of spread in the blur operation. Should be larger than radius. |
vertical_radius | (float, 0 to 100) Vertical blur radius keyframe. The size of the vertical blur operation in pixels. |
Adjust the brightness and contrast of the frame’s image.
Name | Description |
brightness | (float, -1 to 1) The curve to adjust the brightness |
contrast | (float, 0 to 100) The curve to adjust the contrast (3 is typical, 20 is a lot, 100 is max. 0 is invalid) |
Add text captions on top of your video.
Name | Description |
background | (color) Color of caption area background |
background_alpha | (float, 0 to 1) Background color alpha |
background_corner | (float, 0 to 60) Background corner radius |
background_padding | (float, 0 to 60) Background padding |
caption_font | (font) Font name or family name |
caption_text | (caption) VTT/Subrip formatted caption text (multi-line) |
color | (color) Color of caption text |
fade_in | (float, 0 to 3) Fade in per caption (# of seconds) |
fade_out | (float, 0 to 3) Fade out per caption (# of seconds) |
font_alpha | (float, 0 to 1) Font color alpha |
font_size | (float, 0 to 200) Font size in points |
left | (float, 0 to 0.5) Size of left margin |
line_spacing | (float, 0 to 5) Distance between lines (1.0 default) |
right | (float, 0 to 0.5) Size of right margin |
stroke | (color) Color of text border / stroke |
stroke_width | (float, 0 to 10) Width of text border / stroke |
top | (float, 0 to 1) Size of top margin |
Replaces the color (or chroma) of the frame with transparency (i.e. keys out the color).
Name | Description |
color | (color) The color to match |
fuzz | (float, 0 to 125) The fuzz factor (or threshold) |
halo | (float, 0 to 125) The additional threshold for halo elimination. |
keymethod | (int, choices: ['Basic keying', 'HSV/HSL hue', 'HSV saturation', 'HSL saturation', 'HSV value', 'HSL luminance', 'LCH luminosity', 'LCH chroma', 'LCH hue', 'CIE Distance', 'Cb,Cr vector']) The keying method or algorithm to use. |
Adjust the color saturation.
Name | Description |
saturation | (float, 0 to 4) The curve to adjust the overall saturation of the frame’s image (0.0 = greyscale, 1.0 = normal, 2.0 = double saturation) |
saturation_B | (float, 0 to 4) The curve to adjust blue saturation of the frame’s image |
saturation_G | (float, 0 to 4) The curve to adjust green saturation of the frame’s image (0.0 = greyscale, 1.0 = normal, 2.0 = double saturation) |
saturation_R | (float, 0 to 4) The curve to adjust red saturation of the frame’s image |
Shift the colors of an image up, down, left, and right (with infinite wrapping).
Each pixel has 4 color channels:
The Color Shift effect simply “moves” or “translates” a specific color channel on the X or Y axis. Not all video and image formats support an alpha channel, and in those cases, you will not see any changes when adjusting the color shift of the alpha channel.
Name | Description |
alpha_x | (float, -1 to 1) Shift the Alpha X coordinates (left or right) |
alpha_y | (float, -1 to 1) Shift the Alpha Y coordinates (up or down) |
blue_x | (float, -1 to 1) Shift the Blue X coordinates (left or right) |
blue_y | (float, -1 to 1) Shift the Blue Y coordinates (up or down) |
green_x | (float, -1 to 1) Shift the Green X coordinates (left or right) |
green_y | (float, -1 to 1) Shift the Green Y coordinates (up or down) |
red_x | (float, -1 to 1) Shift the Red X coordinates (left or right) |
red_y | (float, -1 to 1) Shift the Red Y coordinates (up or down) |
Crop out any part of your video.
Name | Description |
bottom | (float, 0 to 1) Size of bottom bar |
left | (float, 0 to 1) Size of left bar |
right | (float, 0 to 1) Size of right bar |
top | (float, 0 to 1) Size of top bar |
x | (float, -1 to 1) X-offset |
y | (float, -1 to 1) Y-offset |
Remove interlacing from a video (i.e. even or odd horizontal lines)
Name | Description |
isOdd | (bool, choices: ['Yes', 'No']) Use odd or even lines |
Adjust the hue / color of the frame’s image.
Name | Description |
hue | (float, 0 to 1) The curve to adjust the percentage of hue shift |
Negates the colors, producing a negative of the image.
Detect objects through the video.
Name | Description |
class_filter | (string) Type of object class to filter (i.e. car, person) |
confidence_threshold | (float, 0 to 1) Minimum confidence value to display the detected objects |
display_box_text | (int, choices: ['Off', 'On']) Draw a rectangle around detected objects |
objects | (list) List of detected object ids |
selected_object_index | (int, 0 to 200) Index of the tracked object that was selected to modify its properties |
Pixelate (increase or decrease) the number of visible pixels.
Name | Description |
bottom | (float, 0 to 1) The curve to adjust the bottom margin size |
left | (float, 0 to 1) The curve to adjust the left margin size |
pixelization | (float, 0 to 0.99) The curve to adjust the amount of pixelization |
right | (float, 0 to 1) The curve to adjust the right margin size |
top | (float, 0 to 1) The curve to adjust the top margin size |
Shift the image up, down, left, and right (with infinite wrapping).
Name | Description |
x | (float, -1 to 1) Shift the X coordinates (left or right) |
y | (float, -1 to 1) Shift the Y coordinates (up or down) |
Stabilize video clip to remove undesired shaking and jitter.
Name | Description |
zoom | (float, 0 to 2) Percentage to zoom into the clip, to crop off the shaking and uneven edges |
Track the selected bounding box through the video. The tracked object can be selected as a parent on other clips.
Distort the frame’s image into a wave pattern.
Name | Description |
amplitude | (float, 0 to 5) The height of the wave |
multiplier | (float, 0 to 10) Amount to multiply the wave (make it bigger) |
shift_x | (float, 0 to 1000) Amount to shift X-axis |
speed_y | (float, 0 to 300) Speed of the wave on the Y-axis |
wavelength | (float, 0 to 3) The length of the wave |
Audio effects modify the waveforms and audio sample data of a clip. Below is a list of audio effects, and their properties. Often it is best to experiment with an effect, entering different values into the properties, and observing the results.
Reduce the volume of loud sounds or amplify quiet sounds.
Name | Description |
attack | (float, 0.1 to 100) |
bypass | (bool) |
makeup_gain | (float, -12 to 12) |
ratio | (float, 1 to 100) |
release | (float, 10 to 1000) |
threshold | (float, -60 to 0) |
Adjust the synchronism between the audio and video track.
Name | Description |
delay_time | (float, 0 to 5) |
Alter the audio by clipping the signal.
Name | Description |
distortion_type | (int, choices: ['Hard Clipping', 'Soft Clipping', 'Exponential', 'Full Wave Rectifier', 'Half Wave Rectifier']) |
input_gain | (int, -24 to 24) |
output_gain | (int, -24 to 24) |
tone | (int, -24 to 24) |
Reflection of sound with a delay after the direct sound.
Name | Description |
echo_time | (float, 0 to 5) |
feedback | (float, 0 to 1) |
mix | (float, 0 to 1) |
Louder parts of audio becomes relatively louder and quieter parts becomes quieter.
Name | Description |
attack | (float, 0.1 to 100) |
bypass | (bool) |
makeup_gain | (float, -12 to 12) |
ratio | (float, 1 to 100) |
release | (float, 10 to 1000) |
threshold | (float, -60 to 0) |
Random signal having equal intensity at different frequencies.
Name | Description |
level | (int, 0 to 100) |
Filter that allows you to adjust the volume level of a frequency in the audio track.
Name | Description |
filter_type | (int, choices: ['Low Pass', 'High Pass', 'Low Shelf', 'High Shelf', 'Band Pass', 'Band Stop', 'Peaking Notch']) |
frequency | (int, 20 to 20000) |
gain | (int, -24 to 24) |
q_factor | (float, 0 to 20) |
Transform the voice present in an audio track into a robotic voice effect.
Name | Description |
fft_size | (int, choices: ['128', '256', '512', '1024', '2048']) |
hop_size | (int, choices: ['1/2', '1/4', '1/8']) |
window_type | (int, choices: ['Rectangular', 'Bart Lett', 'Hann', 'Hamming']) |
Transform the voice present in an audio track into a whispering voice effect.
Name | Description |
fft_size | (int, choices: ['128', '256', '512', '1024', '2048']) |
hop_size | (int, choices: ['1/2', '1/4', '1/8']) |
window_type | (int, choices: ['Rectangular', 'Bart Lett', 'Hann', 'Hamming']) |
For more info on key frames and animation, see Animation.
Exporting converts your OpenShot project (clips, effects, animations, titles) into a single video output file (using a process called video encoding). By using the default settings, the exported video will be compatible with most media players (such as VLC) and websites (such as YouTube, Vimeo, Facebook).
Click on the Export Video icon at the top of the screen (or use the File→Export Video menu). The default values will work fine, so just click the Export Video button to render your new video. You can also create your own custom export profiles, see Profiles.
While video encoding is very complicated, with dozens of interrelated settings and options, OpenShot makes it easy, with sensible defaults, and most of this complexity hidden away behind our Simple tab, which is the default export view. [image]
Name | Description |
Profile | Common presets (combinations of presets and video profiles grouped by category, for example: Web) |
Target | Target presets related to the current profile (collections of common formats, codecs, and quality settings, see Preset List) |
Video Profile | Video profiles related to the current target (collections of common size, frame rate, and aspect ratios, see Profile List or create your own Profiles) |
Quality | Quality settings (low, med, high), which relate to various video and audio bitrates. |
Most users will never need to switch to the Advanced tab, but if you need to customize any of the video encoding settings, for example, custom bitrates, different codecs, or limiting the range of frames exported, this is the tab for you.
[image]
Name | Description |
Export To | Export both video & audio, only audio, only video, or an image sequence |
Start Frame | The first frame to export (default is 1) |
End Frame | The final frame to export (default is the last frame in your project to contain a clip) |
[image]
Name | Description |
Profile | The video profile to use during export (collection of size, frame rate, and aspect ratios, see Profile List) |
Width | The width of the video export (in pixels) |
Height | The height of the video export (in pixels) |
Aspect Ratio | The aspect ratio of the final exported video. 1920x1080 reduces to 16:9. This also takes into account the pixel ratio, for example 2:1 rectangular pixels will affect the aspect ratio. |
Pixel Ratio | The ratio representing pixel shape. Most video profiles use a 1:1 square pixel shape, but others will use rectangular pixels. |
Frame Rate | The frequency that the frames will be displayed at. |
Interlaced | Is this format used on alternating scan lines (i.e. broadcast and analog formats) |
[image]
Name | Description |
Image Format | The string format that represents the output file name in an sequence of images. For example, %05d.png would pad a number with 5 digits: 00001.png, 00002.png. |
[image]
Name | Description |
Video Format | The name of the container format (mp4, mov, avi, webm, etc…) |
Video Codec | The name of the video codec used during video encoding (libx264, mpeg4, libaom-av1, etc…) |
Bit Rate / Quality | The bitrate to use for video encoding. Accepts the following formats: 5 Mb/s, 96 kb/s, 23 crf, etc… |
[image]
Name | Description |
Audio Codec | The name of the audio codec used during audio encoding (aac, mp2, libmp3lame, etc…) |
Sample Rate | The number of audio samples per second. Common values are 44100 and 48000. |
Channel Layout | The number and layout of audio channels (Stereo, Mono, Surround, etc…) |
Bit Rate / Quality | The bitrate to use for audio encoding. Accepts the following formats: 96 kb/s, 128 kb/s, 192 kb/s, etc… |
OpenShot has been designed specifically with animation in mind. The powerful curve-based animation framework can handle most jobs with ease, and is flexible enough to create just about any animation. Key frames specify values at certain points on a clip, and OpenShot does the hard work of interpolating the in-between values.
[image]
# | Name | Description |
1 | Green Property | When the play-head is on a key frame, the property appears green |
1 | Blue Property | When the play-head is on an interpolated value, the property appears blue |
2 | Value Slider | Click and drag your mouse to adjust the value (this automatically creates a key frame if needed) |
3 | Play-head | Position the play-head over a clip where you need a key frame |
4 | Key frame Markers | Small icons are displayed on the bottom of the clip for each active keyframe (circle=Bézier, diamond=linear, square=constant). These icons are filtered based on the property window. For example, if you filter only scale_x, you will only see the icons for scale_x keyframes, for example. |
To create a key frame in OpenShot, simply position the play-head (i.e. playback position) at any point over a clip, and edit properties in the property dialog. If the property supports key frames, it will turn green, and a small icon (circle=Bézier, diamond=linear, square=constant) will appear on the bottom of your clip at that position. Move your play-head to another point over that clip, and adjust the properties again. All animations require at least 2 key frames, but can support an unlimited number of them.
To adjust the interpolation mode, right click on the small graph icon next to a property value.
For more info on creating key frames for location, rotation, scale, shear, and location, see Transform. For more info on preset animations, see Preset Menu. For more info on clip properties, see Properties.
When using a Bézier curve for animation, OpenShot includes more than 20 curve presets (which affect the shape of the curve). For example, Ease-In has a more gradual slope at the beginning, making an animation move slower at the beginning, and faster at the end. Ease-In/Out (Back) has a gradual beginning and ending, but actually goes past the expected value and then back (producing a bounce effect).
To choose a curve preset, right click on the small graph icon next to a key frame. [image]
If you have a sequence of similarly named images (such as, cat001.png, cat002.png, cat003.png, etc…), you can simply drag and drop one of them into OpenShot, and you will be prompted to import the entire sequence. [image]
To adjust the frame rate of the animation, right click and choose File Properties in the Project Files panel, and adjust the frame rate. Once you have set the correct frame rate, drag the animation onto the timeline. [image]
Adding text and titles is an important aspect of video editing, and OpenShot comes with an easy to use Title Editor. Use the Title menu (located in the main menu of OpenShot) to launch the Title Editor. You can also use the keyboard shortcut Ctrl+T.
[image]
OpenShot can use any vector SVG image file as a title template. Just add an SVG image file to your .openshot_qt/title_templates/ folder, and it will appear the next time you open the Title Editor interface. You can also right click on any SVG files in your Project Files panel, and choose Edit Title or Duplicate Title.
Adding a 3D animated title is just as easy, using our Animated Title dialog. Use the Title menu (located in the main menu of OpenShot) to launch the Animated Title editor. You can also use the keyboard shortcut Ctrl+B. [image]
# | Name | Description |
1 | Choose a Template | Choose from any available 3D title templates |
2 | Preview Title | Preview your title as you make changes |
3 | Title Properties | Change the text, colors, and advanced properties |
4 | Render | Render the 3D animation, and add it to your project |
These features require the latest version of Blender (https://www.blender.org/download/) and Inkscape (https://inkscape.org/release/) be installed, and the OpenShot Preferences updated with the correct paths to the Blender & Inkscape executable. See the General tab in Preferences.
For a detailed guide on how to install these dependencies, see Blender & Inkscape Guide.
A video profile is a collection of common video settings (size, frame rate, aspect ratio). Profiles are used during editing, previewing, and exporting to provide a quick way to switch between common combinations of these settings.
If you often use the same profile, you can set a default profile: Edit→Preferences→Preview.
The project profile is used when previewing your project and editing. The default project profile is HD 720p 30fps. It is best practice to always switch to your target profile before you begin editing. For example, if you are targeting 1080p 30fps, switch to that profile before you begin editing your project. For a full list of included profiles see Profile List. [image]
# | Name | Description |
1 | Title Bar | The title bar of OpenShot displays the current profile |
2 | Profile Button | Launch the profiles dialog |
3 | Choose Profile | Select a profile for editing and preview |
[image]
# | Name | Description |
1 | Filter / Search | Filter the available profiles by typing a few characters (i.e. FHD, 720p, 16:9, etc…) |
2 | Selected Profile | Click on the desired profile, and then the OK button. You can also double click a profile to select it. |
3 | Filtered Count | Count of filtered profiles |
4 | Accept Profile | Click the OK button to switch to the selected profile. |
The export profile always defaults to your current project profile, but can be changed to target different profiles. [image]
# | Name | Description |
1 | Choose Profile | Select an export profile from a dropdown. This list is sorted from largest resolution at the top, smallest resolution at the bottom. |
2 | Search Profiles | Open Profile dialog to filter and search for an export profile, which can sometimes be much quicker to find a specific profile. |
Although OpenShot has more than 400 profiles (Profile List) included by default, you can also create your own custom profiles. Create a new text file in the ~/.openshot_qt/profiles/ or C:\Users\USERNAME\.openshot_qt\profiles folder. Use the following text as your template (i.e. copy and paste this into the new file):
description=Custom Profile Name frame_rate_num=30000 frame_rate_den=1001 width=1280 height=720 progressive=1 sample_aspect_num=1 sample_aspect_den=1 display_aspect_num=16 display_aspect_den=9
Profile Property | Description |
description | The friendly name of the profile (this is what OpenShot displays in the user interface) |
frame_rate_num | The frame rate numerator. All frame rates are expressed as fractions. For example, 30 FPS == 30/1. |
frame_rate_den | The frame rate denominator. All frame rates are expressed as fractions. For example, 29.97 FPS == 30,000/1001. |
width | The number of horizontal pixels in the image. By reversing the values for width and height, you can create a vertical profile. |
height | The number of vertical pixels in the image |
progressive | `(0 or 1)` If 1, both even and odd rows of pixels are used. If 0, only odd or even rows of pixels are used. |
sample_aspect_num | The numerator of the SAR (sample/pixel shape aspect ratio), 1:1 ratio would represent a square pixel, 2:1 ratio would represent a 2x1 rectangle pixel shape, etc… |
sample_aspect_den | The denominator of the SAR (sample/pixel shape aspect ratio) |
display_aspect_num | The numerator of the DAR (display aspect ratio), (width/height) X (sample aspect ratio). This is the final ratio of the image displayed on screen, reduced to the smallest fraction possible (common ratios are 16:9 for wide formats, 4:3 for legacy television formats). |
display_aspect_den | The denominator of the DAR (display aspect ratio) |
Once you restart OpenShot, you will see your custom profile appear in the list of Profiles.
OpenShot includes a large list of common profiles and their associated video export settings (video codec, audio codec, audio channels, audio sample rate, etc…), which targets specific websites and devices.
OpenShot includes a large list of common profiles.
Video editing projects (including tracks, clips, and keyframes) can be imported and exported from OpenShot Video Editor in widely supported formats (EDL: Edit Decision Lists, and XML: Final Cut Pro format). For example, if you start editing a video in a different program (Adobe Premier, Final Cut Pro, etc…), but later need to move all your edits to OpenShot (or vice versa).
The following features are supported when importing and exporting an EDL file with OpenShot.
Example EDL format supported by OpenShot:
TITLE: Clips - TRACK 5 FCM: NON-DROP FRAME 001 BL V C 00:00:00:01 00:00:03:17 00:00:00:01 00:00:03:17 001 AX V C 00:00:00:01 00:00:10:01 00:00:03:17 00:00:13:17 * FROM CLIP NAME: Intro.png 002 BL V C 00:00:00:01 00:00:05:09 00:00:13:17 00:00:18:25 002 AX V C 00:00:00:01 00:00:10:01 00:00:18:25 00:00:28:25 * FROM CLIP NAME: FileName.mp4 * OPACITY LEVEL AT 00:00:00:01 IS 0.00% (REEL AX) * OPACITY LEVEL AT 00:00:01:01 IS 100.00% (REEL AX) * OPACITY LEVEL AT 00:00:09:01 IS 100.00% (REEL AX) * OPACITY LEVEL AT 00:00:10:01 IS 0.00% (REEL AX) 003 BL V C 00:00:00:01 00:00:33:15 00:00:28:25 00:01:02:09 003 AX V C 00:00:14:25 00:00:34:29 00:01:02:09 00:01:22:13 003 AX A C 00:00:14:25 00:00:34:29 00:01:02:09 00:01:22:13 * FROM CLIP NAME: FileName2.mp4 004 BL V C 00:00:00:01 00:00:26:25 00:01:22:13 00:01:49:07 004 AX A C 00:00:00:01 00:02:20:01 00:01:49:07 00:04:09:07 * FROM CLIP NAME: Music.wav * AUDIO LEVEL AT 00:00:00:01 IS -99.00 DB (REEL AX A1) * AUDIO LEVEL AT 00:00:03:01 IS 0.00 DB (REEL AX A1) * AUDIO LEVEL AT 00:02:17:01 IS 0.00 DB (REEL AX A1) * AUDIO LEVEL AT 00:02:20:01 IS -99.00 DB (REEL AX A1)
The following features are supported when importing and exporting an XML file with OpenShot. This XML format is supported in many video editors (not just Final Cut Pro). In fact, most commercial video editors have some support for importing and exporting this same XML format.
[image]
The Preferences window contains many important settings and configuration options for OpenShot. They can be found in the top menu under Edit→Preferences. Many settings will require OpenShot to be restarted after your changes are applied.
NOTE: Some features such as Animated Titles and external SVG editing require setting the paths for Blender and Inkscape under the General tab. And if you notice audio playback issues, such as audio drift, you many need to adjust the audio settings under the Preview tab.
[image]
The General tab of the Preferences window allows you to modify the settings that apply to OpenShot as a whole.
[image]
The Preview tab of the Preferences window allows you to set a Default Video Profile for your project, if you have a preference for a specific editing profile. More about Profiles. Also, you can adjust the real-time preview audio settings, for example, which audio device and sample rate to use.
[image]
Autosave is a saving function in OpenShot which automatically saves the current changes to your project after a specific number of minutes, helping to reduce the risk or impact of data loss in case of a crash, freeze or user error.
Before each save, a copy of the current project is created in a recovery folder, to further reduce the risk of data loss. The recovery folder is located at ~/.openshot_qt/recovery/ or C:\Users\USERNAME\.openshot_qt\recovery. If you need to recover a corrupt or broken *.osp project file, please find the most recent copy in the recovery folder, and copy/paste the file in your original project folder location (i.e. the folder that contains your broken project), and then open this recovered project file in OpenShot. Many versions of each project are stored in the recovery folder, and if you still have issues with the recovered *.osp file, you can repeat this process with older versions contained in the recovery folder.
[image]
Cache settings can be adjusted to make real-time playback faster or less CPU intensive. The cache is used to store image and audio data for each frame of video requested. The more frames that are cached, the smoother the real-time playback will be. However, the more that needs to be cached requires more CPU to generate the cache. There is a balance, and the default settings provide a generally sane set of cache values, which should allow most computers to playback video and audio smoothly.
Setting | Description |
Cache Mode | Choose between Memory or Disk caching (memory caching is preferred). Disk caching writes image data to the hard disk for later retrieving, and works best with an SSD. |
Cache Limit (MB) | How many MB are set aside for cache related data. Larger numbers are not always better, since it takes more CPU to generate more frames to fill the cache. |
Image Format (Disk Only) | Image format to store disk cache image data |
Scale Factor (Disk Only) | Percentage (0.1 to 1.0) to reduce the size of disk based image files stored in the disk cache. Smaller numbers make writing and reading cached image files faster. |
Image Quality (Disk Only) | Quality of the image files used in disk cache. The higher compression can cause more slowness, but results in smaller file sizes. |
Cache Pre-roll: Min Frames: | Minimum # of frames that must be cached before playback begins. The larger the #, the larger the wait before playback begins. |
Cache Pre-roll: Max Frames: | Maximum # of frames that can be cached during playback (in front of the playhead). The larger the #, the more CPU is required to cache ahead - vs display the already cached frames. |
Cache Ahead (Percent): | Between 0.0 and 1.0. This represents how much % we cache ahead of the playhead. For example, 0.5 would cache 50% behind and 50% ahead of the playhead. 0.8 would cache 20% behind and 80% ahead of the playhead. |
Cache Max Frames: | This is an override on the total allowed frames that can be cached by our caching thread. It is defaulted to 600 frames, but even if you give a huge amount of RAM to OpenShot’s cache size, this will override the max # of frames cached. The reason is… sometimes when the preview window is very small, and the cache size is set very high, OpenShot might calculate that we can cache 30,000 frames, or something silly which will take a huge amount of CPU, lagging the system. This setting is designed to clamp the upper limit of the cache to something reasonable… even on systems that give OpenShot huge amounts of RAM to work with. |
[image]
Here you can modify how much data should be logged. Normally, Debug Mode (verbose) is off. The default port is 5556. If you want to help improve OpenShot you can enable Send Anonymous Metrics and Errors.
[image]
Please keep in mind that hardware acceleration is experimental at the moment. OpenShot supports both decoding and encoding acceleration. For more information take a look at our Github HW-ACCEL Doc. NOTE: On systems with older graphics cards, hardware acceleration may not always be faster than CPU encoding.
[image]
This is where hotkeys can be seen and re-assigned, as described under Keyboard Shortcuts.
[image]
Default file path locations for saving/opening projects, importing files, and exporting videos can be configured here. This can save you time by defaulting the open/save file dialogs to the most appropriate starting folder (options described below).
Setting | Description |
File Import | Default folder to choose when importing a file |
Save or Open Project | Default folder to choose when saving or opening a project file |
Video Export | Default folder to choose when exporting a video |
Values | Description |
Recent Folder | The last folder used for this same operation. Project folders, Import folders, and Export folders are tracked separately. |
Project Folder | The current project folder (or the user’s home folder, if the project is not yet saved) |
If you are a programmer (or want to become a programmer), and are interested in developing new features, fixing bugs, or improving the user interface for OpenShot, the following sections will explain how to get started and get involved!
OpenShot Video Editor has 3 main components, a Python & PyQt user interface (openshot-qt), a C++ audio library (libopenshot-audio) and a C++ video library (libopenshot). If you are not familiar with Python, PyQt, or C++, those would be great topics to research and learn more about at this point.
However, many bugs can be fixed and new features added with only Python knowledge, since the C++ components are not involved in the user interface at all. Python is an amazing language, and is super fun to learn, and is the only prerequisite skill needed to become an OpenShot developer!
WARNING:
If you must use a Windows or Mac system for development, start by referring to the build notes in the libopenshot wiki. Building the library with all of its dependencies is the most challenging part of the process.
Before we can fix any bugs or add any features, we need to get the source code onto your computer.
Use git to clone our 3 repositories:
git clone https://github.com/OpenShot/libopenshot-audio.git git clone https://github.com/OpenShot/libopenshot.git git clone https://github.com/OpenShot/openshot-qt.git
In order to actually compile or run OpenShot, we need to install some dependencies on your system. The easiest way to accomplish this is with our Daily PPA. A PPA is an unofficial Ubuntu repository, which has our software packages available to download and install.
sudo add-apt-repository ppa:openshot.developers/libopenshot-daily sudo apt-get update sudo apt-get install openshot-qt \ cmake \ libx11-dev \ libasound2-dev \ libavcodec-dev \ libavdevice-dev \ libavfilter-dev \ libavformat-dev \ libavresample-dev \ libavutil-dev \ libfdk-aac-dev \ libfreetype6-dev \ libjsoncpp-dev \ libmagick++-dev \ libopenshot-audio-dev \ libprotobuf-dev \ libqt5svg5-dev \ libswscale-dev \ libunittest++-dev \ libxcursor-dev \ libxinerama-dev \ libxrandr-dev \ libzmq3-dev \ pkg-config \ python3-dev \ protobuf-compiler \ qtbase5-dev \ libqt5svg5-dev \ libxcb-xfixes0-dev \ qtmultimedia5-dev \ swig
At this point, you should have all 3 OpenShot components source code cloned into local folders, the OpenShot daily PPA installed, and all of the required development and runtime dependencies installed. This is a great start, and we are now ready to start compiling some code!
This library is required for audio playback and audio effects. It is based on the JUCE audio framework. Here are the commands to build it:
cd libopenshot-audio mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=dist .. make make install
Essentially, we are switching to the libopenshot-audio/build folder, then running cmake .. on the parent folder. This finds dependencies and creates all the needed Makefiles used to compile this library. Then make uses those Makefiles to compile this library, and make install installs them in the location we specified. If CMAKE_INSTALL_PREFIX isn’t set, the files will install to /usr/local/ (by default) and make install will require administrative privileges to run.
This library is required for video decoding, encoding, animation, and just about everything else. It does all the heavy lifting of video editing and video playback. Here are the commands to build it:
cd libopenshot mkdir build cd build cmake -DLIBOPENSHOT_AUDIO_DIR=../../libopenshot-audio/build/dist .. make
Essentially, we are switching to the libopenshot/build folder, then running cmake .. on the parent folder. This finds dependencies and creates all the needed Makefiles used to compile this library. Then make uses those Makefiles to compile this library. Because we provided the location of our compiled libopenshot-audio installation, that version of the library will be used instead of the system version (if any).
We don’t install our libopenshot after building, because we don’t need to. For testing purposes, we can tell OpenShot to use libopenshot right from our build directory.
This is our main PyQt Python application. Because it is written in Python, it does not require any compiling to run. To launch OpenShot from the source code with our newly-built libopenshot-audio and libopenshot libraries, use the following commands:
cd openshot-qt PYTHONPATH=../libopenshot/build/src/bindings/python python3 src/launch.py
This should launch the OpenShot user interface. Any changes you have made to the source code files (*.py Python files, *.ui PyQt UI files, etc…) will be included. This requires the libopenshot-audio and libopenshot libraries, and if anything went wrong with the steps above, OpenShot will likely not launch.
If OpenShot launches at this point, congratulations! You now have a working local version of OpenShot, which is running off your local source code. Try making some changes to the source code and re-launch OpenShot… you should now see your changes!
Now that you have successfully compiled and launched OpenShot Video Editor from source code, be sure to check out our list of bug reports on GitHub: OpenShot Issues. Also, you are encouraged to fill out our quick contributor form and introduce yourself!
Once you have fixed a bug or added an amazing new feature, be sure to share it with the OpenShot team. Ideally, we can merge this into our main source code branch. The easiest way to share your changes is by creating a fork of our repo, pushing your changes back to GitHub, and creating a Pull Request. A Pull Request lets the OpenShot team know you have changes ready to be merged. Then we can review things, give feedback, and hopefully merge your changes into the main branch.
Want to help improve OpenShot (and make some friends in the process)? Please consider joining our open-source team by filling out this quick contributor form and introduce yourself! All volunteers are welcome, regardless of skills or skill level. Let’s build something amazing!
There are many different ways to help and support OpenShot, including:
All of these areas are equally important, so we would love to know which ones appeal to you the most. Please take a moment and fill-out our quick contributor form.
Please use our step-by-step bug reporting page: https://openshot.org/issues/new/ to troubleshoot a potential new bug. This guide will instruct you on how to delete you log files, test with the latest daily build, and search for duplicate bug reports (in case someone else has already reported this same issue). At the end of the guide, it will help you create a detailed and useful bug report for our development team and volunteers.
OpenShot uses GitHub to manage issues and source code: https://github.com/OpenShot. Please read our guide on Becoming a Developer for a step-by-step guide on compiling OpenShot and making your first pull request on GitHub.
OpenShot Video Editor is a volunteer effort and a labor of love. Please be patient with any issues you find, and feel free to get involved and help us fix them!
Thank you for your support! – OpenShot Team
We are working hard to expand this user guide and to improve OpenShot Video Editor, but if you are stuck and don’t know where to turn, OpenShot has several sources for additional information.
There is much technical terminology in today’s fast-moving media-centric world. If you find yourself wondering what a video production term or an acronym means, you are certainly not alone. Like most industries, video production has a language all its own. Here is a list of terms commonly found in video editing. Becoming familiar with these terms only makes your job easier. [image]
These definitions are a work-in-progress. Please let us know if you need a term defined by contacting support@openshot.org.
-A- -B- -C- -D- -E- -F- -G- -H- -I- -J- -K- -L- -M- -N- -O- -P- -Q- -R- -S- -T- -U- -V- -W- -X- -Y- -Z-
Jonathan Thomas
OpenShot Studios, LLC
October 11, 2023 | 3.1 |