argorar / webmconverter Goto Github PK
View Code? Open in Web Editor NEWGUI for ffmpeg to convert videos to WebM and mp4.
Home Page: https://argorar.github.io/WebMConverter/
License: MIT License
GUI for ffmpeg to convert videos to WebM and mp4.
Home Page: https://argorar.github.io/WebMConverter/
License: MIT License
I wanted to try if I could reduce GIF's file size by converting it to WebM but I discovered that the converter will drop the transparency in progress.
I was able to get it on Shutter Encoder program where the function is set to VP9 with alpha channel enabled on "advanced features" section. I couldn't see what parameters that program was using to achieve it.
Original/ source GIF: https://a.pomf.cat/ucosko.gif
WebMConverter result: https://a.pomf.cat/ensbzy.webm
Shutter encoder result: https://a.pomf.cat/bpasnb.webm
Cheers!
Hi there, your converter looks very cool so we wanna suggest you to check out FastFlix to get some inspirations about features:
Last but not least, a collaboration between both softwares would be great.
Hope that inspires.
If I try to open the program via windows 10/11 search, it would load for a second and not launch the program. Other programs launch fine
Can you possibly support vtt subtitles in the future? I sometimes download youtube videos with subtitles but unfortunately the program throws me errors that avisynth cant read vtt files.
I also embedded the vtt files on the video but it cannot see the internal subs.
I know this is not an easy ask but if you can make future versions of this application not require us to download a redistributable, that would be great.
this is a 27 seconds clip (its about 1 minute but i trimmed it), i putted the size limit as 4 mb
other than the fact that it cutted 1 second from the clip, which is pretty annoying, it just shits itself and does not manage to do it right
log says its 1400 kbps
it says "Restraints are too high!" even tho i resized, trimmed, did everything, and it not only wasnt able to keep it less than 4 mb but surprassed it and cutted out a little bit of video at the end, something is really broken
What the title says.
Windows 10 Education N 64bit
I had the really old version of this (with the old name) for years and it worked fine. Tried updating to this and the speed at which it works is far higher, but most of the clips I make have the audio desynced. Is there a setting to change that can fix this? The videos I put in are just normal Shadowplay .mp4 files.
Not sure what the cause is, sometimes it is creating webms with audio even when audio option is unchecked, and seems to also cause webms to be flagged as having audio too when trying to upload to 4cha/channel even when the source video has no audio to begin with.
Love the utility.
I find that audio is often desynchronized when downloading/loading larger youtube videos. They seem to default to the .webm format. Desynchronized in the 'preview' pane and after final output, although other media players can play them just fine with proper sync.
edit: I've tried enabling the 'fix desync audio' checkbox with no change
I've been using your converter quite a bit, thanks for building it, would be absolutely super if it could convert a whole folder to webm with the desired settings.
I'm sure you've got plenty to do, but for me that would make the tool perfect.
Latest 3.18.2 release.
Only restraint I added was the 3MB file size limit. Not sure why it can't just respect that without going over.
3MB is the limit for blue boards, after all.
Metadata:
encoder : Lavf59.26.100
Stream #0:0: Video: vp9, yuv420p(progressive), 430x800, q=2-31, 1958 kb/s, 23.96 fps, 1k tbn
Metadata:
encoder : Lavc59.36.100 libvpx-vp9
Side data:
cpb: bitrate max/min/avg: 1958000/1958000/1958000 buffer size: 1174000 vbv_delay: N/A
frame= 264 fps=3.6 q=7.0 Lsize= 3719kB time=00:00:11.02 bitrate=2764.1kbits/s speed=0.149x
video:3716kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.064040%
--- FFMPEG HAS EXITED ---
Restraints are too high!
Your output file was encoded successfully, but because of your filesize constraints, it's missing a bit at the end.
Either raise your limit, or lower your resolution and/or bitrate.
Amount of video lost: 1.544944s
In Crop menu (or under Set Dimensions), an option to choose one of the most common aspect ratios (AR) such as 1:1, 4:3, 16:9, 9:16, etc. could be available.
Initial crop box size could be set using the chosen AR and considering input video dimensions instead of some default value.
The crop box AR becomes fixed even when modifying its size via mouse or by typing a height or a width value (changing one value would automatically change the other to keep the same AR).
WebMConverter.exe does not launch and leaves a crash dump file in CrashDumps folder when I launch it through Windows 11's start/search functions.
It works fine when I launch it from the taskbar icon or its shortcuts.
Not a big deal for me but I wanted to report the issue.
I am attaching a couple of .dmp files from the crashes, which I don't know how to read anyway.
Thanks for the work.
Any chance we could get a dark mode setting? My eyes would thank you.
this option would be useful for people who need to convert lots of videos, doing it manually is a pain in the ass
If you have a firewall blocking new connections by default, the program takes a bit to load and when it can't access the internet it throws out this error:
Would be nice to have an option to disable this behaviour. Makes opening the program tedious.
Thank you for your work on this program either way.
Previous issue was closed
#33
But issue still occurs
It messes up Windows 11 if you are dragging and dropping at the moment the window pops up. Restarting explorer.exe doesn't help it. It's especially annoying while making multiple webms.
I'm getting this error while converting to webm, especially with videos that I get from my iPhone.
looks like it's an old bug.
https://gitgud.io/nixx/WebMConverter/-/issues/110
Thanks.
Hello
Under Encoding->General there is a box for a string of text to the metadata of the video.
By default it inserts the source video file name. I always delete the string manually every time as I don't want to use it.
A request is to have some option/tick box to leave it always blank, vs. current implementation.
Maybe even a 3rd option to use the destination file name if someone wants it.
Whatever settings are selected, should be saved permanently.
Cheers.
I made a webm just fine in Xmedia Recode, so I'm not sure what the issue would be. I have AviSynth and ffmpeg installed properly as far as I know. Windows 10, latest webmconverter.
Arguments for pass 1: -f nut -i pipe:0 -an -c:v libvpx-vp9 -pix_fmt yuv420p -threads 4 -slices 2 -metadata title="[EruPii-Raws] Rockman.EXE - 38 [v2][DVD 640x480 x264-10bit AC3][28556F64]" -lag-in-frames 16 -auto-alt-ref 1 -b:v 1090k -qcomp 0 -fs 4194304 -tile-columns 1 -row-mt 1 -pass 1 -passlogfile "C:\Users\\AppData\Local\Temp\e8aaa44a-7b50-4cfd-83f6-fd8026d6435a" -f webm -y "NUL"
Arguments for pass 2: -f nut -i pipe:0 -an -c:v libvpx-vp9 -pix_fmt yuv420p -threads 4 -slices 2 -metadata title="[EruPii-Raws] Rockman.EXE - 38 [v2][DVD 640x480 x264-10bit AC3][28556F64]" -lag-in-frames 16 -auto-alt-ref 1 -b:v 1090k -qcomp 0 -fs 4194304 -tile-columns 1 -row-mt 1 -pass 2 -passlogfile "C:\Users\\AppData\Local\Temp\e8aaa44a-7b50-4cfd-83f6-fd8026d6435a" -f webm -y "J:\Anime\Megaman NT Warrior\[EruPii-Raws] Rockman.EXE Series+Movie [DVD 480p x264-10bit AC3]\01 - EXE\[EruPii-Raws] Rockman.EXE - 38 [v2][DVD 640x480 x264-10bit AC3][28556F64].webm"
--- CREATING AVISYNTH PROXY ---
[avisynth @ 00cce4a0] unknown AviSynth colorspace -1610285048
C:\Users\\AppData\Local\Temp\tmp7D.tmp: Unknown error occurred
[nut @ 0000023ee7f0b640] No main startcode found.
pipe:0: Invalid data found when processing input
--- FFMPEG HAS EXITED ---
--- ENTERING PASS 2 ---
--- CREATING AVISYNTH PROXY ---
[avisynth @ 0266e4a0] unknown AviSynth colorspace -1610285048
C:\Users\\AppData\Local\Temp\tmp7D.tmp: Unknown error occurred
[nut @ 0000021dc70ab880] No main startcode found.
pipe:0: Invalid data found when processing input
--- FFMPEG HAS EXITED ---
ffmpeg.exe exited with exit code 1. That's usually bad.
If you have no idea what went wrong, open an issue on GitGud and copy paste the output of this window there.
Hi! Thanks for maintaining this fork.
I see this was already brought up by another user but got closed without follow-up.
Issue: tried converting a video recording with audio enabled but audio was desynced.
Re-encoding the source footage with another ffmpeg-using program, then converting the re-encoded file with Webmconverter results in properly synced audio (but at the cost of some video quality loss due to the first re-encode).
This occurred with footage recorded by Nvidia Geforce Experience. I have tested with other videos, which seem to get converted with audio properly synced. So it could be related to the codecs the Nvidia utility uses? I have included mediainfo codecs.
updated the program today and I get an error when trying to two-pass encode
Arguments for pass 1: -f nut -i pipe:0 -an -c:v libvpx-vp9 -pix_fmt yuv420p -threads 8 -slices 1 -lag-in-frames 16 -auto-alt-ref 1 -b:v 852k -qcomp 0 -fs 4194304 -aq-mode 4 -row-mt 1 -tile-columns 6 -tile-rows 2 -pass 1 -f webm -y "NUL"
Arguments for pass 2: -f nut -i pipe:0 -an -c:v libvpx-vp9 -pix_fmt yuv420p -threads 8 -slices 1 -lag-in-frames 16 -auto-alt-ref 1 -b:v 852k -qcomp 0 -fs 4194304 -aq-mode 4 -row-mt 1 -tile-columns 6 -tile-rows 2 -pass 2 -f webm -y "X:\[file directory].webm"
--- CREATING AVISYNTH PROXY ---
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, nut, from 'pipe:0':
Metadata:
--- FFMPEG HAS EXITED ---
--- ENTERING PASS 2 ---
--- CREATING AVISYNTH PROXY ---
encoder : Lavf56.40.101
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 404x720, 30 fps, 30 tbr, 61440 tbn
Stream #0:1: Audio: pcm_f32le (PFD / 0x20444650), 48000 Hz, stereo, flt, 3072 kb/s
Cannot write log file 'ffmpeg2pass-0.log' for pass-1 encoding: Permission denied
Guessed Channel Layout for Input Stream #0.1 : stereo
Input #0, nut, from 'pipe:0':
Metadata:
encoder : Lavf56.40.101
--- FFMPEG HAS EXITED ---
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 404x720, 30 fps, 30 tbr, 61440 tbn
Stream #0:1: Audio: pcm_f32le (PFD / 0x20444650), 48000 Hz, stereo, flt, 3072 kb/s
Error opening file ffmpeg2pass-0.log.
Error reading log file 'ffmpeg2pass-0.log' for pass-2 encoding
how do I fix this?
OBS 28.0.3 recordings with Color Range set to full looks fine in preview, but the resultant conversion is dark. Handbrake handles the colors correctly, but has limited editing options.
Encoding settings in WebMConverter: High quality mode, Constant mode, 3MiB Size limit, VP9.
OBS advanced video settings: NV12 (8-bit, 4:2:0, 2 planes), Color space Rec.709, Color range Full/Limited.
Recording in limited range would be a workaround if not for the resultant conversion being noticeably brighter than the source mkv.
Original image the ~5 second recordings are based on
Limited range recording snapshot after webm conversion
Full range recording snapshot after webm conversion
May be related to this one #27.
Similar to that issue, after you make a crop and add a resize, the dimension displayed will have 2 extra pixels
How to reproduce (I used a 3840x2160 mp4 video):
Very impressive work you've done with this so far. If I may make some suggestions:
Hello:
I found this repo, and I would like to take a try.
I downloaded the source code, updated all nuget packages, and try to run this.
My OS is Windows 10 (Version 21H1)
But I got this run time error:
You need Microsoft Visual C++ 2010 (x86) for the full experience.
The URL in the message box for downloading Microsoft Visual C++ 2010 is not working.
And I can't install even the URL is good one, as I am using Visual Studio 2019 (Version 16.11.3) and I already installed a lot of C++ packages, so I can't install any older version of C++ packages.
Please advise on how to fix this?
Can you update the C++ requirement to the latest version, so I don't have to install any C++ packages.
Thanks,
Love this app.
Any chance of getting some audio normalization options?
Hello:
I can run avisynth script like this:
C:\Videos\Test>type Version.avs
version()
C:\Videos\Test>VirtualDub64 Version.avs
Let me know how I can do this with the repo?
Thanks,
When I ran the updater, a screen flashed momentarily that said "WebM for r$tards", where the $ was an "e". I suggest it would be beneficial to change this term, as it is not an acceptable term in today's society, at least in the US. Thanks
I don't understand it but it did not happen before the recent updates.
Please implement an option to create grid videos.
Sometimes you may want to change the rate of a 60fps video to lets say 400%, that would result in a 240fps video that's is often way too big. The old Webm for Retards had an option to set a target framerate to whatever you wanted, so you could just set it to like 30fps in this case and call it a day.
I'm aware there's this "interpolate" option, but I'm not sure if it works for a lower target framerate. If it does, it doesn't work well, since I tested it on this video I was trying to convert and it was giving me an encode time of only 1.5-2fps on a Ryzen 3600, while default was 70-80fps.
It takes forever if the video is long and has many subtitles, which you won't even use.
It would be nice to be able to skip/disable loading subtiltes.
Thanks for the work.
im trying to make a 50 second 4mb file but i cant get the filesize below 8mb even if i set the bitrate manually to 40.
setting filesize it cuts off like 25 seconds off it.
I can't even add videos that I know previously worked to make webms. Is this a problem with the program or my PC?
Here's the detailed log.
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.ArgumentException: The path is not of a legal form.
at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
at System.IO.Path.InternalGetDirectoryName(String path)
at WebMConverter.MainForm.ValidateInOutput()
at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9181.0 built by: NET481REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
WebMConverter
Assembly Version: 3.31.1.0
Win32 Version: 3.31.1.0
CodeBase: file:///C:/Users/User/Desktop/PC%20Tools/WebMConverter-3.24.0/WebMConverter.exe
----------------------------------------
FFMSSharp
Assembly Version: 3.0.2.0
Win32 Version: 3.0.2.0
CodeBase: file:///C:/Users/User/Desktop/PC%20Tools/WebMConverter-3.24.0/FFMSSharp.DLL
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9172.0 built by: NET481REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9181.0 built by: NET481REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9181.0 built by: NET481REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Microsoft.WindowsAPICodePack.Shell
Assembly Version: 1.1.0.0
Win32 Version: 1.1.0.0
CodeBase: file:///C:/Users/User/Desktop/PC%20Tools/WebMConverter-3.24.0/Microsoft.WindowsAPICodePack.Shell.DLL
----------------------------------------
Microsoft.WindowsAPICodePack
Assembly Version: 1.1.2.0
Win32 Version: 1.1.2.0
CodeBase: file:///C:/Users/User/Desktop/PC%20Tools/WebMConverter-3.24.0/Microsoft.WindowsAPICodePack.DLL
----------------------------------------
Newtonsoft.Json
Assembly Version: 12.0.0.0
Win32 Version: 12.0.3.23909
CodeBase: file:///C:/Users/User/Desktop/PC%20Tools/WebMConverter-3.24.0/Newtonsoft.Json.DLL
----------------------------------------
System.Numerics
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
----------------------------------------
System.Runtime.Serialization
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Serialization/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll
----------------------------------------
System.Data
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9191.0 built by: NET481REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
I get repeated frames at the very beginning of a both a preview and an encode. The looped frames only happen on the first loop of a preview (after that it's smooth) and they're always in the actual encoded file. This behavior happens before any setting are applied and with a fresh install/update.
How to reproduce:
Add a crop of any size and click confirm. double click the crop icon to edit, move the selection and you will see that the size is now bigger (usually by two pixels). This process can be repeated and the size will keep increasing.
https://www.virustotal.com/gui/file/004b2e4912a66db48360ef0591aac6a82b1871ef4c5d44d8a13b920ac81e9e11
This also applies to previous releases atleast from 2020 since that was the one i was still using, also yes previous releases also gets flagged.
i noticed i have a file that is 1480x1080, you could reduce that resolution by 35% so it becomes 962x702, as bitrate is more important than resolution
also add some sort of option to not cut the video, as i have files that got 20 seconds cut out making it basically useless as it cuts a bunch of context gets cut out
Hello. First of all, I like your converter. But there are a few notes.
"Arguments" field do not work as expected, manual editing does not affect the result.
The converter cannot find a video track with the V_AV1 codec.
It would be nice to have an Unsharp filter.
And since there is youtube-dl and ffmpeg, you can add the option to download only a specific part(or close to it, depending on the keyframe) of the video. It would be useful.
Thank you.
if you convert to mp4, you still can't upload them to twitter anything you can do about that?
The application doesn't seem to have the latest ffmpeg running so we are missing out on the latest version of libvpx which is
https://chromium.googlesource.com/webm/libvpx/+/refs/tags/v1.12.0
Hello. Fine tool you have here. I consistently crash when using the trim tool to playback certain parts to get the right clip. Windows 10 64 bit.
Hi there. I love using this tool to make quick edits of gameplay clips to send to friends and sometimes I desire the ability to make part of the clip play in slow-motion, but from what I can tell, the Rate effect can only be applied to the entire clip, and not just a small section of it.
While I'm aware this tool is (or was) just really meant to easily make small videos for posting on various Malaysian basket weaving websites, and turning this into a full-fledged video editor might be out of scope, but this would be a handy reason to not open a whole video editing suite just for quick clip editing.
Ideally, one could simply specify a From and To field in the Rate controller, to make it apply from and to the specified part of the clip. (I could see this being an issue with clips that have been Trimmed already as maybe the program is not aware of the new clip length until after conversion?)
The subtitles and the video are not in sync. Example using this YouTube video:
Scrrencap of video encoded using WebMConverter
It's not necessary to encode the video, it can also be seen in the preview. This happened converting to both webm
and mp4
.
As you can see the new video is speed up, the original frame showing at 4:00 is now shown at 3:50, if you go to the 4:00 timestamp of the new video it has the same subtitles as the YouTube one. It seems like the cause of this bug is the new video being faster than the original which makes the timing of the subtitles inaccurate.
Using default arguments for mp4 with crf
of 30, high quality mode enabled. Full arguments:
-an -c:v h264_nvenc -pix_fmt yuv420p -threads 12 -slices 4 -lag-in-frames 16 -auto-alt-ref 1 -qmin 28 -crf 30 -qmax 32 -qcomp 1 -b:v 0
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.