Welcome to Part 3 of my update on OpenShot 2.0. We still have lots to discuss, so let’s dive right in! If you missed the previous 2 updates, check them out here:

Windows Installers 

OpenShot 2.0 Running on Windows

I am very happy to report that I have solved all the Windows-related build issues with JUCE and MinGW64, and have successfully built and tested Windows installers for both libopenshot and OpenShot Video Editor 2.0. The only remaining issue on Windows is related to SVG (i.e. vector image) compatibility, and luckily, a contributor is working on that as we speak. This is a minor issue related to RSVG-CONVERT, and should be resolved soon.

Mac Bundles & Disk Images

OpenShot 2.0 Running on Mac

For the Mac users, I have been working hard on finalizing the installation techniques for both libopenshot and OpenShot 2.0. I have recently refactored how this process works, trying to automate it as much as possible. Basically, our library is being packaged in a Framework bundle, our app is being packaged as an App Bundle, and they will be available on a DMG disk image. However, I am still running into a few small issues trying to integrate this process into CMake (our build tool). Conceptually, I really like the idea of Mac bundles, but when building an application outside of Xcode, they can be tricky to create and maintain, which is why I'm really trying to automate them as much as possible.

The screenshot above is running with the Qt Fusion dark theme, but keep in mind OpenShot also supports multiple themes, and can also be switched to use the native OS theme.

Remaining Tasks for Alpha Release 

Here is a list of the remaining tasks for a cross-platform alpha release (installers available to Kickstarter backers first). I have many contributors helping at this point, so some of these tasks can be completed in parallel.
  • Export Dialog: needs a few days of work and bug fixes 
  • Transitions: needs a few days of bug fixes and testing (there are still a few minor issues that need fixing in libopenshot, for example: multiple overlapping transitions, etc...) 
  • Timeline: needs 7 to 10 days of work, specifically on fixing issues with thumbnails and audio waveforms. Both those features have been implemented already, but have many small issues. 
  • Video Preview: needs a few days of work to fix some minor synchronization issues, and some improvements to the libopenshot audio playback code. 
  • Installers: most of the work is now done related to installers, but there are still some remaining issues with Mac bundles (as I mentioned above), and I need to test the installers on more systems, to ensure they are not missing any dependencies. 
  • Testing: once the above tasks are completed, I still need a few days of intense testing and bug reporting, to help shake out some of the more "obvious" bugs. 

Those are the final tasks blocking the alpha release of OpenShot 2.0. There are still many other tasks that need to be wrapped up and/or completed, but they are not necessary for a successful alpha release. So, if all goes according to plan, by the end of August we will be releasing our alpha installers.

Contributing to OpenShot 2.0

Right before we release the alpha installers, we will be officially releasing the source code to openshot-qt on Launchpad.net, the PyQt5 interface for OpenShot. This is another important milestone, as it will allow contributors to more easily access our source code, and will result in faster development and more testing. Currently, anyone is welcome to join our team on Launchpad.net and gain access to this code, but it requires me to manually setup a user account on our source code server, and generally slows down everything. So, releasing the source code to openshot-qt will be a great thing, and should accelerate the development of OpenShot 2.0.

Next Update

If everything goes smoothly (i.e. no huge technical issues or legal issues), my next update will be towards the end of August (in about 30 days). I am very excited to release the installers and the source code for openshot-qt, so I need to get back to work now and ensure this happens on time! See you on the other side!


Welcome to Part 2 of my update, where I will dive much deeper into the technical accomplishments of the past 2 months. I also have some screenshots to share, as well as a new video to demonstrate the current state of the project. So, here we go!

Timeline Improvements

As you can see from the screenshot, I've made many improvements to the timeline look & feel. I have also done more work in the "theme-ability" of the timeline, and it is now very easy to give the entire timeline a different look using CSS. I am very excited to see what themes the community will create once everything is released. Conceivably, the timeline could be themed to look and behave like any video editing application out there.

The JavaScript that powers the timeline has also been through a major refactor, and is very well organized now. Each primary element (i.e. clip, track, timeline, playhead, etc...) has it's own JS file, and is very easy to debug. I have also added in a debug panel, for when working on the timeline source code in Google Chrome.

Debugging Timeline in Google Chrome

Snapping Improvements

New Snapping Feature (i.e. blue line)
One of the coolest features I've completed over the past many weeks is a brand new snapping engine for the timeline. Basically, every element on the timeline (including the playhead) can be snapped/aligned in real-time, as you drag a clip or transition around. As the clip approaches a "snapping coordinate", a line fades in as a visual cue, and fades out after you drop it or move past it. It certainly makes the timeline easier to use, as aligning clips, transitions, and audio is a very critical part of the average video editing work flow.

Memory Leaks & Bug Fixes

As everything becomes more functional, some things are much easier to trigger, such as memory leaks. And one fun anecdote about a video editing application, they use a ton of memory on the heap, and memory leaks can sky rocket to all your remaining memory in about 5 seconds. In other words, these types of memory leaks are fairly easy to spot. And thus, all of the memory leaks that have been found so far are now fixed. And many of my tests include code that runs for long periods of time, and that has given me a lot of confidence in the underlying library (i.e. libopenshot), and the general stability of the platform.

Video Preview (view on YouTube for HD quality)

Here is an updated video preview demonstrating some of our timeline improvements, such as snapping, animations, and more! It even contains a sneak peak of our properties and keyframe system, which I will explain in more detail soon!

More to Come in Part 3

I will be releasing Part 3 of this update tomorrow, so you won't have to wait long. =) In part 3, I discuss the remaining tasks blocking an alpha release, give an update on installers (Windows & Mac), and discuss the release date of our alpha release. See you then!


I hope everyone is having a great summer! I have been very busy working on OpenShot 2.0 (of course), and have an update that is just too big to fit into a single post. So, I have broken this update into 3 parts for your reading enjoyment.

Texas Linux Fest (June 13 - 14)

Before I get into the details of this update, I wanted to quickly share my experience from Austin, TX @ Texas Linux Fest, which I attended in mid-June. My family (wife and two daughters) attended the show as well (which was awesome), and helped me run the OpenShot Booth!
My Family @ Texas Linux Fest

I met some incredible people, and had some very enlightening discussions. I even had a demo of OpenShot 2.0 ready to preview, but not much time to actually show it off. =) I also had a few different people offer to help out, and are now contributing to OpenShot!

However, one of the most interesting discussions I had was related to the open-source licensing of the OpenShot Video Library (libopenshot). This is the code that powers all the complicated video and audio editing functionality for OpenShot. More on this topic of licensing below.

Legal Battle

In late June, OpenShot was sucked into some legal conflicts related to trademarks and intellectual property. While I would love to discuss all the details, I am not allowed to discuss them at this time. However, everything worked out fine for OpenShot, but it certainly took some money and time away from me during the process.


After some serious discussions with community members related to licensing for libopenshot, I have decided to officially change the license to LGPLv3. This is still a bit problematic, due to a GPLv3 license of a required JUCE-based libopenshot-audio library. But soon, I will make the GPL components optional during compiling, so it will be easier to maintain the LGPLv3 license on derivative works.

If you have no interest in reading open-source licenses... just know that we are switching the license of our main library to be more open, and allow more people to use it without violating our license agreement.

OpenShot Video Library Released (version 0.0.2)

I have actually made 2 releases of libopenshot in July, with another release coming towards the end of July. This marks the first official release related to the Kickstarter project! This is important, because it now allows me to build installers and package the library in a way that can be easily installed by end-users.

I now have working libopenshot installers / packages for the following OSes:

  • Ubuntu / Mint (including daily builds / daily PPA)
  • Debian (i.e. mentors.debian.net)
  • Fedora (i.e. RPM Fusion)
  • openSUSE (i.e. PackMan)
  • Arch (i.e. AUR)
  • Windows (was working... but libopenshot-audio is now breaking on Windows)
  • Mac (still in heavy testing)

However, before these packages can be downloaded and installed (outside of some testers), I need to get them accepted into the different OSes official repositories. This is always a time consuming process, and I have been spending a percentage of my time working on this goal for the past 3 weeks (or so). NOTE: For Windows and Mac, I will not be pursing their software / app stores, but will just be releasing the DMG and MSI installers.

OpenShot Audio Library (powered by JUCE)

In early July, I updated the version of JUCE inside the OpenShot Audio Library (libopenshot-audio), which was done as part of my re-licensing efforts (discussed previously). I have also released the first 2 official versions of libopenshot-audio this month (more fruits from the Kickstarter project). However, the only drawback from this update are some compilation issues on Windows and MinGW64... which are pretty tricky to debug. So, if anyone wants to jump in and help me resolve some tricky C++ build issues related to JUCE and MinGW64, please send me an email. =)

More to Come in Parts 2 & 3

Improvements to the functionality and interface of OpenShot Video Editor 2.0 are coming in Part 2 of this update. Including a new video, screenshots, and lots of technical goodness! Then, in Part 3, I will be discussing installers for OpenShot Video Editor, source code release, release dates, schedule of final tasks, and more!

Thanks For Your Patience

Once again, I want to thank everyone for making this project possible and for your patience so far. Over the past 2 months, I have brought on 5 new contributors, made 4 official releases, built a half dozen packages / installers, successfully navigated some tricky legal issues, ran an exhibitor booth, and continued to push forward on the interface and final tasks for OpenShot 2.0. It has certainly been a longer road that I expected, but we are certainly nearing the end. =) So, THANK YOU for being so awesome!!!


Hi everyone! Here is my May development update for OpenShot 2.0! This update will be a little different than my previous ones. It includes two different videos, and hopefully gives you a good feeling of the current state of OpenShot 2.0.

Interview on Linux Action Show

Before I jump into the details of what's been accomplished over the past month, be sure to check out my interview on the Linux Action Show, streamed LIVE yesterday (YouTube version included here). I always get a bit stressed out when doing live streaming, but these guys are terrific and I am always happy to be on their show!

NOTE: Look how awesome their shirts look. =)

Video Preview of OpenShot 2.0

The next video is a quick screen capture I did with the current development build of OpenShot 2.0, running on Ubuntu 13.10 (Windows and Mac versions are very similar, except for the window decorations and theme differences). Also, I plan on including videos like this in all my future development updates related to OpenShot 2.0!

These past 4-6 weeks have been very productive, and many features have been completed or almost completed. In fact, there have been 56 commits in the past 30 days. This is the most active I've ever seen OpenShot's development. So, things are moving forward at a very fast pace. Here is a detailed list of the tasks that are now complete, or mostly complete:

Recently Completed Tasks

  • Added a new awesome thumbnail method to libopenshot, which might just be the greatest thumbnail method ever made! Okay, maybe not, but it's really cool. It can take any frame of any video, resize it intelligently (centering if needed), and optionally supports 1) background colors or transparency, 2) gray-scale mask, to remove parts of the image, 3) overlay image, to add watermarks, custom graphics, etc... Finally, this new thumbnail method is integrated into OpenShot for all thumbnailing.
  • Improved audio and video player features in libopenshot, and integrated them into OpenShot.
  • Improved foreign language support in OpenShot, and fixed many unicode errors related to other languages. As far as I can tell, it now works correctly in over 50 languages (although I have not personally tested each one yet).
  • Fixed more Windows-specific build issues. If I go more than a few days without testing on Windows, OpenShot just self destructs. =)
  • Fixed many issues related to themes, icons, and native toolkit styling. I am still having some issues with SVG icons on Mac, but for the most part, the UI is working good on all platforms.
  • Improved Title Editor in many ways, including making it much easier and faster to edit and create titling for videos.
  • Integrated Title Editor and 3D Animated Title dialogs into OpenShot. Titles and animations now show up in the project files tree and can be previewed, dropped on the timeline, etc...
  • Refactored many different places I was using Python threading with QThreads, and dramatically improved the stability of the different threads being hosted in Python. This was due to issues updating the Qt UI from different threads.
  • Fixed many issues with Saving and Opening project files, especially issues with different languages, character sets, etc... I ended up creating a folder on my computer called "t€ rôèÿæs", which has become my favorite way to test unicode support for file paths in OpenShot. =)
  • In a related fix, I improved the way temporary files are handled when saving project files. For example, newly created 3D animations and Titles are now saved in a temp location until you save your project, and then they are moved to a sub-folder of your project. This also supports saving projects to USB flash drives. And those paths are also saved as relative paths, and converted into absolute paths during the execution of OpenShot.
  • Completed preferences dialog, and dramatically improved the function of it. It is now dynamically built from the user's settings file, and works really well. The settings file now includes meta-data about each setting, which is used by the preferences dialog to build itself. Let's just hope it does not become self aware. =)
  • Added a new profile button to the primary toolbar, which allows the user to quickly switch the type of project they are working on. So, if you want to test your video as a 1080p video, and then quickly switch to 480p, it's super easy now.
  • Added many context menus, including File, Clip, and Transition. Most of the options are now working correctly, such as removing files, previewing videos, removing clips, etc...
  • Improved the drag and drop support with Qt. I had initially done things a bit more complicated than needed, and dramatically simplified the code. I ended up removing over 100 lines of code, and now let Qt handle most of the drag and drop itself. =)
  • Added new query classes, to more easily manipulate project-type data in OpenShot. Also added many new Python unit-tests related to these classes.
  • Integrated transitions into the timeline, but there is still much to do.
  • Tested out a new icon (and new branding) for OpenShot being designed for version 2. I will reveal it soon and let you and the rest of our users vote on which icon to use: Our original (which is a bit generic and old looking now), or this new exciting and very original looking one. =) Okay, so I'm a little biased.

Coming Soon

Okay, there are more updates of course (over 50), but the ones mentioned above are the biggest ones. So, now that you know what has been accomplished, let's discuss what is targeted for the next 4 to 6 weeks:
  • Integrating Effects into Timeline
  • Complete Animation Controls (dockable UI)
  • Complete Properties Interface (dockable UI)
  • Complete Export Dialog
  • Complete Installers (so users can start experimenting and testing these early builds)
Of course, there are many more tasks still to do, but I'm very focused on completing these before my next development update. I really, really want to complete the installers and packages for OpenShot, so more people can start helping me test. Fingers crossed... this will be ready for the next update. =)

Looking for Help

I am still looking for some developers and volunteers to help me out with a few tasks. If you have some extra time to volunteer to our humble project, I would be super appreciative! =) Here are the skills we are still needing on our team. If you want to help, simply contact me directly, and I will help you get setup: jonathan@openshot.org.
  • A PyQt developer to help me finish some UI tasks
  • A JavaScript / JQuery / and Angular.js developer (NOTE: Angular.js is a required skill for working on our timeline)
  • A C++ developer to help tie up a few loose ends with FFmpeg and LibAV, and the liboenshot API.
  • Someone knowledgeable with cx_Freeze, and building Linux packages and installers.

Thanks for your Support

As always, thanks for your awesome support and patience! This has been a lot of work, but it's also a lot of fun to get to work on a project like this! I will be posting a vote / poll for our new icon (soon to be revealed), and my next update should be in about 4 weeks.

Follow Us

If you want to be sure you don't miss any important upcoming OpenShot news, be sure to follow us on your favorite social network:


It's been a crazy 7 weeks in OpenShot land, and I hope to bring you all the latest news and developments to catch you up. If you don't have time to read this entire update, then just know that development is moving forward, tasks are being completed, milestones are being reached, our team is expanding, and we are closer to a release now than ever before. Now for all the fun details. =)

Upcoming Events

I have a few exciting upcoming events to announce. So, if you are thirsting for more OpenShot news, please consider attending / watching these upcoming events.
  • April 12: I will be presenting at the DFW Pythoneers meetup. If you are in the North Texas area, please consider stopping by for a behind the scenes look at developing OpenShot. (more details)
  • June 13-14: I will be running an OpenShot booth at Texas Linux Fest, and possibly giving a presentation as well! (more details)
  • TBD: I will be on an upcoming episode of the Linux Action Show... although details and dates are not finalized yet. I'll post an update once I know more.

Development Update

We have made progress in a number of areas over the past 7 weeks. And of course, we have had a few setbacks as well. Here is a quick list of the tasks we've completed and crossed off our list:

Accomplishments over the past 7 weeks:
  • Completed a new dock-based interface design (screenshots below). It is very cool! Users can now rearrange the interface of OpenShot to their liking. Arrangements are saved and restored automatically. This also now includes 2 preset arrangements (Simple and Advanced)!
  • Completed Cross-Platform 3D Animation System (screenshot below)
  • Completed a new "simple" Query API (to insert, update, and delete data related to projects, clips, tracks, etc...). This simplifies how our user interface can access and manipulate the data of a project.
  • Fixed a ton of bugs related the timeline interface (where clips are dragged / dropped, etc...). It is working very well now, but still lacks a few important functions.
  • The OpenShot Library (libopenshot) has also had some great improvements and updates, as well as a few major bug fixes.
  • Mostly completed our Title Editor (thanks to Andy Finch)
  • Major improvements to our translation system (thanks to Olivier Girard)
  • Major overhaul to our Export Video dialog (thanks to Olivier Girard)
  • Completed our Qt Video Player widget (thanks to Duzy Chan). This has now been integrated into our PyQt interface and is working.
  • And finally, we have officially released the OpenShot Library under the AGPLv3 open-source license, and published it on Launchpad.net!!! This is a huge step that took much longer than expected, but will help us move even faster now.

Setbacks over the past 7 weeks:

Of course, progress sometimes runs into challenges and setbacks. Here are some of the setbacks we've recently encountered.
  • There are a lot of small and seemingly unimportant tasks which somehow add up to form a tremendous amount of work. Not the satisfying "I just completed something awesome" kind of feeling. But the "I just spend 8 hours trying to pass a QEvent between 2 Python threads... Argghhhh". 
  • Cross-platform issues continue to slow me down. Fixing a build error on Windows tends to break Mac. Fixing a build problem on Mac, tends to break Linux. Fixing a build problem on Linux, tends to break Windows. Rinse and Repeat. =)
  • Integrating our live video preview with our PyQt application was a tricky task (which has been successfully completed now). This took about 10 days of blood, sweat, and tears to integrate successfully. It involved passing Qt pointers between 2 different Python wrappers, SIP and SWIG. Passing signals and events between libopenshot-->SWIG-->PyQt-->SIP-->Qt5.
  • I have spent some time working on Installers for the various parts of OpenShot 2.0, and this continues to be a slow process. No one installer system works for all platforms, and all parts of OpenShot. But I have been able to build installers for various parts of OpenShot, that work on Linux, Mac, and Windows. But I am really trying to create a single installer, which will support all platforms and all aspects of OpenShot 2.0. It's a work in progress.

But, as you can see, none of these set-backs are horrible, and most have already been resolved. For the most part, they have just slowed me down. Also, if any software developers experienced in C++, Python, or Javascript/JQuery are reading this update and are interested in getting involved... please contact me and I'll get you setup with all the source code and build instructions.

Now, let's take a look at some screenshots from our current development build of OpenShot 2.0:

Cross-Platform 3D Animation System:

Here is our completed template-based 3D animation system, which is one of the more complex features in OpenShot. It uses Blender (a popular 3D animation application) as the back-bone, and allows you (the user) to easily adjust an animation, customize text and colors, and generate a 3D animation to use in your video.

3D Animation Interface:

Different Views (Simple, Advanced, or Custom):

As I mentioned above, we now have the ability for our users to customize the interface of OpenShot, dragging various sections and widgets and dropping them where you want them. We will default to our "Simple View", which closely resembles OpenShot 1.x.

OpenShot 2.0 Simple View:

If perhaps you would rather have more options on the screen at once, you might prefer our "Advanced View" (which is not finalized yet, or course).

OpenShot 2.0 Advanced View:
Finally, if neither of our "pre-built" views fit your liking, you can just drag things around, dock and un-dock things, and come up with your own awesome interface. Here is a quick example I created by simply dragging things around.

OpenShot 2.0 Custom View:

None of these screens are even close to final, but hopefully they give you an idea of the direction our team is moving in. We are trying to keep our default interface as simple as possible (so it appeals to the widest possible audience), but make it super easy for advanced users to leverage all the powerful features and customize the interface to what works for them.

Release Date

This is by far the most requested question I get: When will OpenShot 2.0 be ready for me to beta test? I'm becoming very hesitant to answer this question, because I'm always wrong about the answer. The best answer I can give is not what everyone wants to hear. OpenShot 2.0 is making progress for sure, but much slower than I could have ever anticipated. I am very anxious to complete the project, of course, but I also want it to work great, and achieve all the lofty goals we have set for ourselves.

As you can see from the development update above, there is a ton of work ongoing (i.e. lots of progress), but OpenShot still has many remaining tasks before it will be ready for beta testers. Here are a few of the biggest remaining tasks before I can open things up for beta testers:

Remaining Tasks:
  • Key-frame interface is unfinished (designed and partially coded)
  • Audio effects have not been incorporated yet
  • Transitions work great, but some of the interface is not implemented around them yet
  • Effect and Clip interfaces are still unfinished (designed and partially coded). By the way, these are also dock-able widgets, which remain on the screen as you select different clips or effects.
  • Export dialog is unfinished (designed and partially coded)
  • Installers for each platform (Linux, Mac, and Windows) are unfinished

Over the next many weeks, I'm hoping to knock off many of these tasks, especially the installer task. Once I have these tasks completed, I will release download links to Kickstarter tiers that included early beta access, and I will also publish our PyQt application on Launchpad.net with an AGPLv3 license.

Thanks for your support!

Once again, I just want to say thank you for all your support to myself and OpenShot. This has been a really fun and challenging experience, and we are getting closer and closer to the end of this Kickstarter campaign (and the start of something really exciting: OpenShot 2.0)!


Here are the top suggestions to improve OpenShot, submitted by social media (Facebook, Google+, and this blog) and weighted by voting! The larger the word, the more votes (i.e. likes, +'s, etc...) it received. I will be sending prizes for the top 2 suggestions on each social network, listed below. If you would rather view all suggestions, download this PDF.

Winning Suggestions from Google+:


Mike AshelbyProxy MediaProxy media - user defined low resolution copies of the video you're editing so you can do more complex editing than your computer would otherwise allow. (Eg. Downscale 1080p footage to 480p for editing)16

Che DeanSimpler Transitions & MoreA more simplistic interface for transitions, Title, Credits...I hate to say it but something similar to MS Movie Maker and a quick YouTube upload button among other online 9

Winning Suggestions from Facebook:


Mark ThorndykeAutomatic Time Syncautomatic time sync (best fit) for audio between multiple different cameras capturing the same performance. (example. three cell phones recording a singer)10

Kálmán SzalaiStability & More* Stability (I thing this woud be the most important feature)
* Cut video with preview
* Masking
* Import of subtitle and burn in to the video
* More text templates
* Text effects with animation - to create greate screen captions
* Automatic photo album generation (select plenty of photos, select cool transition effect (zoom and fading, 3D picture switch, etc) and music automatically
* Live preview in the secondary monitor
* Grouping video clips and move, copy togethet
* Use GPU to accelerate rendering
* Subtite editor
* Import form Firewire
* Visualise audio with spectrum
* More precise way to add tranisition effects
* More precise control over effects
* Possibility to change effects strength during one clip

Winning Suggestions from this blog:


zorksox Group EffectsHow about something that you could call "effect presets"? The user could group a bunch of different effects into one "super effect" that they could save as a preset for use in any project. The preset would not only contain the effects, but customized information of each one (like the amount of camera blur or chroma key with a specific color and threshold).

For example, one could combine camera blur, posterization, and frame-rate reduction. They could save the whole thing as "Trippy psychedelic effect".

Tristan Rineer Project TemplatesI'd love to see "Project Templates" that can have everything from a preset format, included clips/images, to a saved description and visibility for uploading through the YouTube API.6

Some of these suggestions are already being worked on in OpenShot 2.0. For example:
  • Stability
  • Multi-Select of Clips
  • Batch Rendering
  • Proxy Media
  • Project Templates
  • Simpler Transitions
  • Easier Title & Credit Animation

Thanks again for all the great suggestions! It is always great to listen to the community and see what features are most wanted! I'm always surprised by a couple of them (great ideas I've never thought much about before). But for the most part, I think we are working on the features that the community wants the most. =)


Do you have an amazing idea to improve OpenShot?

I am giving away an 8 GB OpenShot USB Flash drive for the 2 best ideas to improve OpenShot! To submit an idea, simply add your suggestion using the comment system on this post, and "vote" for other comments that you would like to see included in OpenShot!

The 2 highest voted comments (containing suggestions) will be sent a USB Flash drive.

8 GB USB Flash Drive for OpenShot
If you follow OpenShot on Facebook or Google+, submit ideas there as well. I will be giving away free t-shirts for the highest "liked" idea on Facebook, and the highest "+'ed" idea on Google+. If you don't follow OpenShot... what are you waiting for?!? =)
1st Generation OpenShot T-Shirt
Thanks in advance for all the great suggestions and ideas!

* Only two winners will be selected per site (Facebook, Google+, and this blog). Only one prize per person is allowed (even if you have the top 2 comments). Please only submit unique comments (no duplicates). Thanks and good luck!


Welcome to third and final update of the Epic OpenShot 2.0 Update! I've already received some great feedback on the previous two updates, so thank you for that. This update will not be as technical as the previous, so hopefully everyone who was a little lost will enjoy this one.

Open-Source Challenges

As everyone reading this knows, OpenShot 2.0 is an open-source application. Kickstarter has been a challenging balancing act. Certain backer levels on Kickstarter are promised early access to various things, such as alpha, beta, and final releases. But how can an application be built and shared freely, while also restricting parts of it to a small group of people? It is a challenge, and here is my plan to solve it.

The alpha, beta, and final installers (i.e. easy ways of installing and configuring the binary application files), will be released first to the backers on Kickstarter (as promised). After all, without their support OpenShot 2.0 might never have happened.

However, the source code to OpenShot 2.0 should be released to the broader open-source developer community prior to me building the installers. I need the community to get involved with testing, bug fixes, translations, documentation, and even packaging. This will result in a much happier community, and a much better product for the backers on Kickstarter.

So, my current plan is to first release the source code to the OpenShot Library, and then soon after that, the PyQt source code to OpenShot 2.0. For the average person, compiling OpenShot 2.0 themselves would not be advised, and they should wait for the alpha, beta, and final releases (with installers). I hope that all makes sense, and if not, please feel free to share your questions or comments with me.

Web-Based Video File Testing

One of the most important (and challenging) tasks for a video editor is to offer broad support for your favorite video formats. This is currently accomplished by utilizing the FFmpeg and/or libav projects. So, while I don't have direct control over these formats/codecs, it is my job to integrate them as best as possible.

Later this month (or possibily early February), I will be launching a web page which will let you share sample video and audio files with me (as long as they are less than 50 Mb). These sample files will feed into an automated testing suite that I have developed, and will be inspected, decoded, thumbnailed, audio waveforms generated, and transcoded. The results will be posted on the website... although I will probably not share the actual video file or thumbnails (due to copyright issues, inappropriate content, etc...). My ultimate goal is to develop a huge cross-section of video files with different formats and codecs, which can be used now and in the future to regression test updates to libopenshot. In other words, this will help compile a list of compatible video and audio files, as well as identify issues with certain file types. It is also another great way for people to contribute to OpenShot.

Common Profiles

What is a profile you ask? Well simply put, a profile is a collection of video settings, such as height, width, frame rate, display ratio, pixel ratio, etc... OpenShot has a large list of "profiles", but I am very interested in the most common profiles used by normal users. So, I will also soon be releasing a simple web-based form, which will allow users to submit their favorite and most common profiles they use when editing videos. I will also display this information on the website (in total), for others to view. This data, along with the previous data-set of supported video and audio files, will help me ensure I support the most popular formats and profiles, and thus, I satisfy the largest group of users.

Southern California Linux Expo (SCALE 12x)

On February 21 to 23, I will be representing OpenShot at SCALE 12x, one of the largest community run events focused on Linux and free software in the United States. Although this might take a few days away from programming, it is an important event for OpenShot and a chance for me to meet many users face-to-face, listen to feedback, and meet with other OpenShot developers. I will be demonstrating OpenShot 2.0 LIVE at the show, and hopefully by this time, many of you will also be playing with an alpha release at home. =) I'm also considering having a LIVE stream of the event, but I'm not sure I'll have enough bandwidth for that yet. So, if you are near Los Angeles, CA towards the end of February, please stop by and hang out with us a bit.

Thanks for your Support

One again, thank you EVERYONE for your support! OpenShot 2.0 is moving along as quickly as I can build it. I will be posting a new update at the beginning of each month, and will be releasing an alpha as soon as everything is stable. On a final note... I'm still fighting a C++ heap corruption issue on Windows, and if any expert C++/MinGW developer wants to jump in an offer me a hand and be a hero, please send me an email to jonathan@openshot.org!


Welcome to the second of three exciting updates on OpenShot 2.0! This update will be a bit more technical than the last, but I'll try and keep it understandable for those who want to follow the process of developing software, and especially the process of developing a video editor.

Sharing Data and Synchronizing Everything

OpenShot 2.0 contains many different modules which all need to have access to the same information. For example, the interface needs to know what files are available for a project, be able to undo and redo actions, communicate button clicks to the other modules, etc... The video player needs to know what clips to mix together, which effects to apply, what frame to display, etc... And the timeline needs to visualize this same data to the user, so they can see what's happening and arrange their clips, etc...

When a user moves a clip on the timeline, many things must happen. First, the timeline must communicate the clip's new position / location to both the interface (so it can be saved in your project, added to the project's history, etc...) and the video player (so it can update the video preview, and display the new video). And similarly, when a file is deleted from the interface (i.e. video project), the timeline needs to remove any clips related to that file, and the video preview must be updated.

So, they all need to access the same data, and communicate in 3 directions at all times. No problem, right? To accomplish this feet, we have built in some very robust support for JSON (JavaScript Object Notation). If you are not familiar with JSON, feel free to follow the link and learn more, but basically it is a simple, easy-to-write and understand notation, which can be used to share information between different programs.

In other words, we have 3 basic programs: a C++ video library, Python user-interface, and a JavaScript timeline. Of course, there is no built-in way for all these different programs to communicate. So, using the powerful JSON notation just felt right, and has worked great for us.

Using JSON to Communicate Changes

When something is changed in OpenShot 2.0, such as a new clip is dragged onto the timeline, a new file is added to a project, or the user clicks the undo button, this creates a small JSON string, which describes the change, and then distributes that change to all modules in OpenShot 2.0. Our powerful new video editing framework, libopenshot, can easily digest these special JSON "changes", and then only apply those changes to the current timeline. This is much faster than serializing our entire timeline on each change.

Not only is this an efficient model for sharing data between the interface, timeline, and libopenshot, but it is human readable, simple, and also allows us to use JSON in other creative ways. Such as a powerful undo / redo system, which is actually just re-applying these JSON changes in reverse or forward order.

Exciting Possibilities with JSON

By leveraging the power of JSON, it also allows us to save the project file as JSON, bind the JSON to our HTML timeline with Angular.js, and will allow users to easily edit their project files. In fact, it will even allow users to build their own project files dynamically with a little scripting... if they want to have some programming fun!

Okay, so hopefully you see some of the cool features that JSON will bring to OpenShot, but let me now demonstrate how easy it is to generate and use JSON in libopenshot with just a Python shell.

>>> import openshot 
>>> r = openshot.FFmpegReader("massive_warp_hd.mov") 
>>> print ( r.Json() )

Okay, so that was pretty easy! How about we change a few properties of this reader, by using some JSON of our own.

>>> r.SetJson(' {"width":640, "height": 480} ')

When Python, JSON, and libopenshot are combined, things suddenly become very fun! If you are especially bored one afternoon, you might find yourself in a Python shell editing a video project without any user-interface. When I catch myself doing that, it makes me laugh. Anyway, I hope you enjoyed part 2 of our special 3 part update! There are still many more updates to share, so I hope you will join me tomorrow evening for the final update (for now)!


Greetings OpenShot Backers! I hope everyone had a great holiday season and a happy new year! This is the first of three updates over the next couple days! So, be sure to check back often and keep up with all our new developments.

Schedule Update

Before I go any further, I first want to address the current schedule. My original plan was to release a beta around Christmas time and a final release mid-January, but unfortunately things were not quite ready. The last thing I wanted to do was to release an unfinished, broken version for everyone to try out. So, I made the hard decision to delay the testing releases to be sure things are ready on all 3 platforms. The work required to bring OpenShot fully cross-platform has been very challenging, but the show-stopping bugs are being knocked out, one by one, and there is a ton of progress to report, so please read on!

Development Expanded

Over the past couple months, I've expanded the OpenShot team to include Cody Parker and Noah Figg, who have been a tremendous help! In fact, the word tremendous does not do them justice... just know they have been a key part of the team to make OpenShot 2.0 a reality. They have completed dozens and dozens of tasks, and worked closely with me to bring all the different pieces together. Noah has focused on the Qt interface, improving the core PyQt framework to simplify our coding, solving complicated issues (such as cross-platform icon systems, translation system, undo / redo system, Qt integration with HTML timeline, and more). Cody has focused on the HTML timeline, JQuery integration, Qt integration, as well as leveraging the amazing Angular.js framework (used to bind our interface elements to our JSON data structure).

Bringing It All Together

We have been building OpenShot 2.0 in three different modules: libopenshot (the library which does most of the hard stuff), Qt interface (the user-interface which contains the buttons, sliders, labels, tabs, etc...), and the HTML Timeline (which is where you arrange your clips and effects). Most of the functionality in OpenShot 2.0 has now been programmed, but these independent modules are now being brought together, tested, debugged, and packaged (i.e. creating installers).

Windows Development =(

Many years ago, I used to develop software almost 100% with Microsoft's development tools (i.e. Visual Studio). So, I'm very comfortable within this operating system and development environment, or so I thought. Although, while I'm no longer using Visual Studio for OpenShot 2.0 (I'm using MinGW for those who are interested), I have been fighting Windows bugs for most of December, and wow, I've seen the dark side of Windows development with regards to working outside Microsoft's preferred tool set. The good news is, I've conquered most of these crazy bugs (many caused by subtle changes in Windows support for C++, and linking issues with Windows DLLs). I have one final bug on Windows that still has me stumped, related to a heap corruption caused by msvcrt.dll. So... if any developer out there want so to help me troubleshoot this issue on Windows, I would be most appreciative! I know... I can already hear the crickets chirping. =)

Of course, Mac and Linux support has been super easy, and simply a pleasure to work in those development environment. In fact, my build instructions document contains about 3 pages for Mac, 2 pages for Linux, and 12 pages for Windows... if that gives you an idea of how difficult Windows is to develop in.

Qt4, Qt5, GTK, PyQt, and Python3

Okay, that is a lot of acronyms, so let me explain. Over the coarse of the Kickstarter campaign, you may recall that I mentioned OpenShot 2.0 would be switching to Qt (used to draw our interface to the screen), instead of porting our GTK (our existing interface) code base. Well, we started work using Qt4 initially, which is widely distributed on Mac and Linux and generally easy to work with. However, we later discovered that Python3 requires Qt5 (and not Qt4). So, we made a decision to move to Qt5, PyQt5, and Python3.

Still makes no sense? Well, basically we are now using the latest version of Qt (for our interface), PyQt5 (a program to help us control Qt5 from Python), and Python3 (the latest version of Python... which is a programming language used by OpenShot). Unfortunately, this process of fine tuning our software stack slowed us down in October / November, but we now have this stack working great on Windows, Mac, and Linux. This stack represents the future of these frameworks and languages, and positions OpenShot in a good place for the future.

Want More Updates?!?

I hear you loud and clear! Stay tuned for part 2 of this update... scheduled for tomorrow (Saturday) evening! And part 3, scheduled for Sunday evening. And as I always like to reiterate, thank you so much for your support and patience!!! OpenShot 2.0 is not an easy application to build. Video editors are complex in many different ways. This Kickstarter represents important investments into many different and unique frameworks, such as libopenshot, and will pave the way for many wonderful open-source video editing platforms in the future.

Subscribe to: Posts (Atom)