De La DivX La DVD in 80 de Minute
Transcript of De La DivX La DVD in 80 de Minute
De la DivX la DVD in 80 de minute,
O metoda rapida si flexibila
Acest ghid se adreseaza celor care:
- urasc sa vada filme pe ecranul calculatorului
- nu au dispozitia necesara sa traga zeci de metri de cablu prin casa ca sa lege calculatorul de TV
- considera ca investitia intr-un DivX player este nejustificata (bani, timp, nervi din cauza de lipsa
suport firmware etc)
Inainte de a incepe: aceasta este o solutie pe care am pus-o singur cap-la-cap din diferite ghiduri si eu
sunt un amator. Nu cred ca e cea mai buna (si nici cea mai completa) solutie, dar este printre cele mai
flexibile si mai rapide. O data ce invatati aceasta rutina va puteti face singuri propriile setari pentru a
obtine propriul rezultat optim. Daca aveti sugestii pentru imbunatatiri, promit sa actualizez acest ghid
(in masura timpului disponibil).
Inca un disclaimer legat de timpul ‘trambitat’ in titlu: acest timp (de fapt un pic mai scurt, cam 70 de
minute :P) este obtinut pe un P4 la 3.0GHz cu HT si SSE2 (relevant la codare), cu 1GB de RAM si HDD
S-ATA (relevant la multiplexare). Asa ca daca sunteti incepatori sau aveti un calculator mai lent, sa nu
va asteptati la o asemenea viteza, insa cert e ca este o metoda foarte rapida, principalul ‘vinovat’
fiind desigur CCE :).
Ce vom face pe scurt: luam un (singur) AVI, aplicam subtitrarea pe el, facem re-size si separam
sunetul. AVI + subtitrarea vor fi multiplexate si fluxul rezultat va fi re-codat ca mpv (video MPEG2
compliant). Sunetul va fi re-codat ca mp2 (audio MPEG2 compliant). Cele doua fluxuri (mpv si mp2)
vor fi apoi re-multiplexate intr-un MPEG2 clasic.
Ca urmare un alt punct interesant este ca acest ghid poate fi descompus in ghiduri mai mici:
- cum se ‘lipeste’ o subtitrare permanent pe un film (pasii 1 + 3b)
- cum se face frameserving de la VirtualDub la Cinema Craft Encoder (pasul 3c)
- cum se proceseaza sunet in BeSweet (pasul 2)
- cum se multiplexeaza fluxuri audio si video pentru obiecte DVD (pasul 6)
Nu am acoperit cazul in care aveti 2 AVI-uri, deoarece lucrurile se complica daca apar decalaje la
sunet etc, asa ca recomand sa luati fiecare AVI si sa-l treceti prin aceasta procedura.
Software necesar:
Subtitle Workshop 2.51– freeware. Este cel mai bun si complet program de creare, editare si
conversie de subtitrari pe care l-am intalnit.
VirtualDubMod 1.5.10.1 – freeware. Un excelent program pentru editare liniara video, chiar daca
dezvoltarea sa a fost oprita, principalul developer concentrandu-se pe VirtualDub MPEG2. Mai aveti
nevoie de filtrul de subtitrare pentru VirtualDubMod. Acest filtru se copiaza in folderul ‘plugins’ al lui
VirtualDubMod.
BeSweet [versiunile: BeSweet v1.4, BeSweet Gui v0.6b61] – freeware. Un foarte puternic transcoder
pentru diferite formate audio.
Cinema Craft Encoder SP 2.70.02 – NU este free, folositi versiunea trial daca nu vi-l puteti permite.
Cel mai puternic si mai rapid MPEG encoding software existent pe piata la aceasta ora.
DGPulldown 1.0.3 Un mic utilitar pentru aducerea framerate-ului la standard DVD.
Muxman 0.14g – freeware. Un muxer simplu. Il vom folosi pentru re-multiplexarea fluxului audio si a
celui video intr-un MPEG2. Multiplexeaza si subtitrari, dar aceasta varianta a ghidului o voi publica
ulterior.
0. Informatii despre fisierul AVI (durata: 1 minut)
Inainte de a incepe, avem nevoie de cateva informatii despre AVI-ul pe care il procesam, vom avea
nevoie de ele mai tarziu. Le putem afla ori din utilitarul Gspot, sau pur si simplu deschizand AVI-ul in
VirtualDubMod si mergand la File | File Information…
(IMG:http://img95.imageshack.us/img95/930/00fileinfo8wp.jpg)
Trebuie sa notam urmatoarele informatii:
Fisier video: rezolutie, framerate, durata film.
Fisier audio: sampling rate, audio tag, bitrate.
1. Preparare subtitrare in Subtitle Workshop (durata: 1 minut)
In primul rand, ne asiguram ca subtitrarea este sincronizata corect. Subtitle Workshop are unelte
foarte bune pentru asta, insa acest pas este in afara scopului acestui ghid. In al doilea rand,
subtitrarea trebuie convertita in formatul .ssa (Substation Alpha Script) pentru a putea fi citita cu
filtrul corespunzator din VirtualDubMod. Initial, va puteti defini un template al formatului *.ssa in care
se vor salva subtitrarile (culoare, font, script etc) in functie de propriile preferinte. In acest fel nu mai
trebuie sa aveti grija de aspectul subtitrarii la fiecare conversie:
Link: http://www.turboupload.com/d/12710/01_SSA_Template.avi.html
Conversia este de fapt un simplu File | Save As…, navigati pana la formatul *.ssa si acolo dati dublu-
click.
(IMG:http://img95.imageshack.us/img95/9748/02converttossa6sg.jpg)
Alegeti un nume pentru noua subtitrare si salvati. Puteti inchide acum Subtitle Workshop.
2. Procesare sunet in VirtualDubMod si BeSweet (durata: 10 minute)
Avem doua motive pentru care dorim sa codam sunetul separat:
- formatele non-AVI standard (AC3, MPR VBR) nu sunt prea bine inghitite de VDM
- Cinema Craft Encoder este foarte slab pe partea de audio encoding
Deschideti fisierul AVI din VirtualDubMod.
a. Daca fisierul este format AC3 (cazul filmului nostru)
In acest caz, inainte de de-multiplexare, instalam decompresorul AC3ACM.
Apasam butonul ‘Demux’. Fluxul audio se va salva ca AC3 si il vom pastra astfel in fisierul final,
deoarece muxerele mai noi stiu sa multiplexeze corect AC3.
b. Daca fisierul este format MP3
La deschidere este posibil sa intalniti urmatoarea eroare (la care raspundeti cu ‘Yes’):
(IMG:http://img95.imageshack.us/img95/3179/03vdmsounderror6yd.jpg)
Aceasta inseamna ca fluxul audio este intr-un format care nu este standard AVI si VDM incearca sa-l
rescrie conform standardului AVI (ceea ce inseamna inevitabil eroare si de aceea vom face propria
procesare). Explicatie: formatul AVI (audio-video interleave) este un format destul de vechi si cerea ca
fluxurile audio si video sa fie intercalate la intervale constante. Asta presupunea ca fluxul audio sa fie
codat la un bitrate constant (CBR = constant bitrate), lucru care nu mai este atat de raspandit cu
tehnologiile optimizate de azi (de ex. VBR = variable bitrate).
Din acest motiv vom urma sfatul dat de VDM si vom salva un flux WAV, care este nedistorsionat de
‘interventia’ lui VDM si se va procesa corect in BeSweet. Atentie, un WAV (uncompressed audio) la un
film de o ora si jumatate poate ajunge lejer la +1GB, deci asigurati-va ca aveti spatiu pe HDD.
Ca ultim pas, ‘Disable Audio Stream’. Nu vom avea nevoie de sunet mai departe in VDM.
Link: http://www.turboupload.com/d/12711/04_Demu..._audio.avi.html
Deschidem BeSweet GUI si luam ca input fisierul pe care tocmai l-am creat cu VDM. Setam conversia
in MP2 in felul urmator:
(IMG:http://img95.imageshack.us/img95/5981/05besweetmp319ie.jpg)
(IMG:http://img95.imageshack.us/img95/5779/06besweetmp329gs.jpg)
Apasam ‘MP3 to MP2’ (sau ‘WAV to MP2’) si asteptam sa se termine procesarea. Care se afiseaza intr-
o fereastra DOS (BeSweet este un program command-line):
(IMG:http://img95.imageshack.us/img95/305/07besweetprocessingmp31ze.jpg)
Aceasta asteptare poate sa insemne in jur de 7 minute pentru un sunet de o ora si jumatate.
Dati un scurt preview la sunet sa fiti siguri ca volumul este suficient si nu apar distorsiuni.
3. Procesare AVI + filtrare subtitrare in VirtualDubMod + frameserving in CCE (durata: 5
minute)
Ne intoarcem la VirtualDubMod.
a. rescalarea
Deoarece formatul AVI nu are rezolutii standard si majoritatea filmelor nu sunt oricum in format
letterbox (practic in VDM vezi filmul intr-o fereastra cat imaginea), este foarte putin probabil ca sursa
AVI sa aiba aceeasi rezolutie cea standard pentru DVD. Deci va trebui sa rescalam cadrul filmului
pentru a se vedea corect pe ecran.
Matematica este destul de simpla pentru nivelul acesta si implica 2 pasi:
- aflarea aspect ratio pentru AVI-ul original. Am aflat rezolutia de 576 x 320 la pasul 0. Aspect ratio
este deci 576 / 320 = 1.8
- calcularea rezolutiei pentru DVD, pastrand acelasi aspect ratio. Avand in vedere ca latimea standard
pentru formatul DVD este 720, inaltimea filmului va fi de 720 / 1.8 = 400. Aveti grija ca inaltimea
filmului sa fie un multiplu de 16, deoarece standardul MPEG face codare in blocuri de 16. Daca nu
faceti asta, va veti trezi cu artifacte pe marginea cadrelor, care inseamna bitrate risipit si deranjeaza
ochiul la vizionare. In acelasi timp, doriti sa plasati acest cadru in cadrul standard pentru NTSC DVD,
care este 720 x 480.
Vom incarca si aplica filtrul de resize cu setarile din video. E de preferat filtrul Precise Bicubic cu un A
= -0.6, se pare ca da cele mai consistente rezultate, dar puteti experimenta si cu A = -0.75. Filtrul
bicubic va mananca mai multe resurse, insa are o calitate superioara, de exemplu, filtrului bilinear,
care este in consecinta mai rapid. Dupa cum doriti.
Link: http://www.turboupload.com/d/12717/08_addi...ilters.avi.html
b. subtitrarea
Se aplica si filtrul de subtitrare din acelasi meniu. Cautati fisierul *.ssa pe care l-ati creat la pasul 1 cu
Subtitle Workshop. E bine sa dati si un preview prin film sa vedeti daca aveti scriptul care trebuie (va
apar diacriticele), fontul apare cum doriti etc. Daca sunteti satisfacuti, dati OK, daca nu va trebui sa va
intoarceti in Subtitle Workshop si, cel mai probabil, sa modificati template-ul de *.ssa pe care l-ati
creat la primul pas.
Link: vezi video de mai sus.
Schimbati procesarea pe ‘Direct Stream Copy’, frameserving-ul (urmatorul pas) va merge un pic mai
repede.
(IMG:http://img95.imageshack.us/img95/8636/09directstreamcopy2lw.jpg)
c. frameserving-ul
Avantajele frameserving-ului sunt evidente:
- se evita crearea de fisiere temporare mari pe HDD si stresul urias pe sistem care vine din asta. Din
aceasta cauza procesul este si mai rapid.
- frameserver-ul (VDM sau AVISynth) trimite cadre video necomprimate catre frameclient (CCE), din
acest motiv nu conteaza cu ce fel de codec (DivX, Xvid etc) a fost comprimat AVI-ul initial.
c1. folosind optiunea din VDM
Vom folosi VirtualDubMod ca frame server pt CCE (care va fi deci frame client). Aceasta inseamna
crearea unui pointer (extensia *.vdr) catre fisierul real AVI care este incarcat in VirtualDubMod.
Link: http://www.turboupload.com/d/12719/10_frameserving.avi.html
NU inchideti procesul pana cand CCE nu va termina de procesat.
Pentru cei care vor sa nu intre in prea multe detalii tehnice (carora li se adreseaza acest ghid),
frameserving-ul prin VDM ar trebui sa fie mai mult decat suficient si pot sari direct la pasul 4.
c2. folosind un script AVISynth (trebuie sa instalati AVISynth 2.5.5 si plug-in-ul sau extern pentru
subtitrari).
Un frameserving si mai rapid (timp cu 30% mai scurt – testat pe acest exemplu) se realizeaza cu un
script Avisynth. Pentru cei care vor sa stoarca timpi cat mai buni de la calculatorul lor, iata scriptul cu
care vom lucra:
CODE
LoadPlugin(("C:\Calea\completa\catre\VSFilter.dll")
AVIsource("C:\Calea\completa\catre\fisier.avi")
BicubicResize(720,400)
AddBorders(0,40,0,40)
TextSub(“C:\Calea\completa\catre\subtitrare.srt")
ConvertToYUY2()
Explicatii despre script:- BicubicResize este filtrul (aproape) similar pe care l-am selectat in VDM, iar AddBorders face letterboxingul pe care l-am introdus in cadrul aceluiasi filtru VDM, astfel incat inaltimea filmului sa devina 40 (banda neagra) + 400 (cadru film) + 40 (banda neagra) = 480 (inaltime standard NTSC DVD)- filtrul TextSub opereaza cu mai multe formate (SRT, SUB, SSA) etc. Am ales sa folosesc subtitrarea originala, deoarece scriptul SSA trebuie modificat la aspectul fonturilor si e mai complicat putin. Daca subtitrarea voastra are o calitate buna, setarile implicite din TextSub ar trebui sa mearga foarte bine.- AVISynth 2.5 opereaza in spatiul de culoare YV12, care este formatul nativ pentru DVD. Din pacate, CCE (inca) nu citeste nativ input YV12 (ceea ce ar ajuta enorm viteza la frameserving, deoarece paleta de culori nu ar mai trebui convertita), ci doar RGB si YUY2. De aici si ultima linie din scriptul nostru.
Acest script simplu se introduce (evident, cu setarile proprii filmului la cale, resize si la borders) intr-un fisier text care se salveaza (sau se redenumeste) cu extensia *.avs.
4. Re-codare in CCE (durata: ~60 minute cu VDM, ~45 minute cu AVISynth)Pornim CCE. Right-click in spatiul de lucru, Add…, dupa care incarcam fisierul *.vdr creat de VDM la pasul c1 (sau fisierul *.avs creat de noi in Notepad la pasul c2). In acest moment CCE este frameclient-ul lui VDM.
Dublu-click pe fisier. Urmeaza fereastra cu setarile CCE. O sa explic propriile mele optiuni, referentiate pe captura:(IMG:http://img182.imageshack.us/img182/1971/11avssettingsro3wv.jpg)
1. am eliminat outputul de sunet (il avem deja ca AC3, sau l-am procesat deja cu BeSweet in MP2)2. calitatea unui DivX este oricum proasta fata de un DVD. Re-codarea nu va imbunatati niciodata calitatea sursei originale. De aceea consider ca un 1-pass VBR este mai mult decat suficient. Am aflat valoarea pentru max bitrate cu Bitrate Calculator sau online la http://www.videohelp.com/calc.htm in care am introdus durata filmului, numarul de CD/DVD-uri pe care o sa ardem filmul si bitrate-ul pe care il punem la fisierul audio (daca avem AC3, luati bitrate-ul aflat de la pasul 0, daca am procesat fisierul audio in BeSweet conform setarilor, atunci bitrate-ul este 224kbps).
(IMG:http://img182.imageshack.us/img182/1841/12bitratecalculator1zc.jpg)3. Atentie la framerate, care trebuie setat la fel cu cel din AVI-ul original.
Dupa ce ne-am jucat destul cu setarile CCE (va puteti face propriile setari in functie de preferinte), dam OK si apasam butonul ‘Encode’. Asteptam sa se termine codarea. Asta poate insemna, pe P4, o viteza de la 1.5x (cu frameserving din VDM) pana la 2.0x (cu frameserving din AVISynth) pentru un film obisnuit. Avand in vedere ca filtrele (mai ales bicubic resize) mananca in jur de 25% din puterea de procesare, viteza nu-i deloc rea, in comparatie cu TMPGEnc. Pentru comparatie, CCE codeaza fara filtrari la o viteza de 4x – 5x.(IMG:http://img182.imageshack.us/img182/1440/13cceprogress3ka.jpg)
Rezultatul codarii este un flux video elementar cu extensia *.mpv, care insa nu este inca conform standardului DVD.
5. Aducerea mpv-ului la standard DVD (durata: 3 minute)Aceasta procedura se numeste ‘pulldown’ si are ca scop transformarea framerate-ului filmului mpv (care trebuie sa fie acelasi cu framerate-ul AVI-ului initial – aflat la pasul 0-, daca am respectat setarile din CCE de mai sus) la un framerate standard pentru formatul DVD care este 29.97 fps.
Atentie, daca nu facem acest pas, sunetul nu va fi sincronizat cu fluxul video!
Pulldown se face foarte simplu cu utilitarul dgpulldown. Imaginea de mai jos nu necesita explicatii:(IMG:http://img182.imageshack.us/img182/3548/14pulldown6os.jpg)
Atentie, nu facem pulldown cu optiunea similara din CCE! CCE foloseste automatic pulldown detection, iar algoritmul folosit lasa de dorit deoarece da frecvent erori din cauza letterboxing-ului aplicat prin filtrul de resize si din cauza artifactelor prezente mai ales la AVI-urile codate puternic (sau prost : ) ).
6. Re-multiplexare cu Muxman (durata: 3 minute)Muxman va re-multiplexa fluxul video (*.pulldown.m2v) si pe cel audio si va crea o structura corecta de DVD (director VIDEO_TS cu IFO, VOB etc). Iarasi, fereastra nu necesita comentarii, atentie doar sa folositi fluxul video la care s-a facut deja pulldown.(IMG:http://img182.imageshack.us/img182/5830/15remux3ka.jpg)
Cand multiplexarea se termina, veti primi un mesaj de genul:(IMG:http://img182.imageshack.us/img182/1718/16remuxresult4xx.jpg)
Folderul VIDEO_TS contine filmul vostru, gata sa fie scris pe un DVD cu burner-ul vostru preferat (de ex. in Nero cu optiunea DVD-Video, sau facut imagine cu ImgTool si imaginea scrisa ulterior cu DVD Decrypter). Dati un preview inainte cu un software DVD player sa fiti siguri ca fluxul audio nu are probleme (volum prea mic, spikes, desincronizări) si ca aspectul este cel dorit.
DVD playerul vostru din living ar trebui sa citeasca discul fara nici o problema. Enjoy.