Coder Social home page Coder Social logo

dfaker / webmgenerator Goto Github PK

View Code? Open in Web Editor NEW
468.0 468.0 30.0 82.49 MB

UI and Automation to cut, filter and join high quality webms, mp4s or gifs.

License: Mozilla Public License 2.0

Lua 2.14% Python 97.38% HTML 0.47%
transition-effects video video-clip video-cliper video-editing video-editor video-processing webm

webmgenerator's Introduction

Hi there 👋

webmgenerator's People

Contributors

dependabot[bot] avatar dfaker avatar dumboluzz 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

webmgenerator's Issues

Pause filter preview

Again, suggestion is the title. Maybe also adjusting speed of the filter preview. I feel like this was something that was in earlier versions that was removed.

Also, is there a way to add a copied filter to another subclip without erasing existing filters?

Subclips section broken after update

Just updated after a long time on ver. 3. The subclips is compressed to a point where I can't see thumbnails or time. Attached a screencap for example. I unzipped in a new folder and the issue remained. Thanks for your help and I apologise if this is too individual of an issue.
Screenshot 2021-10-16 195204

Stream copy bad slicing

If you choose the Stream Copy merge style the cutout segment are not sliced at the correct timestamp. Let me know if u cant reproduce it.

Feature Request: Add presets for common resolutions to Scale filter

I think most people don't use weird non-standard resolutions, so most the time it'll be the usual 16:9 aspect ratio, 360p / 480p / 720p / 1080p and so on.
Personally, I would appreciate some sort of a drop down menu with the common resolutions listed above just to quickly Scale to one of these without having to type it in everytime.
Of course, that would be while keeping the option to enter custom resolutions.
What do you think?

Also, very quick thing but, how about swapping places for height and width boxes in that filter ? Usually we write width first and height second, so it's kinda weird to have height first and width second here.

Drag and drop multiple files to "load file" section + other minor suggestions

Title says it all. Purely a minor convenience suggestion.

Also when playing a file, it might be helpful if the play button switched between play and pause.

Another thing was in the filters tab, maybe having a set of aspect ratios that can be used for crop, or even the ability to save your own crop presets, or other filters. Maybe an export/import filters feature?

Cheers for the program, always impressed with your work.

Subtitles will "stay on" if they are not replaced by a next line

I used a SRT format subtitles on a video using the subtitles filter. I made the subs using Aegisub 3.2.2.
Basically, last line of subs currently on display will remain on screen until it is replaced by another line, instead of disappearing at registered end timing.. Essentially, it's like it doesn't recognize the end timing of subtitle lines.
On webmGenerator v.3.11.3

Error

Hi

I have this error when i launch the program
Capture du 2020-08-24 08-31-23

I dont understand

Can't export a new JSON filter template

To be honest I'm not even sure that this is how it works.
But, to create a new json filter template, we're supposed to arrange our filters how we want them and then hit "export json", and it should let me save the json file to the filterTemplates directory, right ?
Because I'm clicking "export json" and nothing is happening.
I thought it might be because I have WebMGenerator located on my C:\ drive and it might not have had permission without being run as admin or something, but running it as admin doesn't change anything.

Or am I completely mistaken about how I'm supposed to create a new template ?

Text like drawtext is stretched when dealing with stretched 4:3 to 16:9 videos

So I'm not super well versed in everything video format and all that, but basically I have these videos that are 1440x1080 but are being displayed as 16:9 (as they should), the only thing is that when using drawtext, the text will also get stretched as you can see.
Capture d’écran 2021-10-11 192527
Hopefully it's possible to have the text remain consistent even when dealing with that kind of format / resolution 😊

Can't select a font file on v3.10.0

Since updating to 3.10.0, selecting a font doesn't work anymore in the drawtext filter.
When I select my desired font and click "Open", the selection window closes as normal, but the font isn't changed, and stays the default Quicksand. I've tried loading fonts from different locations but it doesn't change anything.
console.txt
debug.log

Windows 11 build 22000.194

Extend subtitle cutter to work with .ass subtitles

I'm not sure if it's normal or not (ass format not yet implemented for example)
But I tried making some ASS subs and they plain didnt work. When launching the encode process, each webm juste "stopped" at half encode completion.

Completed video files do not appear inside finalVideos folder on Windows 11

So everything seems to work fine but when looking into the finalVideos folder, there's nothing there.
Which is weird because the play button next to the converted webms in WebmGenerator to preview them once complete, does work, and you can view them.
They really just don't appear in the finalVideos folder and thus are not accessible, which makes WebmGenerator essentially unusable.

I've tried to see if they were marked as hidden files for some reason and they're not. I use a File Explorer replacement called "Files" and I thought it might be an issue with it rather than webmGenerator, so I looked with regular File Explorer too and the result is the same.

Webm completed successfully.
Screenshot 2021-08-11 210716
Screenshot 2021-08-11 210730
Nothing inside finalVideos folder nor tempVideoFiles.
Screenshot 2021-08-11 210746

Specs:
Windows 11 x64 21H2 build 22000.120

Feature request: Add an "Append to all" button

The "Append' feature is great, but sometimes I really wish there was an "Append to all" feature, like there is an "Apply to all" one. It would have saved me lots of time. Many a time I have realized I wanted to add the same filter to all other cuts without overriding what filters they already had, but then I have to do that manually like: "Append, next one, append, next one, append [...]" x145 😭
Really tedious.

Feature request: Add a "Cancel All" button to current encodes screen

I have been a couple times in the situation where I just launched the encoding for a big batch of encodes only to realize I messed up a filter on all of them or something, and then had to manually click on "cancel" a hundred times over. Well that wasn't very fun to say the least 😂Anyways, do you think it could be possible to implement something like that ?

Some characters don't work properly in drawtext

I know, 90% of my issues are with drawtext 🤣
Anyways.

' doesn't display at all. For example, input don't and it displays dont;
" stops the text that follows from showing. For example, input Hello"World and it displays Hello;
: stops the text before it from showing. For example, input Hello:World and it displays World;

The command line window doesn't exit by itself after closing the program if you use the new Windows Terminal

It stays open with the following text.

2021-09-13 17:16:27,048 [MainThread  ] [INFO ]  CutselectionController destroyed
2021-09-13 17:16:27,125 [MainThread  ] [ERROR]  root.destroy() Exception
Traceback (most recent call last):
  File "K:\WebmGenerator\src\webmGeneratorController.py", line 199, in close_ui
  File "C:\Users\baxter001\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 2062, in destroy
_tkinter.TclError: can't invoke "destroy" command: application has been destroyed
2021-09-13 17:16:27,126 [MainThread  ] [INFO ]  DONE
QUIT

[processus terminé avec le code 1]

Using the traditional Windows CMD works fine but if you use the new Windows Terminal (Preview version in my case) it doesn't close by itself afterwards.
EDIT: I meant, if you have Windows Terminal enabled to be used as default terminal / command line aplication. On Windows 11 build 22000.184.

Custom profiles in configuration.json

It would be cool to be able to add custom encode profiles in the configuration file like so:

{
 "statsWorkers": 1,
 "encodeWorkers": 1,
 "imageWorkers": 2,
 "tempFolder": "tempVideoFiles",
 "tempDownloadFolder": "tempDownloadedVideoFiles",
 "defaultAutosaveFilename": "autosave.webgproj",
 "defaultProfile": "None",
 "customProfiles": [
  {
   "name": "custom profile 420",
   "format": "webm:vp9",
   "maxSize": 10
  }
 ]
}

Constrain video detectors over specific selected periods

Inputting a time frame for where you want scene recognition to occur. Could be helpful if you only need to export clips from a particular area, without needing to scan the entire file.

Sort of related, but I was wondering about arrow keys and if they could be frame back rather than being 5ms. I think it would help ensure files loop between the appropriate start and end without a random scene popping in at the start or end.

Getting FileNotFoundError for some reason

I've been getting this error for some reason. It was working fine till now. I don't remember making any changes to break something. I've attached part of the log below. Full logs here: https://pastebin.com/gii55L5M

Complete Pass 1 Encode Pass 2  ed_1.mp4 0.75
2022-03-24 17:16:38,113 [Thread-6    ] [ERROR]  unhandled CONCAT exception
Traceback (most recent call last):
  File "K:\WebmGenerator\src\ffmpegService.py", line 1004, in encodeWorker
  File "K:\WebmGenerator\src\ffmpegService.py", line 973, in encodeConcat
  File "K:\WebmGenerator\src\encoders\mp4x264Encoder.py", line 133, in encoder
  File "K:\WebmGenerator\src\optimisers\linear.py", line 31, in encodeTargetingSize
  File "K:\WebmGenerator\src\encoders\mp4x264Encoder.py", line 124, in encoderFunction
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'tempVideoFiles\\ed_1.mp4'

Numbered subclips + more suggestions

Since the subclips in the filter tab are numbered, it would be helpful if the subclips on the merge tab correlate. Makes exporting specific clips easier than having to count each subclip yourself.

I was also wondering if there was any benefit to a global filter disable/enable button, maybe on the merge screen. This is likely a personal use case, as I tend to export an unfiltered version of clips, then a second export with filters. This is done easily if I remember to export clips before I go through and add filters, but sometimes i'll either go back and add more subclips, which affects the numbered order of files, or i'll just forget.

Not sure if I've mentioned this before, but when you disable a subclip's filter and click to the next or previous clip, when you click back to that initial subclip the disabled filters reenable. So if I want to go back and turn off filters, I have to go through individually in one direction, and hope that I spent enough time on the subclip for it to load changes on the merge tab. Again, likely specific issues with my own methods, so no pressure if you disregard.

Some minor suggestions are less about usage, but I noticed in the filter options, "synchronization" is misspelled. Also on the main github page, available is misspelled in the Join section. Extremely pedantic on my end.

Thanks for tolerating my posts, your tool is extremely well made and I appreciate your work.

Problem with Load URL

When I use the Load URL button and enter the link to a YouTube video two clips are added but neither work.
Trying to load the URL again works as normal, as it's from the version stored in the temp folder.
This happens nearly every time, sometimes the top clip works as normal on the first download.

Video of the issue: https://files.catbox.moe/pvjqd0.mp4

Log:

2022-03-01 01:33:04,884 [Thread-5    ] [ERROR]  Image worker Exception
Traceback (most recent call last):
  File "C:\WebmGenerator-win64\src\ffmpegService.py", line 74, in imageWorker
    videoInfo = getVideoInfo(cleanFilenameForFfmpeg(filename))
  File "C:\WebmGenerator-win64\src\encodingUtils.py", line 31, in cleanFilenameForFfmpeg
    return getShortPathName(os.path.normpath(filename))
pywintypes.error: (2, 'GetShortPathNameW', 'The system cannot find the file specified.')
2022-03-01 01:33:05,385 [Thread-4    ] [ERROR]  Image worker Exception
Traceback (most recent call last):
  File "C:\WebmGenerator-win64\src\ffmpegService.py", line 74, in imageWorker
    videoInfo = getVideoInfo(cleanFilenameForFfmpeg(filename))
  File "C:\WebmGenerator-win64\src\encodingUtils.py", line 31, in cleanFilenameForFfmpeg
    return getShortPathName(os.path.normpath(filename))
pywintypes.error: (2, 'GetShortPathNameW', 'The system cannot find the file specified.')

[Feature Request] Option to set default folder locations for when file picking

What I mean is that the last remembered location for file picking is shared between all file picking scenarios.
So, if I open WebmGenerator and pick a video to open from my Videos folder, when I eventually go and add a filter that requires to pick a font to use, the file picker will open in my previously visited Videos folder. And vice-versa, next time I open WebmGenerator, when I go to open a video file, it'll open in the directory where I picked my font previously. This behavior creates a lot of unnecessary navigating when picking a video or a font in succession, for example.

Suggestion 1, my personaly preferred one:
Have a setting to set a default folder to open when picking a file depending on the button.
Default location to open for Load Videos, default location to open for fonts...

Suggestion 2:
Make remembering the last folder visited in file picker button specific. As in, Load Videos button will remember its own last visited folder. Font picker for drawtext for example will remember it's own last visited folder as well.

Unneccesary re-encoding

The tool does re-encode video, even though video stream should be untouched. If the contraints like max filesize and resolution allow for it, there can be huge performance gains had by just copying the video stream.

Standalone ffmpeg:
ffmpeg -i INFILE.mp4 -vcodec copy -ss 00:01:00.000 -t 00:00:10.000 OUTFILE.mp4

Add ability to loop videos for grid merge style

Hey, I thought I was doing something wrong for quite a while when using the grid mode, I just intuitively assumed that all clips would loop until the longest clip in the grid played at least once or even up to "Target Length" seconds -- what actually seems to happen is that the video just ends after the duration of the shortest clip. From what I've seen, there are also no filters to loop or repeat slices up to a set duration. Am I missing something?

[Suggestion] Ways to prevent missclicking on "Apply to all" filter button.

I've had the bad experience of missclicking on "Apply to all" filter button and ruining a 50+ batch of webms with different filters each more than one time. Now, that was my fault of course, but I was thinking about how to prevent potential missclicking on that button which is very close to other frequently used buttons. And especially when doing a lot of webms one after the other, it gets repetitive and we are more prone to small errors.

Maybe a confirmation dialog popup on "Apply to all" would be something to consider ?
Or maybe implementing a way to revert the last changes made à la CTRL+Z ?
Or just moving the button itself away. But that would be weird because while it's probably used less often than it's neighbours, it's still part of that same group of action so it makes sense for it to be there.

I don't know, something to think about maybe :)

tkinter EventType

So basically ever since 3.8.7 python has changed how it treads str() for tkinter.EventType
https://docs.python.org/release/3.8.7/whatsnew/changelog.html

So if you debug with a modern version of python pieces of code like:
if (str(e.type) in ('ButtonRelease'))
Will simply not work as indented as str(e.Type) it will only return the position in the enum as a string instead of "ButtonRelease".

Instead change it to:
if (e.type ==tk.EventType.ButtonRelease)

Start by refactoring this issue in
TimeLineSelectionFrameUI

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.