Dunno if this is in good spirit but I've been studying a bit of C++ and the wxWidgets API lately and come up with a GUI for FFMpeg. I would really like some feedback in that matter since I don't know if my program is any good or not. The prog is of course freeware and might even go open source at some point (in order to be ported to Linux). Tested on Win7 64bit and Vista 32bit with both 32bit and 64bit ffmpeg binaries. Check it out:
http://ffqueue.bruchhaus.dk/
I hope for some decent and constructive feedback![]()
+ Reply to Thread
Results 1 to 30 of 182
-
Last edited by TorBru; 9th Aug 2014 at 07:06. Reason: Better title
-
This looks interesting, but I could not get it to work in Win7 x64. I put FFQueue.exe in the same folder as ffmpeg, ffprobe and ffplay. When I try to launch it, it complains FFMpeg not found. I select it via options, but it complains FFMpeg not found in the specified location. I have tried multiple versions of ffmpeg in both 32-bit and 64-bit and get the same error. I tried the latest ffmpeg builds.
Has anyone got this working? I'm using FFQueue version 1.0.20.118.Got my retirement plans all set. Looks like I only have to work another 5 years after I die........ -
^ Maybe you forgot to "execute the program as administrator"?
Anyway, I agree, the author should have put some more intelligence into the EXE
Looking in "./" and then in the PATH is the default behavior on Windows -
FWIW: on XP, in the folder "All Users\Application-Data\FFQueue", now there exists a file named ffqueue.cfg
Code:FFQUEUE_CONFIG_VERSION_10 ffmpeg_path=F:\C0MM0NAPPS\M000\FFMPEG\ffmpeg.exe auto_remove=0 save_on_exit=1 limit_stats=1
-
Unpack both FFMpeg and FFQueue to the same folder - FFQueue will then auto-detect FFMpeg
I did the first - it didn't do the second. In the program, I pointed it directly at FFmpeg - it identified it, let me select it, then told me it wasn't there! Lol.
Needs more work. It looks like it might have potential though. -
It doesn't accept spaces in the install path. Once you change that, it runs fine (tried on XP). Should be easy to fix by the developer.
I think it's worth to take a closer look. It certainly has potential, especially for those who like to have some control over the FFmpeg command line. Currently no presets included but creating them is easy. The approach to set up a job is quite logical and intuitive.
I think the developer deserves some constructive comments and advice to improve his application.
EDIT:
You have to also delete the "ffqueue.cfg" file at "All Users\Application-Data\FFQueue" if it already exists else it keeps on looking at the old path for FFmpeg.
@TorBru
my suggestions;
1. Fix the path issue.
2. Store the configure and job files locally in the install folder (most users like portable applications).
3. Internally add -hide_banner as the first FFmpeg command (log then will start with Input #0).
4. Add frame size box together with frame rate (I know you have the scale filter which is more advanced).
5. Add 2-pass encoding.
6. Add preview with FFplay for the filter settings.
EDIT2:
When I add a filter it works fine and I get the related parameters box but when I press the "Edit" button to
change the parameters, I get a message box with ... "wxWidgets Debug Alert". Perhaps a specific XP issue?
ChrisLast edited by Chris K; 1st Aug 2014 at 03:39.
-
Thank you guys for the feedback!
It should never be nescessary to run as administrator. The blank-space in path was the culprit
The blank-space bug is fixed. Also fixed: FFQueue takes it's install-folder as first attempt to save options, if not possible (due to write protection) the AppData folder will be used as before. -hide_banner options is now default behaviour - it can be changed in settings though. FFMpeg recommends the scale filter and that's what will be used. The bug related to filter editing has been fixed!
FFQueue now searches wider for ffmpeg: 1) own install path, 2) global path, 3) %programs%/ffmpeg (both x64 & x86), 4) ./, 5) /usr/local/bin/
2 & 3 - windows only, 4 & 5 linux only (usefull if/when ported)
2-pass encoding and preview with ffplay has been added to the to-do-list for future updates
Further requests are most welcome
EDIT: Previews can be made by right-clicking the job and start it. After a while (whatever u like) click Abort. The output-file will be of limited length but playable with all encoding / filtering applied to it = previewLast edited by TorBru; 1st Aug 2014 at 09:07.
-
Thanks for the fixes! Downloaded new version and it all works fine now!
It's nice that the gui can be resized and maximized. Also that the log section can be expanded by dragging the separation line up. Makes it much easier to inspect the log.
Perhaps in the future also add a option to add custom filters. Not like the built-in with convenient boxes for the settings but simply by adding a string that will be inserted like -filter_complex "internal,internal,custom,internal".
EDIT:
Still something about the suggestion for a frame size box. Creating a preset doesn't always mean it's meant for a fixed output size and you could still translate it to the scale filter and add it to the filter chain if that not already contains a user scale filter from the filter options.
ChrisLast edited by Chris K; 1st Aug 2014 at 10:51.
-
4 & 5 linux only (usefull if/when ported)
6. Add preview with FFplay for the filter settings.
Previews can be made by right-clicking the job and start it. After a while (whatever u like) click Abort. The output-file will be of limited length but playable with all encoding / filtering applied to it = preview
For a filter preview: simply call ffplay with the filter settings and the normal source.
Cu Selur
Ps.: not sure if you have tried it, but you might want to check if your GUI can properly handle UTF-16 characters (Russian, Chinese,..) in pathsusers currently on my ignore list: deadrats, Stears555, marcorocchini -
Are you a psychic, sir?
A custom filter plugin has already been made but the implementation is rather fragile and the usage in some cases causes the filter chain to break if not used properly. Before I implement it I must be sure the usage of it is solid. However, if you need any unimplemented filters you are welcome to suggest implementation thereof -
1) Thanks for the tip! I'm not very familiar with linux, if and when ffqueue is ported, it will probably be after source has been opened and by a guy with expertise in linux.
2) I'll experiment with this in the near future
3) All code has been written with unicode in mind - but no testing has been made with chinese and/or russian at this point in time. If any issues are related to unicode they'll be fixed asap. -
Last edited by Chris K; 1st Aug 2014 at 11:15.
-
A few things that are possible with ffmpeg and probably nice to have:
- audio channel up/downmix (see: https://trac.ffmpeg.org/wiki/AudioChannelManipulation)
- cutting out multiple elements, see: http://video.stackexchange.com/questions/10396/how-to-concatenate-clips-from-the-same-...eo-with-ffmpeg (under concat); ideally extended by the possibility to add transitions
- thumbnail creation
- logo removal
- multi file handling: concatenate, mosaic creation
- color matrix filter
- create slide show from images
users currently on my ignore list: deadrats, Stears555, marcorocchini -
1) (Re)-mapping of audio-channels (including downmix) is on the to-do list.
2+5) I might look into that
3) Reason and practical usage?
4) Already implemented "Remove logo" handling the "delogo" filter.
6) To-do listed.
7) Not really encoding, but I'll see what I can come up with -
It also shows that if ffprobe.exe isn't there. The developer should mention it also requires FFprobe.
-
That did the trick - now it's working. Flag that one!
Scott -
I'm sorry if the requirement for FFProbe has caused any confusion but I assumed it to be obvious that FFQueue requires all FF-binaries (FFPlay will follow due to the requests made for filter-previews). I will change the docs and the error-message in FFQueue to point this out
-
It's not obvious! For almost all people here FFmpeg is just "ffmpeg.exe". Note that many people already have a FFmpeg executable somewhere on their system and will point to that. Many (older) applications that use FFmpeg even do not require FFprobe. Also note that not all providers of FFmpeg Windows binaries include all the FFmpeg derives in their zip package.
You actually should also check the FFmpeg version because older builds may not support all the filters that you offer. I would check for 2013 or even 2014 up.
Also do not expect that people going to first read your web documentation before they run FFQueue. The common procedure is to download the zip, check it for virusses and run it to take a look.
ChrisLast edited by Chris K; 2nd Aug 2014 at 04:58.
-
Very-good point. The archive "FFQueue.7z" should include at least a README.txt, or HELP.txt, or HOW2.txt
(a PDF would be even better, since .TXTs cannot contain images).
A LICENSE.txt IS important, but to the vast majority of the end-users, it's not useful/helpful at all -
Hi Torben,
At first I must say you have put a lot of thinking in your GUI. Everything is in its place and even with all the features it offers, it has a low learning curve.
There's still something about the command line and the presets that seems very restricting to me but I might overlook something.
The command line, which allows user additions, is part of the job. The presets do not allow to add codec specific commands. Now I added the following x264 commands to the command line in between the "preset" and the "output" labels ...
Code:-coder 1 -flags +loop -cmp chroma -partitions +parti8x8+parti4x4+partp8x8+partb8x8 -me_method hex -subq 6 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -b_strategy 1 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -direct-pred 1 -fast-pskip 1
Currently presets rely on the default settings of FFmpeg. To create a specific presets for e.g. Ipod, requires codec specific settings but the preset option doesn't allow commands.
You could add a tab to the presets window where users can add codec specific commands. Preferably in a edit box that allows to enter them on more than one line. You only need to join these when the final command line is composed. Don't worry and say it should be solid. That's the users responsablility. He can check out his mistakes at the FFmpeg log and correct them.
I would still keep the system of the job command line for the addition of more job specific commands.
ChrisLast edited by Chris K; 2nd Aug 2014 at 13:24. Reason: typo
-
......Or at least allow to save CommandLine inputs to the presets. This is the only thing that bothers me. I don't like bitrate mode, I prefer CRF instead. So I edit the command to reflect my choices, but it won't save the command changes. I can edit the .cfg file with the commands I want, but if I edit the preset, it will reset any changes I made.
Some codecs don't allow bitrate anyway like Prores, you need to create commands to specify if you want to encode LT, Med and whatnot.
Also in case anyone is interested the dts encoder works, but it is not compliant (so says my TV anyway).Got my retirement plans all set. Looks like I only have to work another 5 years after I die........ -
@raxer-x: regarding dts encoding, better look into (ff)dcaenc.
-------
@TorBru:
3) Reason and practical usage?
further possible features for the gui:- passthrough of metadata which is already set in the source
- check that output container is compatible with the selected output formats
- other encoding methods 2pass, cq, crf
- assuming ffprobe and ffplay are used, the gui should allow to specify their passes
- option to specify where the 'Options' get saved
- option to pause the encoding (FFQueue still open
Why do you use ffprobe? (shouldn't 'ffmpeg -i "path to input" show the same output; thus one dependency less)users currently on my ignore list: deadrats, Stears555, marcorocchini -
Hi, great program,it may become the best ffmpeg GUI.I have some feature request:
1.Drag and drop support.It is useful for batch convert
2.Automatic detection of external subtitles with the same name as video file (srt,ssa,ass).
3.On the subtitle part, can you add a gui for choosing font color,font style (bold, italic),shadow and outline,margins.These features are very useful for burning styled subtitles in video
4.Ability to choose x264 presets (slow,fast,veryfast)
5.Ability to use x264 constant rate factor (crf)
Once again thank you for this Gui.Last edited by mycek; 3rd Aug 2014 at 08:27.
-
He uses it for detailed source container and stream info. You can double-click on a stream to get extensive info. That wouldn't be possible with only the FFmpeg source output.
It's no bad to use FFprobe but only users should know it's required. -
If there is the ability to add codec specific commands, you can easily add that as commands in a preset.
If you add that from boxes as x264 options, you'll get a x264 gui based on FFmpeg instead of a generic gui for all FFmpeg codecs.
In that case I will unhook! -
+1.
Agreed, it is easy to add through command line.Especially for x264 presets.
For me the most important functions are drag and drop support,manipulation with subtitle styles (font, color, size,margins) and auto detection of external srt or ssa (ass) subtitles. -
Thanks for all of your interrest in the GUI! Following changes has just been released:
- Filter colormatrix added.
- Filter curves added.
- Filter channelmap added.
- Filter custom (break a leg!) for audio and video added.
- FFQueue checks for filter support (unsupported filters are disabled)
- Is is clearly noticed that both FFMpeg and FFProbe are required (and both ARE required to provide the featureset)
- Custom command line arguments for presets (under Misc.) now available (x264 presets 'n stuff)
- URL to documentation added to archive (but no PDF.. Yet..)
And some comments on other suggestions:
It's not obvious! For almost all people here FFmpeg is just "ffmpeg.exe". I've never had a build of ffmpeg that did not contain ffprobe, thus handling thereafter
You actually should also check the FFmpeg version because older builds may not support all the filters that you offer. Yup! Good idea: implemented!
The archive "FFQueue.7z" should include at least a README.txt, or HELP.txt, or HOW2.txt Yeah! Would be nice - but I'm still in development fase and the online documentation must be enough for the moment.
Or at least allow to save CommandLine inputs to the presets Implemented!
passthrough of metadata which is already set in the source AFAIK FFMpeg already does that if no metadata is provided? Elsehow pleasy provide a link
check that output container is compatible with the selected output formats Oh dear, no! FFMpeg has great error reporting - no need for FFQueue to double check!
option to specify where the 'Options' get saved You cannot save a custom path to config - where to load it from? You could create a "redirect options file" but thats just unnescessary.
option to pause the encoding (FFQueue still open) FFMpeg does not support such action. Suspend and resume of execution thread is unrecommended.
Drag and drop suport.It is useful for batch convert Dunno if wxWidgets supports drag&drop - but some sort of batch-thing will be made at some point.
Automatic detection of external subtitles with the same name as video file (srt,ssa,ass). Maby, but not on top of to-do list.
add a gui for choosing font color,font style (bold, italic),shadow and outline,margins Subtitle styling is on to-do list.
That's all for now -
New version works fine "out of the box". Great job!
Moved x264 commands to preset. Works fine!
Tried an old 2013 build and all filter option were greyed-out. Works fine!
Tried a custom filter (simple vflip). Works fine!
Temporary removed FFprobe and got the message. Works fine!
Did not try all the new filters yet but I trust on that.
You could add local help with minimal efforts if you add a docs folder and put the documentation htm in there. Then add a help Icon to the gui and link to it.
Perhaps something for the TODO list ...
I like the option to double-click on streams for stream info but you could also add that to the input #1 and #2 fields and display the container info. The whole system for that is already there.
Code:[format] filename=test.avi nb_streams=5 nb_programs=0 format_name=matroska,webm format_long_name=Matroska / WebM start_time=0.000000 duration=1517.526000 size=261006817 bit_rate=1375959 probe_score=100 [format.tags] title=Sword Dancer encoder=libebml v0.7.7 + libmatroska v0.8.1 creation_time=2007-10-21 03\:34\:11
Again, great job, thanks.
ChrisLast edited by Chris K; 3rd Aug 2014 at 09:05. Reason: typo