Toks klausimas man neseniai kilo pažįstamiems paprašius įrašyti vaikišką filmuką į diską jų vaikui taip, kad būtų galima žiūrėti per jų DVD leistuvą. O jų leistuvas senovinis, nepalaiko ko gero mpeg4 formato ir *.avi failų, įrašytų į diską, jame pasižiūrėti negalima…
Viską darysiu komandų eilutės priemonėmis – gal iš tingėjimo (kam ieškoti tų grafinių programų? Mokėti už jas nesiruošiu), o ir dėl patogumo (tas aspektas labiau pasijaučia, kai reikia tokias pačias užduotis atlikti pakartotinai). Įrankiai elementarūs bet kuriam Linux distributyvui: ffmpeg failų konvertavimui, „dvdauthor“ dvd gaminimui, ir „mkisofs“ dvd *.iso atvaizdo sukūrimui.
Taigi, susižvejojau internete vieną iš daugelio instrukcijų ir pamėginau.
Štai kokį failą bandžiau konvertuoti į DVD:
$ ffmpeg -i ~/Video/Video.avi ffmpeg version 0.7.3-4:0.7.3-0ubuntu0.11.10.1, Copyright (c) 2000-2011 the Libav developers built on Jan 4 2012 16:21:50 with gcc 4.6.1 <...> Seems stream 0 codec frame rate differs from container frame rate: 23.98 (65535/2733) -> 23.98 (10000000/417083) Input #0, avi, from '/home/dg/Video/Video.avi': Metadata: encoder : VirtualDubMod 1.5.10.2 (build 2540/release) title : Video Duration: 01:37:51.02, start: 0.000000, bitrate: 2142 kb/s Stream #0.0: Video: mpeg4, yuv420p, 720x304 [PAR 1:1 DAR 45:19], 23.98 tbr, 23.98 tbn, 23.98 tbc Stream #0.1: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s <...>
Standartinė procedūra lyg ir būtų tokia:
## konvertuojam mpeg4 formatų failą į mpeg2 formatą: $ ffmpeg -i Video.avi -aspect 16:9 -target pal-dvd video-mpeg2.mpg ## paverčiam tą mpeg2 formato failą vienu DVD takeliu: $ dvdauthor -o dvd/ -t video-mpeg2.mpg ## suformuojam DVD disko struktūrą $ dvdauthor -o dvd/ -T ## gaminam DVD disko atvaizdą, kurį po to galima įkepti į fizinį DVD diską: $ mkisofs -dvd-video -o Video-dvd.iso dvd/
Taip pagamintas DVD buvo ištemptas vertikaliai. Taip nutiko todėl, kad šio video įrašo dydis yra 720×304 px, o MPEG2 standartas būtų 720×405 px, kuris po to pritempiamas iki 16:9 santykio.
Taigi, visų pirma teko pridėti tuos 100 pikselių kaip juodas juostas virš kadro ir po kadru:
$ ffmpeg -i Video.avi -vcodec mpeg4 -vf pad=720:405:0:50:black -r 25 -aspect 16:9 -sameq -acodec copy Video-su-juostom.avi
Taigi, kas čia vyksta:
„-i Video.avi“ – pirminis filmo failas;
„-vcodec mpeg4“ – naudojamas mpeg4 kodekas;
„-vf pad=720:405:0:50:black“ – pritaikomas video filtras: „pad“ reiškia, kad pridedamos juostos, „720:405“ – filmo naujame faile dydis, „0:50“ – kad pirminio failo kadras talpinamas naujajame nuliniame stulpelyje ir penkiasdešimtoje eilutėje nuo viršutinio kairiojo kampo; „black“ – kad juostos turi būti juodos;
„-r 25“ – naujas kadrų dažnis, nes pirminio failo kadrų dažnis buvo nestandartinis (23.98), ir be šios parinkties ffmpeg failo nekonvertuodavo, rodydavo klaidą.
„-aspect 16:9“ – dvd vaizdo vienas iš galimų santykių (kitas būtų 4:3);
„-sameq“ – naudoti tą pačią vaizdo kokybę apdorojant vaizdą;
„-acodec copy“ – audio takelį tiesiog nukopijuoti;
„Video-su-juostom.avi“ – čia jau rezultatas – šiek tiek apdorotas vaizdo failas.
Šią seką atlikus gavau tokį failą:
$ ffmpeg -i Video-su-juostom.avi ffmpeg version 0.7.3-4:0.7.3-0ubuntu0.11.10.1, Copyright (c) 2000-2011 the Libav developers <...> Input #0, avi, from 'Video-su-juostom.avi': Metadata: title : Video encoder : Lavf53.3.0 Duration: 01:37:51.08, start: 0.000000, bitrate: 3291 kb/s Stream #0.0: Video: mpeg4, yuv420p, 720x404 [PAR 254:255 DAR 3048:1717], 25 tbr, 25 tbn, 25 tbc Stream #0.1: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s <...>
Kurį nesunkiai konvertavau į DVD diskuose naudojamą mpeg2 formatą. Beje, gali būti, kad yra būdas sujungti aukščiau esančią ir žemiau esančią komandą į vieną, gal net galutinio DVD vaizdo kokybė nuo to pagerėtų. Jei kas žinote, kaip – pasidalinkite. O aš toliau dariau taip:
$ ffmpeg -i Video-su-juostom.avi -aspect 16:9 -target pal-dvd video-mpeg2.mpg
O tada – kūriau DVD struktūrą:
$ export VIDEO_FORMAT=PAL $ dvdauthor -o dvd/ -t video-mpeg2.mpg $ dvdauthor -o dvd/ -T
Atkreipkite dėmesį į „export VIDEO_FORMAT=PAL.“ komandą. Nenurodžius VIDEO_FORMAT aplinkos kintamojo vykdant pirmąją komandą su „dvdauthor“ rodydavo tokią informaciją apie galimą problemą:
„INFO: no default video format, must explicitly specify NTSC or PAL”
o antroji komanda su „dvdauthor“ baigdavosi klaida, ir dvd struktūra nebūdavo iki galo sukuriama.
Na, o sukūrus visą dvd disko aplankų ir failų struktūrą (ją rasite aplanke „dvd“) belieka sukurti *.iso atvaizdą:
$ mkisofs -dvd-video -o Video-dvd.iso dvd/
Kurį po to su bet kuria dvd įrašymo programa (pvz., su K3b) galima įrašyti į DVD diską.
Arba, DVD diską galima iškepti tiesiogiai iš kietajame diske esančio aplanko „dvd“ tokia komanda:
$ growisofs -Z /dev/dvd -dvd-video dvd/
🙂
Parašykite komentarą