Comments (37)
I'll see about adding FFV1 in the next update.
For now there are only the presets default
, light
, medium
, heavy
for denoising.
But you can select Denoise Heavy
and press the Script button and change the value of threshold
and steps
in vaguedenoiser=threshold=6:method=soft:nsteps=5
.
Here are more details on the filter:
https://ffmpeg.org/ffmpeg-filters.html#vaguedenoiser
Then press the Run button.
from axiom.
from axiom.
from axiom.
from axiom.
from axiom.
from axiom.
....so, still planning on adding lossless coded FFV1? Or nah? Coz the latest Alpha, I don't see FFV1 anywhere in the MKV container option.....also while we're at it, any plans on the other lossless video codecs? Like LAagarith, Utvideo, MSU and Huffyuv?
And what about more channel support for FLAC? I notice there is only 4 options - source, stereo, mono and 5.1 - I believe FLAC supports more than just these 4 options.....
I have a huge ass 500GB RAW footage I would like to transcode to lossless format for both audio and video for archival and storage purposes and to use as the master.......and it would seem you do not offer lossless video code, but do offer FLAC which is lossless audio...what's going on there? Which we're on the lossless audio codec subject here, if I pick source for FLAC, does that mean it would also transcode any and all spartial, ie fake channels in or leave those out as well, like what handbrake does as it doesn't support 7.1 nor fake channels?
Yes I could transcode to x.264 with a constant rate factor of zero, but that isn't exactly lossless.....as I experienced this with handbrake and I can still see some loss in quality in various places if I look hard enough....plus handbrake down coverts the full RGB colourspace to 4:2:0 whatever, which is also not a lossless transcode....
from axiom.
from axiom.
from axiom.
The reason it's missing some lossless codecs is because the program began as a very simple webm converter and I started adding the more popular codecs over time. A popular combination I've seen is MKV with x265 10-bit / FLAC.
Ah I see, thought you were trying to replace the many programs here: https://github.com/amiaopensource/ffmpeg-amia-wiki/wiki/3)-Graphical-User-Interface-Applications-using-FFmpeg which are now basically out of date or appear to be abandoned....except Handbrake - that seems to still be in active development, except it doesn't really have as much options as I would like, such as lossless video codec FFV1.....they appear to mainly focus on the x264 and the new x265 codecs coupled with probably lossy AAC audio codec, though they do have FLAC available to use if you're keen on lossless audio transcode.
I will have to ask the FFmpeg devs more about this.
Do please get back to me on that whatever the reasoning is, but yeah, according to that link, 7.1 should be supportable....
I will work on adding FFV1, Huffyuv, and Lagarith in the next release in a few days.
What about MSU and Utvideo?
I have added FFV1 and released a new version 1.5.3 for you to test.
Thanks, will give that a whirl....
I don't know if 2 Pass gives better quality, but I see it used here https://avpres.net/FFmpeg/im_MKV.html
Usually more than one pass gives a better quality but unless you have the patience to wait or and doing it on like less than 20GB files, but in this case since all codecs is lossless which means you can't really get any better quality than the original input, the only thing that would probably change is the file size, being slightly smaller....and that slightly, even if it's just a few megabytes I would happily wait to do a two or more pass of it....since this is for archiving and storage purposes after all anyways, so there's no rush to get this out as quickly as possible.... But I'll do both, one with one pass and the other with two pass to see if there is any difference in file size....
I've had to hardcode the FFV1 version 3 Parameters to default values. https://trac.ffmpeg.org/wiki/Encode/FFV1
Of course, naturally you would want the latest version.....
from axiom.
I've only used Handbrake and Avanti a few years ago, but haven't tried the others on that list. I've been developing Axiom as I learn C#, and use it to batch convert videos for my own projects. And it's great to see other people have used it for their work.
I used to keep multiple webm and mp4 FFmpeg scripts in a text file that I would copy paste and modify to convert videos, but I thought wouldn't it be much easier if I made a program that would generate the scripts for me.
I tried to focus on a UI that sets the correct dropdown menus for each codec, to prevent from choosing an incompatible setting on accident. And Auto Quality mode, which uses FFprobe bitrate detection, so that if someone doesn't know the correct settings they can leave it on Auto and still get a good encode.
I will also see about adding Utvideo, but I don't see MSU listed in the FFmpeg codecs.
I read that the pixel format for FFV1 should be yuv422p10le
, so I set it as the default, but you can change it to anything you need.
I've fixed a few bugs in the latest version 1.5.3.3. Let me know if you come across any or if the program generates any wrong commands in the script. It should be becoming very stable now.
from axiom.
but I don't see MSU listed in the FFmpeg codecs
Hmmmm, it seems to be Proprietary from here: www.compression.ru/video/ls-codec/index_en.html wikipedia: https://en.wikipedia.org/wiki/MSU_Lossless_Video_Codec so it doesn't seem to be associated with ffmpeg which probably why it's not in its codecs.... I only got that codec from reading various videohelp forum topics where they were having an argument on which lossless video codec was best...haha
Default pixel format is fine as long as there are options to change to something else if your source material is RGB, for example.
FFMPEG isn't multithreaded is it? Otherwise it's gonna take a while to transcode a 100GB+ file......on a single core/thread on a multicore CPU.....pegged at 100%.....whilst all other cores are sitting idly by, unless you managed to overclock your cores to like over 10Ghz, preferably 40Ghz to compensate using a single core on an 8 core CPU that's rated for 5Ghz each, assuming you've managed to get it stable at this high of a clock rating.....hah.... I've only done left Handbrake to digest such big files..... Ah I guess I'll find out when I transcode to FFV1....
I guess while you're on this, may as well add every other lossless codec possible that can be transcoded in ffmpeg, whether by itself or if it requires third party files to make it happen(maybe ffmpeg needs third party files to transcode MSU lossless codec?), for thoroughness. ☺hahaha. ..
from axiom.
I've updated the Pixel Formats for all codecs in v1.5.4.0. Some codecs are limited in formats, but FFV1 can use many.
I believe it is multithreaded, but may depend on the codec. In the Settings Tab
in Axiom, look for Threads
dropdown menu. Select the amount your CPU has, or select all
. The optimal
option -threads 0
lets FFmpeg decide but sometimes it's not as fast. You will see the result generated in the Script window.
For x265
, VP9
, AV1
, the encoding takes a really long time. With FFV1
I would recommend testing the quality on a small piece of the video, maybe 1 minute, using Cut
under Format Tab
-ss 00:00:00.000 -to 00:01:00.000
(Hours:Minutes:Seconds.Milliseconds).
For now I'd only want to add the most popular lossless codecs so not to clutter up the menus with too many options.
from axiom.
Thanks, now to get my other computer working again which has the file(s) I need to transcode with.....windows updates seems to have broken the computer and it now gets stuck at "Personalizing Settings (Not Responding)" with a black background screen and has been like that for the past 3 days....so it doesn't look like it's gonna be loading anytime soon if it's been hanging for 3 days like that! hahahaha ...any ideas? :P Bah, I won't pull you into this problem of mine - you probably already got heaps to deal with already; I guess I'll figure this one out myself..... hahaha
For now I'd only want to add the most popular lossless codecs so not to clutter up the menus with too many options.
Ok fair enough. ☺
from axiom.
I'm unsure how to fix that windows problem. There seem to be some answers online. I read in here someone pressed Ctrl+Alt+Delete and were able to sign out and restart and it fixed it. Maybe you could also start in safe mode and see if it passes the Personalize Settings screen.
from axiom.
Yeah, I can boot into safe mode but it's not quite same as using it normal mode....plus my mouse is really sensitive without razor synapse running and can't run that without internet connection.....oh and I'm on windows 7 btw....not 10. ☺
Also that rundll32.exe pnpclean.dll,RunDLL_PnpClean /DRIVERS /MAXCLEAN
doesn't work anyways because I get a windows saying "There was a problem starting pnpclean.dll The specified module could not be found."
Hmmmm.... :|
from axiom.
Take a look here. Be careful not to corrupt your registry when editing it. Also if you have the Windows 7 disc, run a startup repair.
http://www.justinswan.com/windows-7-stuck-on-personalized-settings-for-windows-desktop-update.html
https://www.sysprobs.com/fix-temporary-profile-windows-7
I'll let you know when I add more codecs to the program.
from axiom.
I've added HuffYUV
Codec, check the latest build. Also if you use FFV1
Lossless, make sure it selects yuv422p10le
, a bug was making it accidentally default to yuv422p
in the last version.
from axiom.
Take a look here. Be careful not to corrupt your registry when editing it. Also if you have the Windows 7 disc, run a startup repair.
http://www.justinswan.com/windows-7-stuck-on-personalized-settings-for-windows-desktop-update.html
Sorry, the computer decided to no longer cooperate with me....hah....took a while to figure out that clearing CMOS fixed that.....
No it doesn't look like that fixed it, unfortunately......it still halts at the "Personalizing settings" but without the (not responding) part but at least get a default background, instead of the black one....maybe I should have backed up the registry.......before deleting stuff.....and startup repair disc just says my windows is not compatible.....rip......
I've added HuffYUV Codec, check the latest build. Also if you use FFV1 Lossless, make sure it selects yuv422p10le, a bug was making it accidentally default to yuv422p in the last version.
Doesn't the colour profile also depends on the source material? Because if source is YUV444 or RGB, then yuv422p10le would be a lossy transcode which would be ironic if you intended to transcode to a lossless format for the purpose of preserving original material quality....
from axiom.
You're right. For FFV1, which color profile do you think is best to set as default?
bgra
yuv444p
yuv444p10le
Here's a list of the supported profiles for that codec https://pastebin.com/raw/7V82kQ49
from axiom.
Whoa, that's a lot! Is it possible that your program can auto detect the colour space and pick the correct equivalent by default? That would probably be the best choice for default; because then an average joe who doesn't know a thing about all these technical jargon could go "ok, I guess I'll just let the program best choose my ideal settings for me. " or add tooltips what their use case with examples....
Speaking of which, are you able to add in various transcode profiles, just like how handbrake has it on theirs so an average joe could just click on a profile that reads like what he thinks is acceptable and just go with that and all the guess work is done for them? For example have a transcode profile that's fit for uploading to youtube in various resolution options or a transcode profile that's best for viewing on mobile devices, etc., just take a look at what the authors of hanbrake has done to theirs....
from axiom.
I'm not able to find the FFprobe command to detect pixel format or color space, I'm not sure if it's in the file properties, so it's not able to auto detect.
I could possibly make more Preset Profiles with extending dropdown menu levels.
from axiom.
I'm not able to find the FFprobe command to detect pixel format or color space, I'm not sure if it's in the file properties, so it's not able to auto detect.
Hm, it would have to be, otherwise how else would MediaInfo be able to achieve this? What does the current "auto" option do in 1.5.8-Alpha? Is that an attempt of your own auto-detect and apply appropriate pixel format or colour profile?
I could possibly make more Preset Profiles with extending dropdown menu levels.
Yes that'd be most welcomed!
Also, back to my own problem, managed to fix it by loading last known good configuration.....hah.....but thanks for trying though! ☺
from axiom.
I will have to ask the devs or people more knowledgeable about FFprobe to find out the command to get that info. The current auto option just leaves the command blank, which allows FFmpeg to choose for itself, but sometimes it chooses one that makes the quality worse. That's why I force it to select yuv420p on most formats.
If you want to open an issue titled something like "Add more transcode profiles", we can post more about it in the new thread and keep this thread for FFV1 and Lossless codecs.
from axiom.
The current auto option just leaves the command blank, which allows FFmpeg to choose for itself, but sometimes it chooses one that makes the quality worse. That's why I force it to select yuv420p on most formats.
AHhh...
If you want to open an issue titled something like "Add more transcode profiles", we can post more about it in the new thread and keep this thread for FFV1 and Lossless codecs.
Sure!
from axiom.
Hm, so I'm doing my transcode on version 1.5.8-Alpha build and notice that in FLAC, there isn't a compression settings.....and I know FLAC has 9 levels of compression(from using another tool that converts audio files), the highest giving you the smallest file but takes longer to do or the lowest that gives the biggest file but takes the quickest time if you are in a hurry.
Where is this option? There are probably other lossless audio codecs that also provide a compression level that I've not used yet, what default does FLAC be on with your frontend gui?
As for colour space, since my footage was taken in fraps, using the uncompressed box checked, my test sample is in RGB and the only RGB option there is is "rgb48le", I think.....should have probably researched all those profiles(From your raw pastebin) before clicking on one that looks like it will be it....hahaha facepalm.png
from axiom.
Hmmm, supposedly fraps footage are either yuvj420p or bgr24 (someone mentioned bgra?) if you record with lossless RGB checked, both in REC. 709; according to this thread: http://forum.doom9.org/showthread.php?p=1556914
from axiom.
I think I can add a new compression level slider or dopdown menu for FLAC. I'll release it in the next update soon.
-compression_level
0
-12
, default 5
.
Opus also uses it, 0
-10
.
from axiom.
I've added FLAC
and Opus
Compression Level settings in the latest version v1.6.1.0.
Let me now how it works.
from axiom.
-compression_level 0-12, default 5.
Oh, there were a few more levels above 9 that dBpoweramp failed to tell me about....? huh....there is no way to pull this information once the file is transcoded is there? Like pick up what compression level was used for encoding the flac codec...?
Opus also uses it, 0-10.
Oh, that's new...never would have thought a lossy format to use a compression setting other than bitrate to derive your desired file size......interesting......
So I had done some tests on the older 1.5.8 version and here are the results for 2pass vs. 1pass:
https://i.imgur.com/u6Stdj8.png
CPU utilization doesn't seem to be strict because none of my 12 workers are pegged to 100% when I encode a 300GB file:
https://i.imgur.com/s25NiUn.png
And changing thread count doesn't seem to do a thing either: https://i.imgur.com/afONWpf.png - I pick one thread thinking it would peg only one core of my hexacore CPU, but nope, uses all 12 threads inefficiently........but at least it spread the load.......maybe ffmpeg is single threaded and not multithreaded and thus windows is trying to distribute the load evenly on all 12 threads, as it was only handbrake that brought multithread feature to boost efficiency? hmmm...
from axiom.
I think FLAC
compression 10-12 might be new, I read some old posts where it only went to 9.
And Opus
compression might only be for VBR -vbr on
, I will have to do some more testing and compare file sizes.
For FFV1
, I tried using the color profile bgr24
but gave me the error:
Incompatible pixel format `bgr24' for codec 'ffv1', auto-selecting format 'bgr0'.
rgb48le
must have increased the size. I will try to ask the devs what color profile should be used when converting from bgr24
.
For threading, I read this post here, they say,
"threads do not do a good job of utilizing all the cores, the hyper-threads do not get used at all."
You might want to try -threads 0
or optimal
in the dropdown menu. I will have to look more into it, people have even told me to remove -threads
all together.
from axiom.
I guess if you want to clean it up a bit more, you could alphabetize the supported profiles, so it looks like this:
bgr0 bgra gbrap10le gbrap12le gbrap16le gbrp10le gbrp12le gbrp14le gbrp16le gbrp9le gray gray10le gray12le gray16le gray9le rgb48le rgba64le ya8 yuv410p yuv411p yuv420p yuv420p10le yuv420p12le yuv420p14le yuv420p16le yuv420p9le yuv422p yuv422p10le yuv422p12le yuv422p14le yuv422p16le yuv422p9le yuv440p yuv440p10le yuv440p12le yuv444p yuv444p10le yuv444p12le yuv444p14le yuv444p16le yuv444p9le yuva420p yuva420p10le yuva420p16le yuva420p9le yuva422p yuva422p10le yuva422p16le yuva422p9le yuva444p yuva444p10le yuva444p16le yuva444p9le
and not this:
yuv420p yuva420p yuva422p yuv444p yuva444p yuv440p yuv422p yuv411p yuv410p bgr0 bgra yuv420p16le yuv422p16le yuv444p16le yuv444p9le yuv422p9le yuv420p9le yuv420p10le yuv422p10le yuv444p10le yuv420p12le yuv422p12le yuv444p12le yuva444p16le yuva422p16le yuva420p16le yuva444p10le yuva422p10le yuva420p10le yuva444p9le yuva422p9le yuva420p9le gray16le gray gbrp9le gbrp10le gbrp12le gbrp14le gbrap10le gbrap12le ya8 gray10le gray12le gbrp16le rgb48le gbrap16le rgba64le gray9le yuv420p14le yuv422p14le yuv444p14le yuv440p10le yuv440p12le
I think FLAC compression 10-12 might be new, I read some old posts where it only went to 9.
This is their official site: https://xiph.org/flac/documentation_tools_flac.html and they make no mention of levels 10 to 12.....only -0 to -8 which is 1 to 9 in human speak.....hah...
And Opus compression might only be for VBR -vbr on, I will have to do some more testing and compare file sizes.
Heh, with lossy, you don't really wanna add additional compression to it not unless enjoy the metallic robotic sound artifacts of low quality audio streams! But, I guess different strokes for different folks, some don't mind this and others do; but at least Opus is more effecient than either AAC, AC3 and MP3 combined together so at the same bitrate level, Opus would be better but media info doesn't always display this for some reason...
rgb48le must have increased the size. I will try to ask the devs what color profile should be used when converting from bgr24.
Hmmm, I suspected so too, let me know what they say. ☺
You might want to try -threads 0 or optimal in the dropdown menu. I will have to look more into it, people have even told me to remove -threads all together.
Yeah I'll give those a try next.
from axiom.
I'll look into sorting the color profiles. I copy pasted them straight from ffmpeg codec info output.
Enter this in command prompt with any codec name to see the info ffmpeg -h encoder=libx264
.
Here's info on the FLAC
compression level 0-12. https://ffmpeg.org/ffmpeg-codecs.html#Options-6
I'm thinking maybe it really is 1-9, but the FFmpeg devs have normalized it to 0-12 with an algorithm for their coding purposes. Or the extra levels are really just 9 with additional flags -e
, -p
, -ep
. I found a thread about it here.
I tested Opus
compression level, but it makes no difference in file size when turned on or off with CBR. I've only seen it used with VBR, so I'll probably have it enabled just for that in the next update.
from axiom.
Now this is more like it! https://i.imgur.com/VGedp9D.png I chose a small 200MB file I had lying around and transcoded that using the UHD Disc preset setting and ensuring the thread option is set to optimal in the dropdown menu.
Hm, which begs the question, why don't you just force it on optimal setting so the transcode always work as efficiently as possible if the other settings do jack all? hahaha....
from axiom.
I'll look into sorting the color profiles. I copy pasted them straight from ffmpeg codec info output.
Enter this in command prompt with any codec name to see the info ffmpeg -h encoder=libx264.
Ahh.
Here's info on the FLAC compression level 0-12. https://ffmpeg.org/ffmpeg-codecs.html#Options-6
I'm thinking maybe it really is 1-9, but the FFmpeg devs have normalized it to 0-12 with an algorithm for their coding purposes. Or the extra levels are really just 9 with additional flags -e, -p, -ep. I found a thread about it here.
Hmmmm, interesting.....
So, I did another test and found out that setting the threads to "all" in the dropdown menu also pegs all cores and threads to 100%, then I changed the preset to something else, say your archive preset under UHD and notice that using the same "all" option for thread, it doesn't peg all the available CPU power you have, but hovers at around 50%.......
Perhaps it's the encoder used to encode FFV1 isn't multithreaded, but the one used for x264 and x265 is.....?
You can just take a look at the picture, I've commented it inside....
from axiom.
Optimize Preset
I will look into which codecs and multi-threaded and which aren't. I'll also adjust that preset and others to set the resolution size for UHD and Blu-ray.
The scaling options get complicated.
Size
The Size dropdown menu is set up to handle Widescreen videos by default. If your input video is something like Full Screen 640x480
, select Aspect Ratio 4:3
and you'll see the width and height change in the textboxes.
I believe Widescreen videos should be scaled width first, height auto
(-1
or -2
) -vf scale=1280:-2
. That way if you scale a video that's Ultra Wide 1920x800
to 720p
, it will automatically calculate the height 1280x533
. (That ratio is actually 2.40:1
, I need to add it.)
Full Screen should be scaled height first, width auto
, -vf scale=-2:720
. You can upscale a video that's 640x480
to 720p
960x720
. If it was scaled height auto
I'd have to add more width settings like 960
, 800
, 640
. I just keep the standard widths 1920
, 1280
, and heights 1080
, 720
, 480
, etc.
I may have to redesign how this all works to make it easier.
Aspect Ratio
I wouldn't even use the Aspect Ratio dropdown menu unless you want to force a video to a new ratio, or your input is Full Screen. Using -aspect
sets a container flag with without having to re-encode the video. If you accidentally select 16:9
and your input video is 1920x800
instead of 1920x1080
, it will stretch it vertically.
If you're resizing, just use Size dropdown menu -vf "scale=1280:-2"
, and leave Aspect Ratio on auto
, and it will not use the command -aspect
and will always be the right aspect from the original.
Format
I need to add another menu called Format
with options Widescreen
, Ultra Wide
, Full Screen
to further fine tune the options, so the wrong ones aren't accidentally selected.
from axiom.
In the latest update, I added a Screen Format dropdown menu.
Select if your video is Widescreen or Full Screen, and it will automatically set the Size width and height when you use a Size Preset like 4K
, 1080p
, 720p
, etc.
Maybe I will have it use the actual with instead of calculating it with auto.
Use the Aspect Ratio menu if your input video ratio different that your output video's resolution. So if you're doing an input 1:1
to output 1280x720
, set Aspect to 16:9
or else the input video's 1:1
will carry over will come out square.
You can also use Aspect if you want to quickly change a video's ratio without having to re-encode, but it might give warning Overriding aspect ratio with stream copy may produce invalid files
.
For Full Screen, if I scaled by width and used heigth auto
and someone input a 640x480
video and scaled it to 1080p
, it would blow up to 1920x1440
and be taller than the screen. If scaled by height it will be 1440x1080
and fit the screen.
If you want to discuss more about this, open a new issue and we can continue it there.
from axiom.
Related Issues (20)
- 中文支持 :sweat_smile: HOT 7
- Simple bug with standard settings
- Preserve folder structure?
- [BUG]Default -crf flag is not suitable for h264_nvenc HOT 1
- Does it auto-update?
- [REQ] Versatile Video Coding (aka x266) support
- AV1 container
- Not able to batch convert? HOT 1
- [SUGGESTION] Optimal parms for "Coding to DVD with FFMPEG"
- Not sure. Issues pasting a link into the input box (youtube-dl)
- video to gif animation? HOT 1
- No exe file anywhere HOT 2
- Project Status HOT 4
- Custom Presets not loading properly.
- Converting DNxHR gives error
- Saving configurations
- language HOT 1
- Crash when input a double quotation mark to Input or Output box HOT 1
- [Question] Is it possible to burn specific subtitles from Input File ?
- cant understand how to just extract files, without encoding with ffmpeg gui? and how to download from youtube with GUI on windows? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from axiom.