
| INTRO The Meizu Miniplayer is a superb player. It support many audio formats: MP3, OGG, FLAC among others, and it plays videos too. The supported format is the open source Xvid. Meizu distributes a special edition of Virtual Dub for letting you convert your videos from original formats to the one playable in the MiniPlayer. Unfortunately Virtual Dub is for Windows. Fortunately enough, we Linux users have many other choices! If
you want to convert your videos or DVDs you will need some software. At
least you will be decoding with Mencoder or FFmpeg, so you will need to
have them installed. To my experience, Mencoder does a better job.
Mencoder is part of Mplayer, so i suggest you to install it and give it
a try. In order to convert the videos all you have to do is open a console and issued the proper commands. For easy tasks this is the better way, because it's faster and you can just copy/paste the bash lines through different console sessions and have Mencoder multitask all of your videos to be converted. If you have some more complicated tasks to do (extracting subtitles, cropping video frame, deinterlace, change endpoints) i suggest that you do it with a visual tool, like Avidemux (see below for more). Other tools (more dvd oriented) include qVamps, DVD::rip, K9copy... If you want to rip css protected DVDs you will need libdvdcss (beware: in some countries this is not legal). Here comes the good part. Just copy and paste the following lines into the console and you're almost ready to go! First, cd to the folder wher you have saved your video to be converted. Then edit the filenames (Mencoder needs to know what file to convert). Finally, check that the video sizes are ok. The following command is in one single line; I will explain later every single option in a better looking layout. mencoder
Massive-Attack_karmacoma_1995.avi -oac mp3lame -lameopts
cbr:mode=2:br=96 -af resample=44100 -srate 44100 -ofps 20 -ovc lavc
-lavcopts vcodec=mpeg4:mbd=2:cbp:trell:vbitrate=300 -vf scale=320:240
-ffourcc XVID -o MA_karmacoma_95.avi
Basically, the command structure is: [mencoder] + [input file name] + [audio options] + [video options] + [output file name]. In this example we are converting the video file Massive-Attack_karmacoma_1995.avi to the video file MA_karmacoma_95.avi. For the audio, we are using LAME to encode the audio in MP3 at 96kb constant bitrate. The video will be encoded by the LAVC codec (LibAVCodec - FFmpeg): bitrate at 300Kb, 20 frames per second, size 320x240 pixels. ![]() MENCODER OPTIONS I USED ABOVE Let's see in details what the options I'm using do mean... » VIDEO OPTIONS: -ofps 20 Number of Output frames per second: don't go over 20! it's not supported by the Miniplayer! Sometimes it's safe to get 18 or 16 fps. -ovc lavc Output video codec is LAVC -- the LibAVCodec is invoked here. -lavcopts vcodec=mpeg4:mbd=2:cbp:trell:vbitrate=300 Passes these options to LAVC: video in mpeg4, with Trellis quantization and constant video bitrate of 300Kbps. Trellis will find the optimal encoding for each 8x8 block, optimizing the datastream for the player. The mdb options is for MacroBlock Decision: with this enabled it will encode all the macroblocks in all modes available and chose the best. mdb=0 is the default, mdb=1 will use the the fewest bits, mdb=2 selects the macroblock mode with the best rate distortion. -vf scale=320:240 Scale video to 320x240 pixel resolution -ffourcc XVID Give it the standard Xvid label. This is important: without this option the MiniPlayer will not play the video 'cos it will think it's not a standard Xvid. Note that ffourcc DIVX is ok as well!) » AUDIO OPTIONS: -oac mp3lame Audio output codec is MP3 -lameopts cbr:mode=2:br=96 Options for lame codec: encode audio in constant bitrate (cbr) on dual-channel and bitrate of 96Kb. I use constant bitrate because it's easier for the codec and lowers the possibility of losing sync due to peaks in the bitrate. If you want to use variable bitrate you have diverse options: vbr=0 for cbr (force constant bitrate), vbr=1 for mt, vbr=2 for rh (default), vbr=3 abr (average bitrate), vbr=4 for mtrh. Modes can be: mode=0 for stereo, mode=1 for joint-stereo, mode=2 for dual-channel, mode=3 for mono. -af resample=44100 Audio filter used to set a Sample frequency conversion of 44100Hz. It's a standard and you will have no audio surprises when playing. -srate 44100 Output sample frequency in Hz. A high sample frequency normally improves the audio quality, especially when used in combination with other filters. SCALING The previous example outputs a video of 320x240, but we are assuming that the input file is in 4:3 scale (like PAL). If the source video has a different aspect ratio (for example 16:9), we will need a letterboxing option. Let's imagine we downloaded a video having a resolution of 448x256. If we scale down the width to 320 then we have a proportional height of 176. So we need 64 extra pixel, meaning a black band of 32 pixels on the top and another at the bottom. The command will become like this: mencoder
Massive-Attack_karmacoma_1995.avi -oac mp3lame -lameopts
cbr:mode=2:br=96 -af resample=44100 -srate 44100 -ofps 20 -ovc lavc
-lavcopts vcodec=mpeg4:mbd=2:cbp:trell:vbitrate=300 -vf scale=320:176 -vf-add expand=:240
-ffourcc XVID -o MA_karmacoma_95.avi
-vf scale=320:176 -vf-add expand=:240 This means that the scaled video size will be 320x176 like said before, while the -vf-add option will add extra black pixels over and under yuor frame in order to reach the 240 required height. Clever, eh? If you think that a command string like the one above is complicated, then I must tell you that Mencoder has literally thousands of options available, ant what you see above is a very minimal and simplicistic use of Mencoder. You can manage subtitles, denoise video signal, equalize audio, change gamma or saturation, introduce audio delay, control dropped frames... The knowledge of all available options is really a useless overkill. This is where Avidemux comes handy. I't a visual GUI that lets you do almost everything in audio-video muxing... It's very easy and powerful to use: load a video and chose outpu codecs foraudio and video, and the its container (avi, mpeg,...). Then save. ![]() You can chose in point and out-points, in case you want rip just a part of the video. And also lets you append more that one video to the first, so you can have a little bit of mounting/mixing options... If you click the Configure options in the Video section on the left you can manage all the parameters seen before. Below you can see the LAVC/FFmpeg Configuration box, with the Quantization pane selected. The choices made here correspond to the mbd=2:cbp:trell:vbitrate part of the -lavcopts. ![]() And here comes the good part: if you click the Filters button in the Video section you will have a full-featured panel with all the options you can expect. In this example I'm doing a really crazy combinations of filters. Deinterlace + Brightness-Contrast-Saturation equalization + Noise remover + Resize to 320x176 + Add letter-box to have the 240 height + resample to 20 frames per second. And you can also save the script to be used on other videos! ![]() So you can do all the complicated operations with Avidemux, and then finish up you video and prepare it for the Miniplayer. Please note the last filter I've used here: it's the framerate resampling filter. As i'm downsampling from 25 to 20 fps, i would have a lot of frames skipped (one out of five) in console Mencoder. Here, i have the possibility do blend skipped frames into a smoother video. This is important if you have rapid moving scenes where skipped frames would risult in kind of "chokes" in video playback. As I said before, we need to set the FfourCc value to Xvid or DivX in order to make it playable. Avidemux unfortunately doesn't do this for us, so we need to give it a final shot with the Mencoder console style. Assuming that all the important features are now in the video we have already Avidemux'ed (resolution 320x240, 20fps, vbr 300 to 360, abr 96 to 128) the console script will be as simple as: mencoder input-video.mpg -oac copy -ovc copy
-ffourcc XVID -o output-video.avi
Note that all we are doing here is just set the FfourCc label to Xvid! -aoc copy Direct audio frames copy, without re-encoding. Leaves it as is in the input video. -ovc copy Makes a straight frame copy, without re-encoding. Doesn't work with filters. There's also a little console application: it's name is cfourcc (console fourcc changer) and it does just that: it changes the fourCC code of a given file. The syntax is very simple and you can mark a file edited by Avidemux with Xvid or DivX code to make it acceptable for Miniplayer. This app is good if you don't want to generate a duplicated file with just a different fourCC code like in the example above. cfourcc -u XVID input-video.avi
Here's a couple of screenshots showing it in action: the property boxes show the same file's property before and after the cforcc action. Check Video --> Coded lines ![]() ![]() And this is the cforcc session where I changed the code from DivX to Xvid... ![]() ![]() This work is licensed under a Creative Commons License. |