Latest News

Follow the latest news on OpenShot Video Editor!


,

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+:

NameTitleIdeaVotes

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:


NameTitleIdeaVotes

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
9


Winning Suggestions from this blog:


NameTitleIdeaVotes

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".
9

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)!

Subscribe to: Posts (Atom)