Giter Club home page Giter Club logo

olive's Introduction

Olive Video Editor Build status

Olive is a free non-linear video editor for Windows, macOS, and Linux.

screen

Discover more: Website | Binaries | Patreon | Twitter | Wiki | Community Discord (Unofficial)

NOTE: Olive is alpha software and is considered highly unstable. While we highly appreciate users testing and providing usage information, please use at your own risk.

Binaries

Nightly binaries are available on the website.

Support Olive:

Please consider supporting Olive:

Become a Patron

Compiling from Source:

Compiling instructions for Windows, macOS, and Linux can be found on the main site.

olive's People

Contributors

aeroc7 avatar alcomposer avatar cambloid avatar capezotte avatar cgvirus avatar elsandosgrande avatar eszlari avatar follower avatar itsmattkc avatar jazztickets avatar jonno85uk avatar leandrostanger avatar luzpaz avatar mdmayfield avatar morrolinux avatar naj59 avatar pafri avatar pgilfernandez avatar probonopd avatar prokoudine avatar quackdoc avatar rnkn avatar simran-b avatar sobotka avatar tecnotercio avatar thomaswilshaw avatar unfa avatar xgszz avatar yoshiomiyamae avatar zoomten avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

olive's Issues

Can't add effects to a split clip

Also if the transform effect is changed from default, the split clip will not inherit the transformation. In addition, the split clip's position is offset with all effects removed and no way to add effects to it.

Videos exported by Olive are "unreadable" according to Windows 10

Presumably an issue with the video header and/or trailer written by Olive, Windows 10's default video player (including its thumbnail generator in Explorer) appears to be unable to read videos exported from Olive. VLC reads them without any issues.

maaaaybe related to #48 ?

Edit tool does not select linked clips

When splitting a clip (either with razor or edit tool), the newly spawned clips will continue to reference the old clips as linked.

The razor/edit tool in general need to be aware of linked clips which currently they aren't.

Timeline fuckery

Placing a clip over two or more clips causes many issues. This was actually an issue before and had been addressed, but has clearly regressed in a more recent commit.

Exported audio ends early

After exporting a video from Olive, the audio will inexplicably end early, before the video does. This does not seem to be a consistent offset from the start or end of the video, it simply cuts off at some point for the rest of the video.

H.264 seeking is inaccurate

This appears to be due to an underlying flaw in the FFmpeg API and leads to the symptoms described in #11 and #15 . When Olive tries to seek to a specific frame, it attempts to seek to the closest keyframe before the target frame and then play all frames up until that point to retrieve the target frame accurately. Unfortunately after seeking an H.264 video, FFmpeg appears to stay in the old location for 1-3 frames before actually performing the seek. This may affect other codecs too, but so far H.264 is the only codec that appears with the bug. This does not affect codecs with All-I frames (e.g. ProRes) and also does not appear to affect msvideo1.

Olive uses 100% CPU when minimized

This appears to be related to SDL. By default, Olive's main window is a SDL hardware renderer with vsync enabled. It appears that minimizing it disables the vsync, causing the frame rate to uncap, and Olive to update infinitely, only capped to the limit of the CPU. Possible solutions are: disable vsync and run on an internal timer at all times for updates, research SDL documentation for built-in solutions to this, or include a listener that disables updates when the window is in a minimized state.

Ripple edits

Ripple edit functionality similar to Premiere, and its keyboard shorcut variants Q and W

No linked clips

Video and audio clips are imported together, but from then on treated as completely separate.

New composition pipeline issues

As of 481060b, Olive's composition pipeline (the way it decodes and displays frames during playback) has been almost completely rewritten. This was to address various problems in Olive's playback, primarily caused by the fact that up until this point Olive was completely single-threaded. This meant that every single action Olive performed - from UI drawing to input handling to video decoding - could not be done simultaneously, each had to occur one after the other.

These issues caused the following:

  • When a new clip started in the timeline, playback (and the whole app) would pause as FFmpeg loaded the file from disk
  • Playback and audio decoding regularly desynced, leading to occasional sound glitches during playback.
  • If a video was too slow to decode in real time, the entire app would become less responsive. This obviously has the potential to hang the entire app if a frame gets caught in an infinite loop.
  • If you have more than one video layer playing at a time, obviously it is far from ideal to have to render each layer in sequence when you could render them all at the same time.
  • Each frame had to be rendered in real time. If hypothetically a video could playback mostly fine, but every 10th frame or so took a little longer, there was no way to use the time saved from the previous hypothetical 9 frames to help render the 10th.

Olive's playback engine is now multithreaded and also keeps a memory cache. This is bleeding edge code and as such is full of bugs and missing features. This thread is to keep track of issues as they arise - and also to assure anyone trying the buggy mess that is Olive now - that everything is okay and being taken care of.

The following is a starting list of issues with the new composition pipeline:

  • Crashes a lot - currently segfaults at the drop of a hat
  • Memory leaks - despite my best efforts, Olive seems to not be handling memory correctly
  • No seeking - Olive functionality has regressed to only being able to play frames in order (but can still play media with frame rates lower then the sequence frame rate)
  • No sound or still image support - these have once again been lost as video has taken priority during the rewrite. This should be fixed soon.
  • Playback still tries to access a clip even after it's deleted in the timeline

Any other standout issues, as well as announcements for these issues being fixed, will be posted here

Overhaul the UI

My impression from writing this app is that UI rendering is pretty efficient. Once we reach v1.0, I think the entire UI needs an overhaul.

Crash after cancelling import dialog in GTK

Very occasionally, Olive will segfault when clicking "Cancel" on the import file dialog. This behaviour has only been observed in Linux so far (Windows suffers from its own file dialog bug #9 but so far the two issues appear to be exclusive to each platform).

Code is not very modular

Not an app usability fault as much as a "makes code harder to maintain" fault. It would be nice to have a better codebase looking toward the future.

Splitting a section

Functionality to split clips at the start and end of a selection, in addition to simply at the playhead

Olive significant performance loss when you stack multiple clips of the same imported footage

Dragging in a second copy of your imported footage into the timeline and having them play over each other (on separate video layers) results in at least 50% performance loss to playback. This can be repeated, further decreasing performance.

Workaround: Importing the same footage twice (having 2 references to the same footage in the import panel) and dragging each reference into the timeline allows for intended playback performance.

Olive plays videos slower than expected

Without reporting so (no warning about a frame taking longer than expected, i.e. as far as the app is concerned it's realtime), Olive appears to play all video slightly slower than it should.

This is likely either a vsync issue (similar to #20) or a result of Olive's single-threaded nature. Either way this will become increasingly problematic as #4 is finally implemented.

Adding clips with multiple audio clips only adds one

This functionality was actually working in a previous version of Olive, but regressed during a rewrite of the timeline code. Olive no longer offsets clips meaning all audio clips are placed over the top of each other, and obviously then overwriting each other.

Undo

I make many mistakes in life.

Starting new clips always causes a delay

While playback performance is generally acceptable now, starting a new clip causes a "seek" which generally causes a noticeably pause in playback. Olive could theoretically detect upcoming clip changes and seek them before they need to be displayed. The built-in frame caching would handle the rest, so that starting the new clip would be essentially seamless. This kind of optimization should come at the same time as addressing #21 (which will likely require detecting multiple clips of the same source and duplicating the format context).

Olive should also dealloc frame caches on clips after they are finished to save memory on particularly large sequences.

Transform effect glitches

When videos are moved offscreen with transform effect, they loop back around the other side like Pacman

Sliced audio clips play the wrong part of audio

Sliced audio clips always play the audio from the beginning of the source video, regardless of where you cut it from.

maybe this is a feature

MICHAEL CAINE MICHAEL CAINE MICHAEL CAINE MICHAEL CAINE MICHAEL CAINE

*EDIT: video meta data, if h264 is part of the issue

Double Jump\Arkham City LP\Ep 1\Ep1.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42mp41
creation_time : 2013-03-23T11:22:27.000000Z
Duration: 00:05:23.31, start: 0.000000, bitrate: 3156 kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv), 1280x 720 [SAR 1:1 DAR 16:9], 2993 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default)
Metadata:
creation_time : 2013-03-23T11:22:27.000000Z
handler_name : Mainconcept MP4 Video Media Handler
encoder : AVC Coding
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, flt p, 157 kb/s (default)
Metadata:
creation_time : 2013-03-23T11:22:27.000000Z
handler_name : Mainconcept MP4 Sound Media Handler
[INFO] Clip opened on track 1
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'E:\Users\David\My Documents\Film Stuff\ Double Jump\Arkham City LP\Ep 1\Ep1.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42mp41
creation_time : 2013-03-23T11:22:27.000000Z
Duration: 00:05:23.31, start: 0.000000, bitrate: 3156 kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv), 1280x 720 [SAR 1:1 DAR 16:9], 2993 kb/s, 30 fps, 30 tbr, 30k tbn, 60 tbc (default)
Metadata:
creation_time : 2013-03-23T11:22:27.000000Z
handler_name : Mainconcept MP4 Video Media Handler
encoder : AVC Coding
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, flt p, 157 kb/s (default)

Olive occasionally crashes on launch

As of ed38544 with the inclusion of SDL_INIT_AUDIO in the SDL_Init() flags, Olive will occasionally (seemingly randomly) crash on launch, but launch without issue the following time.

Visual C++ crash on Windows

When compiled on Windows, Olive encounters this error fairly frequently:

image

Olive is not compiled with Visual C++, so this must be caused by a dependency. Perhaps an assert() is failing. It's hard to tell since no stderr is printed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.