Code Monkey home page Code Monkey logo

simple-video-cutter's Introduction

Simple Video Cutter

Windows-based tool for efficient browsing and cutting video footage

Screenshot

Available localisations: Polish, German, French, Italian, Spanish, Japanese and Chinese (Simplified). Translations are mostly machine based (DeepL). Please contact me if you can help to improve translations in your language.

Goal

Let's imagine you have hours of video footage, dozens of files (videos from your vacations, material copied from your action camera or a drone etc.). Usually only a small portion of this material is worth keeping. So you would like to check the whole material and extract the most interesting/best parts as separate videos (and store them in your archive or publish on YouTube, TikTok etc.). And this is where the simple-video-cutter tool comes in. It helps you quickly browse your videos, preview them and extract interesting parts into separate video files. The main goal is to make this process as efficient as possible. You don't have to select the next file from disk manually, just press "next" and next file (ordered by date) is loaded automatically. Location and filenames of created video cuts are assigned automatically basing on patterns specified in the configuration. The extraction process is done in background (by FFmpeg), so you can work with next material whilst the previous tasks are being processed.

Installation

Download the SimpleVideoCutterApp-win-Setup.exe file and simply execute it. Simple Video Cutter will be installed automatically (program will be installed in user area, thus admin rights are not required for installation).

Warning! Windows may incorrectly identify the installer file produced by Velopack as a threat (see details here). The file of course does not contain any virus or malware, but Windows incorrectly tries to prevent installing it. In this case one can click "more details" and then the button that allows installation will be shown. When enough people do it, the reputation of the file increases and other users will not see any warning.

Another alternative is to use portable distribution (see below).

Portable installation

It is also possible to download portable version of Simple Video Cutter - SimpleVideoCutterApp-win-Portable.zip. Simply unzip the file into desired directory and starts from there.

Upgrades

Since version 0.30, Simple Video Cutter uses Velopack framework to automatically manage upgrades. Once new version is published, it will be automatically downloaded and installed during next time application starts. Feel free to visit releases page to manually check whether new version has been published.

Installation of FFmpeg

FFmpeg is required to work with Simple Video Cutter, you can decide to let Simple Video Cutter download FFmpeg automatically or you may also download FFmpeg yourself (FFmpeg can be downloaded for free from FFmpeg release page) and set it's path in the Settings dialog.

Note: see below in case you are going to install portable version of Simple Video Cutter in a directory where users do not have write access.

How to use Simple Video Cutter

  • Open a video file
  • The video playback starts automatically; press space to pause/resume (or click in the video area)
  • You can navigate back and forth through video using timeline control at the botom of the screen. Use mouse wheel (with control key pressed) to zoom in and out the timeline. Mouse wheel without control key scrolls the timeline forward and backward. Press shift key for even faster scrolling/zooming.
  • Select a position and press [ (or click the corresponding button) to mark start of your cut
  • Press ] to mark end of your cut
  • You can also use mouse middle button to mark your start / end of your cut
  • Multiple cuts are supported!
  • Watch out for key frames - read more here
  • Press E (or click 'Enqueue' button) to add task to the queue. Selected portion of the video will be extracted (with help of FFmpeg) and saved in a new file(s).
  • You can inspect pending and running tasks in the tasks list area. Tasks are processed automatically and disappear once completed. Feel free to open next file (and add next tasks) while task is still in progress - they do not interfere with each other and just queue up.
  • Use Previous / Next buttons to quickly open next or previous file in the same directory.

Settings

In the settings window you can adjust some options, especially directory and filename pattern of the output files. Supported variables are:

  • {FileName} - name of the input video file (with extension)
  • {FileNameWithoutExtension} - name of the input video file (without extension)
  • {FileExtension} - extension of the input video file (with dot)
  • {FileDate} - last modification date of the input file (in format yyyy-MM-dd-HHmmss)
  • {Timestamp} - current timestamp (in format yyyyMMddHHmmss)
  • {UserVideos} - shortcut for Environment.SpecialFolder.MyVideos
  • {UserDocuments} - shortcut for Environment.SpecialFolder.MyDocuments
  • {MyComputer} - shortcut for Environment.SpecialFolder.MyComputer
  • {SameFolder} - allows to save files in same folder when original video file is located

Portable installation in read only folder

It is possible to install Simple Video Cutter into a non-writable directly. In this case one has to manually install FFmpeg and configure its path in the settings. Configuration file by default is saved in C:\Users\<username>\AppData\Local\SimpleVideoCutter (which should be writable for end users). Alternatively, the following command line options can be used to specify different location of config file:

  • --configCurrentFolder - in the same folder where exe file is located
  • --configLocalApplicationData - in the AppData\Local folder (this is the default)
  • --configApplicationData - in the AppData\Roaming folder (this means the file is copied when user logs in on another machine in domain environment). Please note this option may be useful only if ffmpeg path points to a shared resource as well (e.g. network drive) or it is expected ffmpeg is always installed in the same place on all machines.

Icons

Contact

Email: [email protected]

simple-video-cutter's People

Contributors

akcansoft avatar bartekmotyl avatar bovirus avatar ingof avatar tbiering avatar tioachan 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

simple-video-cutter's Issues

Set default cut range is required

Thanks very much for good tool.
I am using 0.15.0.0 for my video footage now.
I usually cut front part of mine using "[", but I always have to move to the end and click "]" to cut video.
Is it possible to set default values for "[" at the begining and for "]" at the end just after loading video footage?

One more thing, How about to add auto play on/off option on setting screen? Currently video is auto played when open, and not easy to "[" position while playing..

Very thanks in advance. :-)

Subtiles shown automatically when found

If for a loaded video file corresponding subtitles file can be found as well then these subtitles are automatically shown in SVC.

Expected: subtitles are not shown, even if found.

refactor zoom auto and zoom out to become multiple zoom

At the moment, zoom auto is only capable of doing a single enlargement. On a lengthy movies, making a mistake of selecting exact brief position is quite frequent. The timeline is too dense. This thing can be reduced if zoom buttons can do multiple zoom.

Feature Request: Storage path for SimpleVideoCutter_config.json (for example romaing profiles)

Hi,

in our school IT environment we work with profiles, so the option to specify a path in which the configuration file will be stored is essential. Our users do not have elevated permissions on the PCs, but we should provide the program as a portable APP under C: \ Program Files.

Ideally, the storage location can be defined using a redistributable option so that the SimpleVideoCutter_config.json is stored on a path with write permissions for the user.

webm support?

Will SimpleVideoCutter support webm in a near future?

[Feature request] Close file

It would be helpful if there were a way to close the currently open file, so that the video player would not have a video at all, like when you open the program at first.

This is because you cannot move or delete files video files on windows when they are kept "open" by simple video cutter.

cut video - duration not adjusted

hi
example: i have a video 7min long
when i cut it from 6:10 - 6:30, then it works, and opening it with a video player it really only shows these 20 sec.
but the time stampt starts at 6:10 to 6:30 and in the info it shows the video is in total 6:30 min long

basically i do have some dummy gap from 00:00 min - 6:09 min. why is this empty gab still added? i think the "start point" is not properly working. i did not change any settings in simple video cutter. i used it instantly when i downloaded it. the used file was an mp4 file.

what i usually expect: the video info says the video is now 20 sec long and timestamp of video bar will show 00:00 . 00:20 min duration.

Multiple Audio Track Support

I use shadowplay with the separate audio tracks option on because my microphone is really loud at some points, so seeing support for this would be really nice as I'd like to keep the audio tracks separate

In the screenshot attached, both videos were imported into adobe premiere. The left video is the one edited using this program, on the right is the original file.
2020-07-20 16_48_54-Adobe Premiere Pro 2020 - C__Users_Euonix_Documents_Adobe_Premiere Pro_14 0_dsaf

Problem when cutting AVI files

It seems that after fixing #60 (in release 0.23) there is a problem with cutting AVI files.

Stream map '0:a' matches no streams. To ignore this, add a trailing '?' to the map.

Long Video doesnt show up fully

Hello,
I have a 46GB Video (mp4) that is over 37hours long.
When I load it into Simple Video Cutter, only around 11 hours are loaded in.

Anything Im doing wrong here? Shorter Videos do load well.

Due to the size of it I cannot easily upload the file, but it is a Twitch VoD.
Is there an alternative for me to split it easily/fast beforehand into smaller parts?

Thanks!

Buttons not refreshed when setting selection start/stop

Replication procedure:

  • Select start of selection either by pressing "Set Start" toolbar button or by pressing middle mouse click

Expected: "Set End" button is enabled

Actual: "Set End" button is not enabled

Temporary workaround: click right mouse button (anywhere), it will refresh state of buttons.

Output pattern without extension causes ffmpeg crash

If an output file name (produced from output file pattern) has no extension (e.g. due to mistake in the pattern) then ffmpeg refuses to perform conversion and output file is not saved.

Possible fix: if extension is missing, then always use the same extension as in the original file.

configurable size of preview area popup

in 1920x1080 screen, the popup preview area is too large and annoying while the movie is played. it would be better if this popup is configurable, so people can adjust its dimension.

Feature Request: Add Fields to directly enter Start and End time

Can you please add Input Fields to directly input / select Start Time and End Time.
Selecting Start and End with the mouse is a bit tricky for me.

After entering a Start time in the box the video preview should run from this time.
And after entering an End Time the Preview should play e.g. from the last 2 Seconds to this End Time/Frame an preview should than stop. Would help much!

Thank you for giving us your lovely Simple-Video-Cutter!

distinguishable tickbar

On lengthy movies, it is hard to point an exact brief position, before subsequent click on zoom auto button.

Some apps use different style on tickbar to mark every 1 hour, or 1/2 hour, or 1/4 hour. There are combinations in use: color, length, and width. The simplest form uses different color for regular ticks and common time fractions as above. More stylist app uses 3 different color to distinguish: regular, 1/4, and 1 hour. It also can be applied to tick length and width.

A note on tick length: regular tick can be a form of dot, not bar, so it does not consume too much space.

It is also make sense to combine the three to achieve distinguishable tickbar.

Simple video cutter is not visible, location saved to relative extremes in JSON?

I have to swap monitors around a lot for work (switching HDMI inputs which causes them all to move all over the place) and today I couldn't see the program at all. After some confusion, I figured it was set to a location outside of the viewable area, and I was correct. I opened the JSON and had this line:
"MainWindowLocation": "-32000, -32000, 160, 28",

Once I reset the -32000 values both to 1, it showed up properly (albeit small) on my primary monitor.

Put all icons in 1 toolbars (or in 2 horizontally ROWs)

Currently some menu icons (set start, clear selection,....) are arranged in a vertical toolbar.
I prefer to have such toolbars always horizontally.

Is it possible to add an option to put all icons in 1 toolbar? Or at least in 2 toolbars (at the top) but all horizontally? Maybe as a user option?

Thank you
Peter

Warn if video has no length specified

As learned from #24 it can happen that for some video files LibVLC (and VLC itself as well) returns no length (as there is no length specified in the file). In this case the timeline in SVC does not work correctly.

Expected: there should b a warning for the user when opening such file.

Drag and Drop not working (sometimes)

Hello

I've encountered an issue where drag and drop is not working correctly. It's a coin toss whether or not it's going to work. I have to keep restarting the application until it works.

I'd like to drag and drop single files from Explorer rather than manually opening a file in the application.

What I've tried: First Building the project in Visual Studio and then I ran prepare-dist.cmd (build.ps1) file, re-installing FFMpeg, tried x86 and x64 etc

I run a customized version of Windows 10 Pro 64.

Thanks for any suggestions. Great software.

[Feature request] Basic command line support

It would be useful if the program took the first command line argument as a file that it would immediately open on start, as is generally standard. This way the program would work with "Open With" and drag-and-drop.

[Feature request] Multiple cuts

Some files have more than one section I'd like to take away from a recording. This is especially true of very long single shots of an event or situation that's important e.g. birthday party or wedding.

I pictured the following addition but please discard the idea if it's out of scope.

  1. Under "Enqueue," another option to set selection number with a < and > buttons and a number
  2. Once the right button is pressed, it would advance to [2] and the existing selection would be grayed out
  3. Another start and end sequence can be selected, while the first is static
  4. To modify the first selection, click the left arrow button to return to [1] and make changes.
  5. Once Enqueue is select, all edits would be added to the processing list

Repeat the above process for selection 3, 4, 5, etc.

Mockup:

image

cut selection area is gone after perform cut

Sometimes we have to evaluate the output with real movie player. There is no way to edit the selection area after perform cut: the selection area is gone. we have to repeat the step from the beginning.

Problem when processing mp4 from GoPro

When trying to cut files from GoPro, ffmpeg reports a problem, visible in Simple Video Cutter as:
obraz

The problem seems to be caused by the fact that GoPro saves additional streams into the mp4 file that are not supported by ffmpeg.
(see more here)

Add "Jump to prev/next keyframe"

I prefer to cut videos always at keyframe positions.

As far as I can see there is no necessary "jump to prev/next keyframe" menu in SVC.

Could you add it?

Thank you
Peter

add variable for filename {startframe} or {starttime}

can you please add starttime variable for filenames? (00:00:00,000)
For example {starttime} or {startframe}?

With startframe i can calculate the starttime by myself
I cut several video files with existing subtitle-file (SRT)
so i can also cut the exported range of my SRT-file and add to the cutted video directory

Join several cuts into one video

In #14 support for multiple cuts was implemented. Currently, multiple cuts are saved as separate video files.
It should be possible to save them as a single video file as well.

Define "same as input dir" for output directory

I would like to define the input directory of the video always as output directory of cut work.

Currently users have to define a static directory.

Could you allow the definition of "same as input dir"?

Thank you
Peter

Video not cutting ?

So I load a video , set the part that I want to cut with Start and End and when I click Delete, the marked area just goes unmarked but the part is still there and not cut, whats the issue here ?

How I can port your code to be used in .NET 5.0?

Hello:
I found your repo, which is very good. Now, I want to port your repo to target .NET 5.0.
I am now working on the WinForms part, and I have some technical issues.
I have done this:
I created a WinForms App project, target .NET 5.0, I am using Visual Studio 2019 (Version 16.10.4) on Windows 10.
I installed all necessary nuget packages, except NetStandard.Library, which VS 2019 can’t install it.
I can easily add all toolStrips, like: toolStripTasks, toolStripSelection, toolStripFile, etc.
I also added all toolStripButton, toolStripLable into each toolStrip.
However, when I need to create user control of VideoCutterTimeline.
I think it is a user control, which I can find from Toolbox in MainForm.cs.
I have created another project (Window From Control Library), called. VideoCutterTimeline.
The following is the code of UserControl1.Designer.cs:

namespace VideoCutterTimeline
{
partial class VideoCutterTimeline
{
///


/// Required designer variable.
///

private System.ComponentModel.IContainer components = null;

    /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    protected override void Dispose(bool disposing)
    {
        if (disposing && (components != null))
        {
            components.Dispose();
        }
        base.Dispose(disposing);
    }

    #region Component Designer generated code

    /// <summary>
    /// Required method for Designer support - do not modify 
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
        this.SuspendLayout();
        // 
        // VideoCutterTimeline
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
        this.Name = "VideoCutterTimeline";
        this.Size = new System.Drawing.Size(1296, 71);
        this.Paint += new System.Windows.Forms.PaintEventHandler(this.VideoCutterTimeline_Paint);
        this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.VideoCutterTimeline_MouseDown);
        this.MouseLeave += new System.EventHandler(this.VideoCutterTimeline_MouseLeave);
        this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.VideoCutterTimeline_MouseMove);
        this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.VideoCutterTimeline_MouseUp);
        this.Resize += new System.EventHandler(this.VideoCutterTimeline_Resize);
        this.ResumeLayout(false);
    }
    #endregion
}

}
But I found resource manager part is difficult, as I did some test program according to Microsoft example program, I have never made them works. So I simply comment out all the globalstring part.
I can compile my class library, but when I tried to add the VideoCutterTimeline class, I can’t find it anywhere from Toolbox in MainForm.cs.
From the Toolbox in MainFrom.cs, I can see one VideoView (LibVlcSharp.WinForms), and a pointer.
If you have some free time, please advise how I can make a user control of VideoCutterTimeline in .NET 5.0 and let it can be used by Toolbox in MainForm.cs.
Thanks,

Incorrect selection duration in status bar

Replication procedure:

  • open a video file
  • select a portion of video, preferably short one towards end of video
  • selection duration shown in status bar is incorrect

Additionally, duration is not updated when selections are modified by drag & drop.

Expected:

  • duration shown in status bar is a sum of durations of all selections, updated on every change ("live")

[Feature request] backward frame button & keystroke

There is forward button, but no backward button. If we want to seek prev frame, we have to click the timelime. This is very annoying for lenghty movies. the current frame is too far from the target frame. Moreover, there is no jump button (forward and backward). it would be better if jump buttons is configurable: every definitive seconds/minutes and changeable keystroke.

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.