Our OpenShot online video editor updated with the 2020 OpenShot version for Linux
It main features are:
From the 2.4.1 release:
Improved Image Quality
We have improved the image processing pipeline in OpenShot to create sharper images, by switching our image scaling algorithm, and most importantly, only scaling a frame once, as opposed to multiple times (which used to happen in certain scenarios). This results in a noticeably sharper image, and slightly better performance.
Improved Playback Smoothness
The video preview capabilities in OpenShot have been improved to better handle higher framerate videos (50 fps, 60 fps, 120 fps). This results in a smoother playback experience, and less jittering and freezing with certain preview profiles.
Improved Stability (especially for Windows)
Right after our previous release (in September 2017) we made some very large changes to libopenshot to better support Windows (with respect to certain data types in C++). This fixes many, many Windows issues, including audio file
s stopping early, sync/desync issues, videos stopping at 30 minutes (or at an earlier time), opening project files with non-English characters, and more. If you have had any issues on Windows, please give this new version a try.
Libopenshot (full list of changes):
- More critical sections trying to prevent race conditions on high CPU core systems
- Additional critical sections around adding frame images
- Codec lookup by name in FFmpegWriter, which should solve a few issues (such as xvid support). Thanks Peter!
- Fixing regression with rotation origin. Things should always rotate around the center of an object (until I add in keyframable anchor points)
- Setting timebase on video stream in FFmpegWriter... a bit experimental
- Improving playback smoothness on high framerate videos, especially when the video frames need to jump forward to keep up with the audio.
- Removing throw statements from header files
- Reducing # of scale operations to 1 per layer on the timeline
- Fixing 16 thread limit on FFmpegReader
- Fixing a cast from long to int64_t
- Updating all "long int" frame number types to int64_t, so all 3 OSes will produce the same depth and precision on frame numbers. This is a big one!
- Removing variable bitrate support (for now), since it causes more problems than it solves.
Openshot-qt (full list of changes):
- Fixing small regression with translation website URLs when using default/en_US
- Fixing small bug in Export dialog where profile and quality get blown away when changing format
- Ignoring history update messages, since libopenshot doesn't care about them
- Simplifying export progress, reducing # of signals being emitted
- Integrating current language into website URLs and simplifying a few translations (removing HTML tags)
- Removing unneeded UTF8 encode method, which caused certain project paths to fail when loading (solves crash on Windows trying to open non-English project file paths)
- Adding keyboard shortcuts for toggling 'Transform' and 'Insert Keyframe'. This improves the animation work-flow, and no longer requires a bunch of mouse clicks / context menus for animations.
- Preventing overwriting an input file with the export dialog, and updating export progress on export window title
- Updating translations and contributor credits
From the 2.4.2 release:
7 New Effects (Crop, Hue, Color Shift, Pixelate, Bars, Wave, Shift)
Each of these new effects could have their own blog posts and tutorials (and probably will soon). Each effect was created from scratch for OpenShot 2.4.2, and are all fully keyframable, and can be combined with each other. This creates millions of interesting possibilities (some combinations are shown in the video above). Animated pixelization boxes, animated cinematic aspect ratios, and so much more! As you can probably tell, I'm really excited about them!
Auto Audio Mixing
When enabled, clips can utilize 3 different audio mixing strategies, for cases when clips are overlapping and competiting for audio volume. For example, a background audio track can automatically lower its volume when an overlapping voice clip needs to play. It is currently disabled by default (on new clips), but can easily be turned on in the clip properties.
Photos or videos with rotation metadata will be automatically rotated in OpenShot (requires a somewhat newer version of FFmpeg though). Take a vertical video, or a horizontal photo with your phone, and likely it contains this rotation metadata... and OpenShot will display it correctly.
Improved Audio Playback
Audio playback and mixing has been an area of weakness for OpenShot, and continues to be an area of focus for improvements. Many bug fixes and improvements have been made, and many users will notice less popping, smoother mixing, and less issues in this area. But there is still work which needs to be done, and will continue to be improved further.
With each release of OpenShot, stability continues to be improved. Most crashes are reported on Windows builds, although we still have too many crashes on all OSes. Some crashes are caused by dependencies, and some are caused by multi-threaded race conditions or memory corruption. Version 2.4.2 for windows is wayyyyy more stable now, and for the first time, is being offered as both a 64 bit and 32 bit version. Many schools still use older 32bit CPUs and have often requested this. Also, our 32-bit builds are now large memory aware, and can support more memory, making crashes much less likely for lower powered computers.
Improved Export Dialog
OpenShot's export dialog now displays progress in the window title, including some performance metrics (encoding frames per second and estimated completion time).
New Codec Support (including experimental)
AAC is now the default audio codec for many presets, which allows OpenShot to create videos which are more widely compatible with all OSes, devices, and web browsers. Also, experimental codecs supported by FFmpeg and LibAV can be used in OpenShot for the first time.
Full list of features / commits below:
libopenshot-audio 0.1.6 so:6
- Fix under-linking (pthread and dl), fixes #3
- Integration of GitLab build pipelines
libopenshot 0.2.0 so:15
- Auto audio mixing strategy per clip (average, reduce, or none)
- Adding new crop effect, which can also be animated for some very cool effects.
- Adding new Color Shift effect, which can shift any color (RGBA) with infinite wrapping (and full supports animation).
- Adding new Pixelate video effect, which pixelates a portion (or all) of a frame's image, and is fully animatable.
- Adding new video effect: Bars, which allow for animating colored bars around your video, such as a letterbox effect.
- Adding new wave video effect, which can be animated in a ton of ways to create lots of cool wave distortion effects.
- Adding Hue video effect, to adjust the hue of a frame's image, which can also be animated with a keyframe
- Adding new effect: Shift, an infinite pixel shifting effect which can be animated and wrap images in any direction.
- Auto-Rotates any Clip with Reader metadata 'rotate' attribute.
- Experimental codecs now supported in FFmpeg/LibAV
- Audio popping during preview (due to resampling)
- Fixing brightness and Mask effects to calculate factor with a float type, giving more fine control
- Fix Blur.cpp by copying blur_<chan> values back to <chan> so horizontal *andvertical blurs can be applied in one effect and blur accumulates with increased iterations
- Update and apply frame mapper on any clip changes, to keep timeline offsets in sync (i.e. avoid audio popping due to slight misalignments of clips on the timeline).
- Removing old frames from WorkingCache (when no longer needed). This helps prevent freezing looking for old frame data on certain videos.
- Adding metadata from format, audio stream, and video streams to ReaderBase.info, which in some cases includes the 'rotate' metadata added by certain cameras, and audio metadata like title, album, artist, copyright, dates, etc...
- Added in metadata encoding capabilities (writer.info.metadata["title"] = "My Title"). Only certain tag names are accepted (see FFmpeg for more on which tags are supported by which codecs).
- Optimize and improve speed of Mask effect (used by transitions). This is way faster than before!
- Fixing assignement and copy operators on Frame class (to prevent crashes for unintiailized image and audio pointers), and ensuring both copy and assignment operators work as expected.
- Fixing the color property of Frames, which was being lost on some constructors.
- Increase valid frame rates to 240 fps since many cameras now support this higher frame rate
- Fixing regression on Clip constructor, and simplifying pointer initialization
- Fixing a bug with Frame::AddImage (convertToFormat) not actually doing anything. It returns a new image, and does not convert the format in-place.
- Preventing crash if Seek invoked before QtPlayer are initialized properly
- FFMPEG 3.2 support for FFmpegWriter
- FFMPEG 3.2 support for FFmpegReader
- Fixing FFmpeg version breakage in FFmpegWriter
- Increasing the default amount of cache in FFmpeg, based on the # of processors, to better support high framerate videos.
- Changing some Seek values to be more accurate, and fixes a race condition with Timeline_Tests.cpp.
- Changing some sleep() calls to usleep(), for more accuracy. This is a bit experimental, and hopefully will work on all OSes.
- Do not clobber gainFactor when determining volume adjustments and add a TODO note about current_max_volume always being 0
- Removing anchor from clip properties (since it is unused)
- Adding "dbghelp" dependency for Windows builds (for crash handling support), and improved Windows build instructions using MSYS2.
- Properly set test media files path, fixes #36
- Fixing black frames at end of video clips, if audio stream longer than video stream, and end-of-stream is reached.
- Integration of GitLab build pipelines
- Faster Windows builds
- Fixing audio unit tests
- Avoid mixing audio for clips with no volume or disabled audio.
- Updating cmake file for libopenshot-audio to search $ENV first, and then static folders
- Add missing type cast
- Spelling and typo fixes
- More detailed export dialog progress, including estimate time remaining, FPS, and more accurate percentage. Thanks Peter!
- Defaulting to AAC audio codec
- Improving zoom scale calculation, to use a custom bezier curve (zoom gets faster and faster the more you zoom out). 30 levels of precision between 1 second and 7200 seconds.
- Auto-rotate for Readers with 'rotate' metadata. This requires a slightly newer version of FFmpeg, otherwise the 'rotate' tag is never found.
- Adding new Crop video effect
- Adding new Color Shift video effect (with temp icon)
- Adding Pixelate video effect, which can animate a pixelated version of part (of all) of a video clip.
- Adding new Bars video effect, which allow for animating colored bars around your video, such as a letterbox effect.
- Adding new Wave video effect
- Adding Hue video effect
- Adding new Shift effect (which allows for shifting the image in any direction and allows for animation, with infinite wrapping)
- Support for 32-bit and 64-bit Windows builds, and an update to the Windows dependencies (and installer size reduction).
- 32-bit version of Windows is now large address aware, and can make use of more memory, but users might need to run this command first: 'bcdedit /set IncreaseUserVa 3072' in order to utilize this
- No longer crash app if user settings cannot be read. Now we show a message box and reset the user settings.
- Adding save indicator in window title
- Retain track parameters during add/remove track
- Update titles to be compatible with newer versions of Inkscape
- Always apply mapper when opening a project, to ensure no audio starts popping for different framerate projects
- Split Clip dialog now sends focus back to slider after clicking 'Start' or 'End' or 'Play' (to make it easier for frame-by-frame arrow keys)
- Make clip and transition menus trigger on mouse-down, and not move the timeline item when the menu is activate
- Removing max constrains from export length, so user can export blackness at the end of his project if so desired.
- Disabling/Enabling save icon based on if the project needs saving
- Add preset xml file for chromebook target
- Removing unneeded 64-bit/32-bit clean-up code from Windows installer (which breaks on a 32-bit system)
- Fix initial save indicator on a new (blank) project
- Also use import_path for missing-file recovery
- Add import_path tracking to project data
- Updating mac build scripts to use Python 3.6 (with a newer version of OpenSSL)
- Preview controls use media-skip icons
- New razor-tool cursor
- Adding new developer page to documentation, with step by step instructions on getting a Ubuntu development environment setup for libopenshot, libopenshot-audio, and openshot-qt.
- Position is always (frame - 1) / fps
- Utility functions for unit conversion
- Be more explicit about logfile paths
- Adding back in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 to the AppImage
- Rename dv_pal_wide_animorphic to correct spelling
- Remove duplicate profiles
- Protect slack upload better during build server
- Updating sponsors, donors, and contributors
- Updating translations
- Change the if statement for default language to use system default
- Copy log file for each successful build (for debugging reasons)
- Use QUrl.toLocalFile() to convert dropped URIs
- Add Contributing section
- Update Tutorial, Code tags and contrib link
- Update GitHub info in tutorial
- Use images/ path for images, not _static/ in documentation
- Fix wrapping in Tutorial documentation
- Replace ASCII arrows with Unicode arrow character in documentation
- Also update transition layer on track add/remove
- Small refactor of build server file uploads, and added extra check for 'already uploaded' assets to GitHub
- Improve error message for failed uploads during build server
- Remove torrents if already existing
- Integration of GitLab build pipelines
- Updating font family on built-in titles
- Remove some unneeded copies of libopenshot and libopenshot-audio in the AppImage, reducing size of AppImage
- Fixing issue with Linux AppImage creation on build server
- Migrating from Bzr to Git (on Launchpad)
- Delete old ISSUE_TEMPLATE
- Correct a cut-and-paste wrong comment
- Fixing copyright to use translation-friendly formatting, and hiding hardware decode preference (for now)
- Update websites section and removal of too many caps
- Change readme to be markdown
- Log length of metrics response, not content
- Updated copyrights to 2018 (from 2016). Also edited `about.py` so the year is automatically updated.
- Adding a few missing dependencies into the developer doc page
- .gitignore: ignore docs/_build & all pycache
From the 2.4.3 release:
- - Masks and transitions can now be modified at any time, and can now use an image or video! This utilizes the grayscale of each frame and converts it into a mask, and can be used to create some really amazing effects.
- - Threading improvements help prevent crashing around effects (including masks and transitions), and improve performance on many systems.
- - Save frame button for quickly saving the current preview frame
- - Huge improvement to language translations (Thanks to Frank Dana - ferdnyc)
- Bumping version to 2.4.3 (libopenshot dependency to 0.2.2)
- Animated Masks: New "reader" property type, initially used by the Mask effect to change the image/video used by transitions and the Mask effect
- Disable OMP thread concurrency during Export, to make exports as safe as possible
- Nudge clips when holding SHIFT + Left or Right arrow (Richard Alloway - N3WWN)
- Add Save Current Frame button (Richard Alloway - N3WWN)
- New translation & language infrastructure and logic (better logic for determining current language) (Frank Dana - ferdnyc)
- Fixed split keep both sides (right side position was incorrect)
- Application icon updates (Frank Dana - ferdnyc)
- Zoom fixes (lots of issues relating to zooming fixed)
- Undo/Redo fixes (fixing and preventing giant .osp project files)
- New tutorial system, better child window management (Frank Dana - ferdnyc)
- Travis CI Integration
- Improve Title filename duplication naming/counting (DerGenaue)
- Use track names in "Add To Timeline" window (Frank Dana - ferdnyc)
- Improve waveform display rendering (DerGenaue)
- Fix audio wave not rendered after completion (DylanC)
- Add instagram and twitter presets (DylanC)
- Add AppStream metadata to setup.py (Peter Eszlari)
- Timeline cleanup and performance, upgrade Angular.js (DylanC)
- Removing libdrm.so.2 from AppImage
- Add src/language path to Mac DMG builder (Frank Dana - ferdnyc)
- Add language override on command line using --lang (Frank Dana - ferdnyc)
- Add explanatory text for --list-lang (Frank Dana - ferdnyc)
- Some fixes for the timeline debugger (Frank Dana - ferdnyc)
- Update edit-clear icon in Humanity (Frank Dana - ferdnyc)
- Correct variable name typo to initialize properly (DylanC)
- Convert all nonessential logs to .debug() (Frank Dana - ferdnyc)
- Remove unused effects filters (Frank Dana - ferdnyc)
- Add "Ask a Question" template (Frank Dana - ferdnyc)
- Preventing libopenshot version check on unittests
- More framerates for YouTube HD and Vimeo HD presets (Frank Dana - ferdnyc)
- Convert (most) files with DOS line-endings to Unix (Frank Dana - ferdnyc)
- Remove debug.js from index.html (Frank Dana - ferdnyc)
- Square the PNG icon file (Frank Dana - ferdnyc)
- App metadata updates for easier packaging (Frank Dana - ferdnyc)
- Move Slice All shortcuts to correct menu (Frank Dana - ferdnyc)
- launch-linux.sh: Don't set QT_DEBUG_PLUGINS=1 (Frank Dana - ferdnyc)
- Updating default project type to 720p 30 FPS, and sample rate 44100
- Fix retention of export path (Richard Alloway - N3WWN)
- Fixing GitLab to no longer run CI for tags, and fixing version # for daily and release builds
- Add "release-candidate" to filename for daily RC builds, so they don't look so official on the website
- Misc Typos and text fixes (luzpaz)
- Updating contributors and supporters (Thank You!)
- Updating translations
- Bumping version to 0.1.7 (SO: still 6)
- Travis CI integration
- Bumping version to 0.2.2 (SO: 16)
- FFmpeg 3 & 4 support
- Fixed crash with masks and transitions
- Fixed many bugs around FPS and video length calculation (especially for MP3 and streaming WEBM formats)
- Protecting samples_per_frame calculation to keep from crashing on undetected FPS
- OpenMP schedule change (added stability)
- Limiting threads for both FFmpeg and OpenMP (attempting to find a good balance of parallel performance, while not spawning too many threads). Sometimes more is not always better.
- Travis CI integration
- Fix install paths for headers and effects (Jeff Shillitto - jeffski)
- Fix bug with FFmpeg > 3.2 flushing frames (Jeff Shillitto - jeffski)
- Adding "reader" property for Mask effect, to allow the user to adjust the image or video used by the mask effect.
- Fixing bitrate calculation (to be in bytes instead of bits)
- Adding in FPS detection for files which don't have valid FPS. In those cases (streaming files for example), we iterate through all packets, and average the # of frames, duration, bit rate, etc... Not ideal, but a better fallback.