Participate > User interface and Usability
The GUI for choosing container , compression format and codecs
garin:
following on from http://www.avidemux.org/smf/index.php?topic=10730.msg57668#msg57668 "how are these combinations of codecs with containers?" there was some discussion about the GUI
and a suggestion from JM.
garin:
i'll put some of my comments here 'cos they're more appropriate in this section
I don't think parentheses are so bad..
-
Putting mpeg4 in parentheses is fine but one could say ff-mpeg4 just to show that it's ffmpeg's mpeg4. Putting libavcodec in parentheses isn't that useful as it refers to ffmpeg's whole library of codecs. ffmpeg does name each codec so if using libavcodec and using for example, mpeg4 then ff-mpeg4 is good and completely clear.
it's listed by ffmpeg, very specifically.
C:\>ffmpeg -codecs | find /i "mpeg4"
DEVSDT mpeg4 MPEG-4 part 2
DEVSD msmpeg4 MPEG-4 part 2 Microsoft variant version 3
DEVSD msmpeg4v1 MPEG-4 part 2 Microsoft variant version 1
DEVSD msmpeg4v2 MPEG-4 part 2 Microsoft variant version 2
C:\>
Regarding anything nonsensical about "FLV1(flash)"
Suppose they get the codec from ffmpeg.
Why not Flash(ff-flv)
I don't see why something like that with parentheses needs to be nonsensical.
MPEG-4 AVC and right below MPEG-4 ASP in there with proper names is confusing in a notation of codec format(codec). but maybe they could go in italics as colloquial names..though MPEG-4 ASP is more necessary as a colloquial name than MPEG-4 AVC but both names seem to be used colloquially I suppose.
The colloquial names could go alongside proper names. But "part this" and "part that" gets ugly and perhaps those proper names should be in a help file that really elaborates about the names. The rest of the proper names like H.263 or AVC, are neat and could easily fit alongside the colloquial names.
In your screenshot of the style you suggest, why is the Input(Left hand side),in a different format to the output?
Like on the left hand side you say MPEG-4 ASP.. (you include the profile you don't write the part) and on the right hand side you write MPEG-4 Part 2. i.e. you write the part and don't write the profile
I suppose the left hand side isn't input, as input would just be, settings of the current file, and just needs one line saying the file's container and codecs, and no options. So I wouldn't know what the left hand side was. As to the menus for container, video codec and audio codec.. I think 3 menus(one for each) could make it nauseating to see at a glance what the options are. But as there aren't that many options for compatible combinations of container, audio codec and video codec, then perhaps there could be one menu for container, and below, another or better (what they call in VB) a list box, that lists all the combinations of compatible audio and video codecs, for that container. That has the advantage of being educational too. An "advanced gui" option for container and codecs could have 3 menus or list boxes, container, video codec, audio codec, and the user can choose whichever combination, and there can be some text at the bottom of the screen that says whether it's compatible or not or how compatible, whether recommended or not.
I guess I don't really see why there are 2 columns?
J. M.:
--- Quote from: garin on June 23, 2012, 03:31:26 AM ---I don't think parentheses are so bad..
--- End quote ---
That's what I thought in 2005, too. 7 years later, I think it is quite clear... That is is not clear. :) People have no idea what they mean.
--- Quote ---MPEG-4 AVC and right below MPEG-4 ASP in there with proper names is confusing in a notation of codec format(codec).
--- End quote ---
It is confusing because AVC and ASP are not at the same level in the logical hierarchy. Advanced Video Coding is a name for Part 10, while Advanced Simple profile is a profile of Part 2. And the user can choose some other Part 2 profile, too.
--- Quote ---but maybe they could go in italics as colloquial names..though MPEG-4 ASP is more necessary as a colloquial name than MPEG-4 AVC but both names seem to be used colloquially I suppose.
The colloquial names could go alongside proper names. But "part this" and "part that" gets ugly and perhaps those proper names should be in a help file that really elaborates about the names. The rest of the proper names like H.263 or AVC, are neat and could easily fit alongside the colloquial names.
--- End quote ---
The problem is that in this layout, you have to keep the names short or it will make the drop-down list, and hence the whole A/V sidebar, and hence the whole window, ridiculously wide. You could also truncate the names, which is not too good either. Or you would have to invent a new way of presenting all this in the Avidemux window. But in this current layout, I'm afraid the only reasonable option is choosing a single name for each format. But sure, the documentation should explain the format names in more detail.
--- Quote ---In your screenshot of the style you suggest, why is the Input(Left hand side),in a different format to the output?
--- End quote ---
It's not input and output. It is a comparison. Both are outputs in the A/V sidebar in the main Avidemux window. The picture on the left is the current 2.5 Avidemux version (or used to be the current version when I made that picture some time ago originally for the Why call MPEG4 part 2 "ASP"? topic), while the picture on the right is my proposal for a new, improved version, explained in more detail in those two previous topics (1, 2, the pictures got deleted in these old topics, so it is now reposted here).
--- Quote ---Like on the left hand side you say MPEG-4 ASP.. (you include the profile you don't write the part) and on the right hand side you write MPEG-4 Part 2. i.e. you write the part and don't write the profile
--- End quote ---
Because the user does not have to use the Advanced Simple Profile.
--- Quote ---As to the menus for container, video codec and audio codec.. I think 3 menus(one for each) could make it nauseating to see at a glance what the options are. But as there aren't that many options for compatible combinations of container, audio codec and video codec, then perhaps there could be one menu for container, and below, another or better (what they call in VB) a list box, that lists all the combinations of compatible audio and video codecs, for that container.
--- End quote ---
Now that would be really nauseating. :D Just imagine:
Matroska
Copy/Copy
Copy/MJPEG
PCM/MJPEG
MP3/MJPEG
MP2/MJPEG
Vorbis/MJPEG
AAC (FAAC)/MJPEG
AAC (libavcodec)/MJPEG
AC3 (aften)/MJPEG
AC3 (libavcodec)/MJPEG
Copy/MPEG-2 Part 2
PCM/MPEG-2 Part 2
MP3/MPEG-2 Part 2
MP2/MPEG-2 Part 2
Vorbis/MPEG-2 Part 2
AAC (FAAC)/MPEG-2 Part 2
AAC (libavcodec)/MPEG-2 Part 2
AC3 (aften)/MPEG-2 Part 2
AC3 (libavcodec)/MPEG-2 Part 2
Copy/MPEG-4 Part 2 (libavcodec)
PCM/MPEG-4 Part 2 (libavcodec)
MP3/MPEG-4 Part 2 (libavcodec)
MP2/MPEG-4 Part 2 (libavcodec)
Vorbis/MPEG-4 Part 2 (libavcodec)
AAC (FAAC)/MPEG-4 Part 2 (libavcodec)
AAC (libavcodec)/MPEG-4 Part 2 (libavcodec)
AC3 (aften)/MPEG-4 Part 2 (libavcodec)
AC3 (libavcodec)/MPEG-4 Part 2 (libavcodec)
Copy/MPEG-4 Part 2 (Xvid)
PCM/MPEG-4 Part 2 (Xvid)
MP3/MPEG-4 Part 2 (Xvid)
MP2/MPEG-4 Part 2 (Xvid)
Vorbis/MPEG-4 Part 2 (Xvid)
AAC (FAAC)/MPEG-4 Part 2 (Xvid)
AAC (libavcodec)/MPEG-4 Part 2 (Xvid)
AC3 (aften)/MPEG-4 Part 2 (Xvid)
AC3 (libavcodec)/MPEG-4 Part 2 (Xvid)
Copy/MPEG-4 Part 10
PCM/MPEG-4 Part 10
MP3/MPEG-4 Part 10
MP2/MPEG-4 Part 10
Vorbis/MPEG-4 Part 10
AAC (FAAC)/MPEG-4 Part 10
AAC (libavcodec)/MPEG-4 Part 10
AC3 (aften)/MPEG-4 Part 10
AC3 (libavcodec)/MPEG-4 Part 10
Copy/huffYUV
PCM/huffYUV
MP3/huffYUV
MP2/huffYUV
Vorbis/huffYUV
AAC (FAAC)/huffYUV
AAC (libavcodec)/huffYUV
AC3 (aften)/huffYUV
AC3 (libavcodec)/huffYUV
Copy/FLV1
PCM/FLV1
MP3/FLV1
MP2/FLV1
Vorbis/FLV1
AAC (FAAC)/FLV1
AAC (libavcodec)/FLV1
AC3 (aften)/FLV1
AC3 (libavcodec)/FLV1
Copy/YV12
PCM/YV12
MP3/YV12
MP2/YV12
Vorbis/YV12
AAC (FAAC)/YV12
AAC (libavcodec)/YV12
AC3 (aften)/YV12
AC3 (libavcodec)/YV12
AVI
Copy/Copy
Copy/MJPEG
PCM/MJPEG
MP3/MJPEG
MP2/MJPEG
AC3 (aften)/MJPEG
AC3 (libavcodec)/MJPEG
Copy/MPEG-4 Part 2 (libavcodec)
PCM/MPEG-4 Part 2 (libavcodec)
MP3/MPEG-4 Part 2 (libavcodec)
MP2/MPEG-4 Part 2 (libavcodec)
AC3 (aften)/MPEG-4 Part 2 (libavcodec)
AC3 (libavcodec)/MPEG-4 Part 2 (libavcodec)
Copy/MPEG-4 Part 2 (Xvid)
PCM/MPEG-4 Part 2 (Xvid)
MP3/MPEG-4 Part 2 (Xvid)
MP2/MPEG-4 Part 2 (Xvid)
AC3 (aften)/MPEG-4 Part 2 (Xvid)
AC3 (libavcodec)/MPEG-4 Part 2 (Xvid)
Copy/MPEG-4 Part 10
PCM/MPEG-4 Part 10
MP3/MPEG-4 Part 10
MP2/MPEG-4 Part 10
AC3 (aften)/MPEG-4 Part 10
AC3 (libavcodec)/MPEG-4 Part 10
Copy/huffYUV
PCM/huffYUV
MP3/huffYUV
MP2/huffYUV
AC3 (aften)/huffYUV
AC3 (libavcodec)/huffYUV
Copy/FLV1
PCM/FLV1
MP3/FLV1
MP2/FLV1
AC3 (aften)/FLV1
AC3 (libavcodec)/FLV1
Copy/YV12
PCM/YV12
MP3/YV12
MP2/YV12
AC3 (aften)/YV12
AC3 (libavcodec)/YV12
MP4
Copy/Copy
Copy/MPEG-4 Part 2 (libavcodec)
MP3/MPEG-4 Part 2 (libavcodec)
AAC (FAAC)/MPEG-4 Part 2 (libavcodec)
AAC (libavcodec)/MPEG-4 Part 2 (libavcodec)
Copy/MPEG-4 Part 2 (Xvid)
MP3/MPEG-4 Part 2 (Xvid)
AAC (FAAC)/MPEG-4 Part 2 (Xvid)
AAC (libavcodec)/MPEG-4 Part 2 (Xvid)
Copy/MPEG-4 Part 10
MP3/MPEG-4 Part 10
AAC (FAAC)/MPEG-4 Part 10
AAC (libavcodec)/MPEG-4 Part 10
.
.
.
.
.
.
.
.
.
And the list goes on and on and on and on and on...
.
.
.
.
.
...and on and on and on...
Nah. I think this would drive people crazy :) The problem with this approach is that it does not scale well. Three separate menus scale much better. Two menus would be practical only for simple applications that offer a very limited set of encoders.
--- Quote ---An "advanced gui" option for container and codecs could have 3 menus or list boxes, container, video codec, audio codec, and the user can choose whichever combination, and there can be some text at the bottom of the screen that says whether it's compatible or not or how compatible, whether recommended or not.
--- End quote ---
Making "advanced" options in the main window could be awkward. In a separate dialog, maybe (even though, in my experience, it is usually awkward in separate dialogs, too). But still, the A/V sidebar was put in the main window exactly because it is the heart and soul of Avidemux and its workflow. You select a video encoder, and then you can add a video filter... I think every Avidemux user should understand this concept, these three things (video encoder, audio encoder, container format), because that's the way Avidemux (and not only Avidemux) works.
But yes, Avidemux could suggest which combinations are compatible (possibly by listing only those compatible options). This was suggested several times before, but Avidemux is not that intelligent yet. I don't even remember if this suggestion was rejected for some reason (is it a good idea or not? It could make the list boxes more confusing.) or simply not implemented...
garin:
First thoughts..
ok, ff- is a bad idea,
But regarding mpeg4. I think alone it isn't useful.
libavcodec alone says too little.
while mpeg4 is a command line parameter, a command line parameter from ffmpeg -codecs is not a command line parameter like absolutely any other. And the software package, ffmpeg, has a relationship to libavcodec unlike any other software package, given that libavcodec was developed by the ffmpeg team.
ffmpeg takes itself so seriously as a command line program, and of course has no gui anyway. It's not likely to change those command line parameters in -codecs.
mpeg4 and the other names, aren't as official as one might like, but I think being part of the list from ffmpeg -codecs, it is fairly well established.
it's not libavcodec's mpeg4.. as ffmpeg names it..
but how about a notation e.g.
ffmpeg - mpeg4
The notation could be defined in documentation. the codec in libavcodec that ffmpeg calls mpeg4.
It looks like the distinction between Video Compression Format, and Codec should be strengthened.. and a good way is to separate them.
So, Video and Audio could have 2 menus.. "Compression format" and "encoder"
Mpeg-4 Part2 does at least have a proper name that isn't ugly. Mpeg4-Video
and of course Mpeg-4 Part 10 has neat names.
If colloquial names "MPEG4-ASP" "MPEG4-AS" "MPEG-AVC" don't fit, then they could go in documentation. Along with the proper names that are ugly like "part this" and "part that".
Second thoughts..
How about a more transitional change..
keeping the GUI design looking similar to how it does
scrap MPEG-4 AVC , changing it to just AVC,H.264 (...)
scrap MPEG-4 ASP , changing it to MPEG-4 Visual (..)
You could include MPEG-4 AVC and MPEG-4 ASP in grey with a strikethrough line through them, and if chosen then a msgbox could come up saying to choose ....
It's a small change that would clear up some confusion. I don't really see any downside to doing that?
I don't know whether saying ffmpeg's mpeg4 is better than just mpeg4. I prefer either of those to changing to libavcodec, as saying libavcodec is just so unspecific.
If at some point it was decided to have 2 menus for Video Codec, (compression format and encoding). 2 for Audio.. Then, it wouldn't be such a sudden change. Because the notation would already divide between Compression Format, and Encoding.
btw where's the option to encode Mpeg-4 Part 2 SP? In the menu the only MPEG-4 ones that I see, are Compression Format of MPEG-4 Part2 with ASP profile, and I see Compression Format of AVC.
J. M.:
--- Quote from: garin on June 23, 2012, 05:53:07 AM ---libavcodec alone says too little.
--- End quote ---
Is says everything that's needed. It is a unique, unambiguous identifier, just like "Xvid" or "x264".
"MPEG-4 Part 10 (x264)" says "the format is MPEG-4 Part 10, the encoder library is x264".
"MPEG-4 Part 2 (Xvid)" says "the format is MPEG-4 Part 2, the encoder library is Xvid".
"MPEG-4 Part 2 (libavcodec)" says "the format is MPEG-4 Part 2, the encoder library is libavcodec".
Which is true, correct, googleable, and understandable.
There is no option in the encoder menu called just "libavcodec". I have no idea how anyone on earth would get that "mpeg4" means it is from libavcodec.
As far as I remember, the only reason why neither "libavcodec" nor "FFmpeg" was used as an identifier in the 2005 GUI version (and hence why it is still not used today) was because people thought they needed to install FFmpeg to use Avidemux. So cryptic names like "lavc" or "ff" were used to obfuscate the origin. Which is not a reason I would agree with, and especially not in 2012, but that was the decision.
--- Quote ---while mpeg4 is a command line parameter, a command line parameter from ffmpeg -codecs is not a command line parameter like absolutely any other. And the software package, ffmpeg, has a relationship to libavcodec unlike any other software package, given that libavcodec was developed by the ffmpeg team.
--- End quote ---
But it is a command-line parameter. Not a product name. All those names in the codec command-line list follow this naming scheme. A shortened lowercase string (e.g. "nuv", which is not the correct name for NuppelVideo, just a commandline parameter, "mp2", which is not the correct name for MPEG-1 Layer II aka MP2, just a commnandline parameter in FFmpeg, or "mpeg4", which is not the correct full name for "MPEG-4"), followed by an explanation (full name) in the help output:
DEVSDT mpeg4 MPEG-4 part 2
What this line says is that the MPEG-4 Part 2 encoder from libavcodec can be used in the FFmpeg program by writing "mpeg4" on the command line (because writing "MPEG-4" on the command line would be problematic, and because everyone knows this is FFmpeg, so "FFmpeg MPEG-4" would be redundant). Nothing else than that. It does not say that the name of this software product is "mpeg4".
Scientifically speaking, this line says three things:
* DEVSDT: decoding and encoding supported, it is for video, supports draw_horiz_band, direct rendering method and weird frame truncation
* mpeg4: a command-line string to use this codec
* MPEG-4 part 2: description of this codec
--- Quote ---ffmpeg - mpeg4
The notation could be defined in documentation.
--- End quote ---
This is really just a variation of "MPEG-4 (FFmpeg)" which does not really solve the problem this topic was trying to address. It does not matter whether you use "Format (encoder)" notation or "Encoder - format", or any other cryptic notation, because people simply do not understand what the secret notation - any secret notation - means. Even if you explain it in the documentation, people will not read it. And even if the read it, they will not understand it. That's the experience of the whole Avidemux history. In my opinion, based on 10 years of very extensive experience with this phenomenon, and not only in this forum, the only way to make people understand what the labels mean is directly saying what the labels mean. I cannot see any reason for not doing it, except perhaps for saving a couple of pixels.
--- Quote ---You could include MPEG-4 AVC and MPEG-4 ASP in grey with a strikethrough line through them, and if chosen then a msgbox could come up saying to choose ....
It's a small change that would clear up some confusion. I don't really see any downside to doing that?
--- End quote ---
Some concerns:
* Why grey, why a strikethrough? A strikethrough is redundant when an item is greyed out, and only items that are not available in the current context should be greyed out. Making an item available by selecting it is not what any user interface guideline would recommend, as it would create confusion rather than clearing it up.
* Opening dialogs by selecting a drop-down list item is not exactly good UI practice either. I would prefer at least a small "Configure" button (even just a small icon). Then the greyed out items would start to make sense, because they would be unavailable until you press the configure button and select an encoder. Otherwise it would mean "Copy". But then, for formats having just a single encoder, the button should be greyed out (and the list item should be enabled by default).Considering the concerns above, I'm worried that this could make the GUI more clumsy and confusing instead of simplifying it.
--- Quote ---Mpeg-4 Part2 does at least have a proper name that isn't ugly. Mpeg4-Video
and of course Mpeg-4 Part 10 has neat names.
If colloquial names "MPEG4-ASP" "MPEG4-AS" "MPEG-AVC" don't fit, then they could go in documentation. Along with the proper names that are ugly like "part this" and "part that".
--- End quote ---
Yes, the documentation should mention all that. I'm just not sure if people would read it... But that's not a reason not to include it there.
--- Quote ---If at some point it was decided to have 2 menus for Video Codec, (compression format and encoding). 2 for Audio.. Then, it wouldn't be such a sudden change. Because the notation would already divide between Compression Format, and Encoding.
--- End quote ---
Yes, I think 2 menus would be a much better option. It would also solve the two-line item problem with my suggestion in the picture. I was thinking of this option, too, and the possible problems were:
* You would have to find a sensible way to cram this into the window, again without making it too bloated
* Someone would have to implement it. And I don't mean the GUI, but the automatic "compatibility list" in the Avidemux encoder plugins where the encoder list would dynamically change based on the format selection. But this point generally applies to my original suggestion, too (the picture) - it is not just a GUI change (that's the easy part), but primarily a change inside Avidemux.
Navigation
[0] Message Index
[#] Next page
Go to full version