Video Conversion – Convert MKV/H264 Video for Sony Ericsson Phone Using Ubuntu

conversionffmpeghandbrakemobile phonevideo

As a little experiment I thinking of converting some video/movies/tv-series into a format that could be playable on my K850, but to be a little bit more generic in this question let's say "mid range Sony Ericsson" phone since they all more or less behave the same and has the same screen resolution (240 x 320).

I am looking for command line based tools (for Ubuntu), since I am thinking about writing a "convert and move" script later if it is successful.

A lot of the video I have is encoded in mkv/h264, but since that is not supported by the phone I guess that I need to convert it into some mp4/mpeg4 low quality video.

After some googling it seems like a good candidate for the job is ffmpeg,
but that seems to be a very versatile tool with a lot of magic tricks.

Am I on the right track? And if so how do I use ffmpeg to do this?

Thanks
Johan


Update:
After plating a little bit with ffmeg I noticed that it only uses 1 of my 4 cores, so the transcoding takes forever. I found a arg called -threads but that did not change much, maybe I got it wrong.

I also found that something like this plays in the phone.

ffmpeg -i Mythbusters\ S1D1_1.mkv -threads 4 -t 180 -vcodec mpeg4 -r 15 -s 320x240 Mythbusters\ S1D1_1_mini.mp4

It was possible to use 3gp/h263, but the quality was really useless.

ffmpeg -i Mythbusters\ S1D1_1.mkv -t 180 -vcodec h263 -acodec libfaac -s cif  Mythbusters\ S1D1_1_cif.3gp

And it seems like mp4/h264 is also possible and the result is ok, thanks to this question, this one seem to use more than one core as well so it was a little bit faster for me.

ffmpeg -i Mythbusters_S1D1_1.mkv -t 180 -acodec libfaac -ab 60k -s 320x240 -vcodec libx264 -b 500k -flags +loop -cmp +chroma -partitions +parti4x4+partp8x8+partb8x8 -flags2 +mixed_refs -me_method umh -subq 6 -trellis 1 -refs 5 -coder 0 -me_range 16 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -bt 500k -maxrate 768k -bufsize 2M -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -level 13 -threads 0 -f mp4 Mythbusters_S1D1_1_qvga.mp4

Update:
I have tried to use HandBrakeCLI and it is no problem creating a new file that seem to be the same as the one created with ffmpeg with something like this.

HandBrakeCLI -i Mythbusters_S1D1_1.mkv --size 100 -E faac -B 60 --maxHeight 240 -r 15 -e x264 -o Mythbusters_S1D1_1_hand.mp4

But that one did not play in the phone…


I found this in the official manual:

If you transfer video clips using
another program than Media Go™, we
recommend that you select H.264
Baseline profile video, up to QVGA at
30 fps, VBR 384 kbps (max 768 kps)
with AAC+ audio at 128 kbps (max 255
kbps), 48 kHz and stereo audio in mp4
file format.

So the idea to use H264 seems to be correct.

Best Answer

Why not try Handbrake? It's available for Linux, Mac Os and Windows and also has a command line interface, if you want.

Here's a guide to the Handbrake CLI.

Related Question