De La DivX La DVD in 80 de Minute

8
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)

Transcript of De La DivX La DVD in 80 de Minute

Page 1: 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.

Page 2: De La DivX La DVD in 80 de Minute

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.

Page 3: De La DivX La DVD in 80 de Minute

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

Page 4: De La DivX La DVD in 80 de Minute

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.

Page 5: De La DivX La DVD in 80 de Minute

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).

Page 6: De La DivX La DVD in 80 de Minute

(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.