Sunday, July 6, 2008

A dialog proposal for conversions

I made a simple UI dialog for gst-media-services, as the following (and at the wiki):

  • Files to convert: is a list that user can add or remove files with the right-side buttons, where user can add any number of files to input them. I'm not sure if that way is understandable to the user that he can choose many files to do a batch operation or he can choose audio and/or video and/or images to mix them. When a file is added, the list can have the properties on it to set properties of the mix (like in what time it should be shown, for how much time if is a image, what is it volume if is a sound, and so on). Not intented to be released at a first time, the input could be a stream or an URI address, considering any stream too.

  • Video Output: here user (or the application which uses this dialog) choose the video format, based in the Encoding Profiles. Each profile has some properties, which is under discussion at the EncodingProfiles section. The default option depends of the input, the selected files: If user choose only audio files, the video appears as "No Video" (better is to disable it). If he choose a video, this box goes to a "maintain the same format" option, considering that there weren't any application which called the dialog with a format input. If user choose many videos, the dialog counts how much videos have of each format and the major format is the selected, so user can convert the minority videos to the majority format. If user choose videos and images, audios and videos, audios videos and images together, or just images, it's a mix case and dialog can handle this by showing some advanced options for each file selected.

  • Audio Output: default is to let the same audio. When user choose a video format, the audio choose the video-audio's profile, as I'm planning that all videos links audio profiles for its audio part. A "No Audio" option need to be done too.

  • Target folder: Where the results should be dropped. - problem with the mix operation: how can I presume what is the name of resulting file? Should I add another field for it if I detect a mix case?

  • Bottom Buttons: Edit profiles is a button to open the Profiles Editor, a tool that I want to do later, to help users to build their own profiles. At least, this button can let the user build its own pipeline, or change a pre-defined one. Transcode button transcode the files (is it the best name? Should I use Convert / Extract / Mix depending of selected operation?), and appear two new buttons when the operation is finished: "Close" and "Open target". A progress screen should appear when the transcode button is pressed.

I think I'll not change very much this dialog, and my wish is to offer this to applications to use it. I didn't cover some use cases yet, like when dialog do conversions or to just return the Gstreamer pipeline to the application which is calling gst-media-services. I'm already implementing the basic functions for the dialog, but I need to work in a XML parser for EncodingProfiles too.
Any suggestions, just drop in comments!

1 comment:

Stefan Kost said...

No mixing. That should be left to specialized tools. Looks good otherwise.
I think its still somewhat dificult to do the right thing if the users drop different kind of files there. Maybe its good to warn that there is one audio only file among videos and the like for simillar scenarios.