Конветиране на клипове за Nokia 5800 XpressMusic
от Илия Няголов на юли.19, 2009, категории Линукс, Разни
Първо да кажа за телефона, преди няколко месеца го подарих на жената, тя определено се зарадва много. Телефона е супер за парите си 🙂 и определено доста ми допадна, но за мен по-късно и по-хубав ще има 😛 .
Първоначално се чудех какви са предпочитаните файлове за плейване на такъв телефон, но в телефона си имаше няколко оригинални клипчета. Изтеглих си едно и видях с какви аудио и видео кодеци е направен.
ffmpeg -i Hints\ and\ Tips\ 1\ -\ Music\ Download.mp4
FFmpeg version SVN-r16916, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: –prefix=/usr –libdir=/usr/lib64 –shlibdir=/usr/lib64 –mandir=/usr/share/man –enable-static –enable-shared –cc=x86_64-pc-linux-gnu-gcc –disable-debug –disable-optimizations –enable-libfaac –enable-libmp3lame –enable-libvorbis –enable-libtheora –enable-libx264 –enable-libxvid –enable-libdc1394 –enable-x11grab –enable-libfaad –disable-ssse3 –disable-altivec –disable-mmx2 –disable-amd3dnow –cpu=nocona –disable-vhook –enable-gpl –enable-postproc –enable-avfilter –enable-avfilter-lavf –enable-swscale –disable-stripping
libavutil 49.14. 0 / 49.14. 0
libavcodec 52.11. 0 / 52.11. 0
libavformat 52.25. 0 / 52.25. 0
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 0. 3. 0 / 0. 3. 0
libswscale 0. 6. 1 / 0. 6. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Apr 2 2009 10:41:11, gcc: 4.1.2 (Gentoo 4.1.2 p1.1)Seems stream 1 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 12.00 (12/1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from ‘Hints and Tips 1 – Music Download.mp4’:
Duration: 00:01:46.02, start: 0.000000, bitrate: 921 kb/s
Stream #0.0(eng): Audio: aac, 44100 Hz, stereo, s16
Stream #0.1(eng): Video: mpeg4, yuv420p, 640×360 [PAR 1:1 DAR 16:9], 12.00 tb(r)
At least one output file must be specified
По-горе се вижда че телефона работи отлично с:
Stream #0.0(eng): Audio: aac, 44100 Hz, stereo, s16
Stream #0.1(eng): Video: mpeg4, yuv420p, 640×360 [PAR 1:1 DAR 16:9], 12.00 tb(r)
Файловете които трябваше да конвертирам бяха със следните кодеци:
ffmpeg -i input-file.mkv
FFmpeg version SVN-r16916, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: –prefix=/usr –libdir=/usr/lib64 –shlibdir=/usr/lib64 –mandir=/usr/share/man –enable-static –enable-shared –cc=x86_64-pc-linux-gnu-gcc –disable-debug –disable-optimizations –enable-libfaac –enable-libmp3lame –enable-libvorbis –enable-libtheora –enable-libx264 –enable-libxvid –enable-libdc1394 –enable-x11grab –enable-libfaad –disable-ssse3 –disable-altivec –disable-mmx2 –disable-amd3dnow –cpu=nocona –disable-vhook –enable-gpl –enable-postproc –enable-avfilter –enable-avfilter-lavf –enable-swscale –disable-stripping
libavutil 49.14. 0 / 49.14. 0
libavcodec 52.11. 0 / 52.11. 0
libavformat 52.25. 0 / 52.25. 0
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 0. 3. 0 / 0. 3. 0
libswscale 0. 6. 1 / 0. 6. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Apr 2 2009 10:41:11, gcc: 4.1.2 (Gentoo 4.1.2 p1.1)
Input #0, matroska, from ‘input-file.mkv’:
Duration: 00:05:05.20, start: 0.000000, bitrate: N/A
Stream #0.0(eng): Audio: ac3, 48000 Hz, stereo, s16
Stream #0.1(eng): Audio: ac3, 48000 Hz, 5.1, s16
Stream #0.2(eng): Video: h264, yuv420p, 720×576, PAR 1:1 DAR 5:4, 25.00 tb(r)
At least one output file must be specified
За целта направих следното:
ffmpeg -i input-file.mkv -r 25 -b 7200k -s 450×360 -acodec libfaac -r 32000 -ab 128k -ac 2 -async 1 -padleft 94 -padright 96 -aspect 16:9 output-file.mp4
Малко да пояснения сега:
-r 25 – брой кадри в секунда, колкото са и в оригиналния файл (frame rate)
-b 7200k – битрейта на видеото, след няколко проби реших че ще бъде толкова за да догоня качеството на оригиналния клип, не съм го смятал 🙂 (video bitrate).
-с 450×360 – Защо точно толкова ли? Това си го сметнах вече :).
Оригиналния файл е 720×576 = 1,25 – пропорциите на видео файла – мащаба на изображението.
Да но разделителна способност на телефона е 640×360 = 1,78 мащаб.
Малко сметки сега x/360=1,25 => x=450. Да но на мен „x“ хоризонталната дължина на дисплея е 640.-padleft 94 -padright 96
За целта добавям кант (дебела черна лената) от двете страни на изображението.
94+96+450=640 точно колкото ми е дълъг дисплея.-acodec libfaac
Аудио кодека, какъвто и е на оригиналния видео файл от телефона, по-горе си го пише.-r 32000
-ab 128k
audio bitrate-ac 2
Set the number of audio channels-async 1
Samples per second. async 1 is a special case where only the start of the audio stream is corrected without any later correction.
Това е от мен. Дано написаното по-горе помогне на някого все някога :).