VirtualDub procedurer
Fra PGwiki
VirtualDub procedurer
Indhold
Lyd resampling til SVCD Forsinke et lyd spor - løse video før lyd, og lyd før video problemer Fjerne AC3 lyd fra en AVI fil Fjerne MP3 lyd far en AVI fil Frameserving fra VirtualDub IVTC Sammensætte ukomprimeret lyd og komprimeret video (inklusive MP3 lyd komprimering) Sammensætte AVI filer Sammensætte AVI filer (avanceret) Manuel synkronisering - løse lyd og video synkronisions problemer Multiplexing AVI og MP3 Rederive keyframes - løse problemer med langsom søgning Ændre størrelse til SVCD - hvordan man ændre størrelsen på ethvert input for senere SVCD encodning Dele AVI filer i flere dele Installere Frameserver understøttelse Gå til din VirtualDub mappe og kør filen AUXSETUP.EXE, i den menu der åbner klikker du på ”Install Handler”.
Efter at have installeret handleren, skal du dobbeltklikke på PROXYON.REG, som kan findes i AVIPROXY mappen i VirtualDub mappen. Husk at du SKAL afinstallere frameserveren ved at køre PROXYOFF.REG når du er færdig med at encode.
Starte frameserveren
Nu skal du, hvis du ikke allerede har gjort det, hente en AVI fil, ved at trykke CTRL+O, og sætte video til full processing mode.
Klik så på File—>Start Frame Server, og klik OK I pop-up vinduet. Du vil blive bedt om at skrive et .vdr filnavn. Ignorer det, og skriv et .avi filnavn, for eksempel: server.avi.. Når det er gjort burde dette vindue komme frem, og så er du færdig.
Og her kommer det vigtige: Lad VirtualDub køre indtil du er færdig med at encode. Så snart du trykker på Stop Serving knappen stopper frameserveren, og dit encodingprogram kan ikke fortsætte (eller overhovedet starte).
Multiplexing
Hvis du allerede har en komprimeret lydfil fortsæt da til special instruktionerne (Multiplexing AVI og MP3).
Åbn din video. Vælg derefter din lydfil, som vi selvfølgelig skal komprimere - det ville være et forfærdeligt spild af plads hvis vi ikke gjorde det, så vær sikker på at du vælger en lydkompression, og sætter Audio til Full Processing Mode. Eftersom video allerede er komprimeret, vil vi bare kopiere den, så vælg Direct Stream Copy til video.
Hvis du brugte FlaskMpeg og har slået audio processing til skal du vælge AVI lyd istedet for WAV lyd..
Vælg Audio - Compression for at vælge formatet du vil komprimere til.
Vælg dit lyd codec her. Selvom du kan se DivX lyd, anbefaler jeg ikke at bruge det. DivX lyd har nogle synkronisions problemer og desuden kræver det at man nedsampler til 44.1KHz hvilket involverer et tab af kvalitet og en masse andre problemer. 48KHz MP3 er klart det bedste valg.
Start derefter processen ved at trykke F7. Efter 10 minutter til 2 timer har du en (forhåbentlig synkron) film.
Manuel Synkronisering
Når du oplever en film der ikke er synkron skal du gøre følgende. Du kan også kigge på en alternativ metode længere nede på siden, som er en smule nemmere, men kræver ekstra programmer.
1. skridt: Vælge Rangen
Start med at vælge Video - Select Range. Det følgende vindue vil komme frem.
Her kan du vælge længden på din film. Så, hvis du skal finde den rigtige kilde forskydning (læs nedenfor) kan du sætte længden til et par 1000 frames i stedet for at encode hele file, og så finde ud af at du havde indstillet det forkert. Sørg også for at du vælge et hurtigt lyd codec (DivX audio eller ukomprimeret PCM da mp3 vil tage for lang tid når der kun skal testes).
2. skridt: Kilde forskydning
Lad os tale lidt om Interleaving: Tryk CTRL-I for at vise denne dialog. Hvis videoen ude af synkronisering lige fra starten (hvis den ikke var det skal du gå direkte til 3. skridt)er du nødt til at finde den korrekte kilde forskydning. Hvis videoen er før lyden (lad os sige, at du ser James Bond bevæge sine læber, men du hører først "My name is Bond, James Bond" senere) betyder det, at du skal flytte lyden til venstre - eller indsætte en negativ kilde forskydning.
Hvis lyden er før filmen, skal du bruge en positiv værdi. Dette er den virkelige prøve - der er ikke nogen specifikke hints. Bare en ting: Nogen gange hjælpe det at sætte Interleave audio til 500ms i stedet for til hver frame. Hvis du tror du har fundet den rigtige værdi, gå da til 3. skridt. Husk: Det er muligt, at det at tilføje kilde forskyning fjerner dit problem. I så fald er der ingen grund til at fortsætte med disse instruktioner.
3. skridt: Ændre frameraten
Tryk CTRL - R for at vise framerate indstillingerne
I dette vindue kan du ændre farten på din film, uden at ændre farten på lyden. Eftersom din film bliver usykron hen af vejen (du har forhåbentlig fulgt 1. og 2. skridt) er vi nødt til at sætte farten på videoen op eller ned for at passe til lydens fart. Hvis videoen er hurtigere end lyden (en scene vises på skærmen, før du hører den tilsvarende lyd) er du nødt til at sænke frameraten, ved at manuelt at sætte en lavere framerate (eller gøre frameraten hurtigere, hvis lyden er hurtigere end videoen). Dette er en farlig proces, og jeg anbefaler, at du kan ændrer frameraten i meget små skridt (ca 0.002 fps). Endnu engang hjælper det at bruge et hurtigt lydcodec, da mp3 tager lang tid. Hvis du ikke kan få en video synkron ved at ændre frameraten, er du på den. Men indtil nu har jeg altid kunne synkronisere en film kun med kilde forskydning, og jeg tror ikke at der er nogen film der ikke kan synkroniseres. Efter det er du selvfølgelig nødt til at gemme din avi fil igen. Sørg for at sætte på lyd og video til Direct Stream Copy.
Alternativ metode - dette program kan hentes i doom9.org’s download section.
Vælg din avi fil ved at klikke på mappe ikonet. Vælg derefter den ønskede framerate i det øverste felt, eller vælge en fra listen. Tryk derefter apply.
Alternativ Metode
Denne metode blev foreslået af JD_80 i FlaskMpeg gruppen i Delphi.
Først skal du bruge dette lille program, og en wave editor. Ofte er en sådan editor allerede inkluderet i det software der fulgte med dit lydkort, hvis ikke foreslår jeg, at du får fat på CoolEdit eller lignende. Eftersom der er masser af forskellige værktøjer til denne operation, kan jeg ikke vise nogen billeder, da det kun ville hjælpe nogen få af jer.
Så skal du finde stederne i videoen, hvor du kan “se” lyden. Ved brug af VirtualDub, find da steder hvor døre smækker, scene skift uden fade eller andre former for pludselig lydskift. Det ene af punkterne skal være så tæt på starten som muligt, og det andet så tæt på slutningen som muligt. Noter tidspunktet hvor disse punkter kommer i videoen. Vi kalder disse punkter V1 og V2.
Brug knapperne i gruppe 1 til at gå frem eller tilbage frame for frame, og gruppe 2 til at bevæge dig rundt ved hjælp af keyframes. Du kan se den øjeblikkelige position i videoen i venstre hjørne. Tallene i parenteserne viser den øjeblikkelige position i filmen, for eksempel betyder 0:02:21.236 0 timer, 2 minutter, 21 sekunder og 236 millisekunder. Sørg for, at du finder de rigtig positioner, for jo mere præcis du er, jo mere præcis vil filmen være til sidst.
Åbn nu wave editoren, indlæs wav filen og find de steder du fandt på videoen. Disse kalder vi A1 og A2. Læg også mærke til lydfilens totale længde, den kalder vi Ae. Slut med at gå tilbage i VirtualDub og gå til slutningen af videoen. Læg mærke til tiden her, den kalder vi for Ve. ALLE DISSE NUMRE SKAL LAVES OM TIL SEKUNDER! fx. 15042.847
Når du har alle disse numre, åbn da en kommandopromt, start Synch.exe og skriv de værdier du har regent ud, adskilt af et mellemrum. Tilføj så meget stilhed som værktøjet beder dig om, eller klip i lyden hvis du bliver bedt om dét. Brug din wave editor til at gøre dette.
Til sidst, efter at lydfilen er gemt, følg da instruktionerne til VirtualDub med en undtagelse: Efter alt er blevet gjort klart, tryk CTRL+R og vælg "Change so video and audio durations match". Selvom dette kan lyde kompliceret, er det nemt når man har prøvet det, og det bliver altid perfekt synkroniseret (medmindre du laver upræcise målinger på lyden, eller videoen).
Dele AVI filer Lad os starte med at se hvordan man deler filer i Nandub. Bagefter går vi det samme med VirtualDub, hvor det er mere kompliceret.
Start Nandub, tryk CTRL+O for at åbne en AVI fil. Sæt video til Direct Stream Copy:
Tryk bagefter på Home knappen på tastaturet, og bagefter på CTRL+Shift+J (eller gå ind i Edit - Go to last keyframe hvis du heller vil arbejde med musen):
Indtast her CD størrelsen minus ca. 2 MB. Da du kun kan dele ved keyframes, er det sandsynligt, at hvis du indtaster CD’ens faktiske størrelse, vil den næste keyframe være et par MB efter den grænse, og så bliver filen for stor.
Tryk på OK, hvorefter Nandub rykker frem til stedet hvor der skal klippes. Tryk nu på End knappen på tastaturet, og tryk så F7 for at gemme den første del.
Efter at du har gemt, tryk da på home knappen, flyt skyderen i bunden at vinduet til højre, trykEnd og F7 for at gemme anden del.
Det var det :) Tid til at se din film.
Lad os nu se på hvordan man gør i VirtualDub.
Åbn din film i VirtualDub. Vælg Video, og så Select Range:
Der er ingen måde du kan beregne hvor stor udgangsfilen vil være, så vi bliver nødt til at gætte. Hvis hele filmen er 1300MB skal du klippe cirka halvvejs (del længden med 2, og skriv så den værdi i Length feltet). Du kan vælge længden med offset (et start offset på 1000 betyder, at videon starter ved frame 1000, og et end offset of 2000 betyder, at videoen stopper ved frame 2000) eller med længden i frames/milliseconds. Den sidste er naturligvis den letteste, men virker kun med den første del. Vælg en Start offset på 0, den ønskede længde, tryk OK, og gem filmen. Tjek at filstørrelsen er som du ville have den, hvis ikke, gå da tilbage og vælg en anden længde. Til den anden del af filmen, kopier det der står i End offset feltet til start offset feltet, vælg en længde igen (hvis du laver 3 eller flere dele) eller sæt End offset til 0 (hvilket betyder, at filen vil indeholde alt fra Start offset til slutningen. Sørg for at du deler ved en keyframe, og ikke bare ved en almindelig frame - ellers kan du risikere at miste nogle frames, og så er det umuligt at samle filerne igen. Vigtigt: Sørg for, at du sætte både Video og Audio til Direct Stream Copy. Normalt er audio allerede sat til Direct Stream Copy når du starter men det er Video ikke. Hvis du ikke ændrer dette vil det tage timevis med at dekomprimere, og derefter genkomprimere hele filmen.
Denne skyder kan bruges til at gå fra et sted til et andet hurtigt. Knappen med (1) kan bruges til at gå frem eller tilbage frame for frame, og knappen med (2) kan bruges til at gå frem eller tilbage med keyframes.
Du kan også bruge navigations kontrollerne til at vælge rangen direkte. Under disse operationer er det vigtigt at sikre at du trykker på SHIFT når du bevæger en skyder. Dette vil sørge for at du altid er ved en keyframe. Flyt skyderen til den ønskede start position, og tryk så på HOME. Flyt så skyder til den ønskede slutning og tryk på END. Gem så filmen (F7). Tryk nu HOME igen hvilket vil gøre dem nuværende position til start positionen og flyt skyderen igen (mens du holder SHIFT nede selvfølgelig). Gentag denne proces indtil du har delt filmen i så mange dele som du vil have.
Sammensætte 2 AVI filer
Den nemmeste er hvis de 2 filer ikke overlapper. I så fald kan vi bare sætte den anden fil sammen med den første. Afhængig af hvordan filmen blev delt kan der være en enkelt frame to gange, men det er næsten ikke til at lægge mærke til. Hvis du har to filer der overlapper, gå da til Sammensætte to DivX filer Det bedste værktøj til denne opgave er Nandub da den kan arbejde med selv VBR MP3 og AC3 lyd. Så start Nandub, og indlæs den første AVI Fil.
Vælg så File - Append video segment
Sæt nu både video og audio til direct stream copy.
Tryk nu F7, vælg navnet på filen (sørg for at det er anderledes end de to originalfilers), og tryk OK for at gemme. Efter kort tid har du hele filmen i en fil.
Sammensætte DivX filer
Jeg må tilstå, at jeg fik grundideen fra Nick Pages guide ovre hos DivX Digest. Men, eftersom han ”stjal” low-mo high-mo comboen fra mig, er det sikkert okay.
Så lad os antage at du har 2 DivX filer, ved navn movie1.avi og movie2.avi. Indlæs den første i Nandub. Sæt så både Video og Audio til Direct Stream Copy (Video - Direct Stream Copy, Audio - Direct Stream Copy). Vælg derefter Video - Select Range:
Skriv nu en lille værdi i End offset feltet - i Frames sektionen. Gem så filmen under et andet navn, fx movie1-2.avi. Indlæs derefter avi filen du lige har lavet i Nandub. Sæt derefter den anden fil sammen med den første: Gem herefter din avi fil og afspil den . Forhåbentlig virker det nu.
Nu skal vi til at lave et endnu farligere stunt: Lad os antage, at du har lavet en film i DivX men på et tidspunkt var du nødt til at aborte eller lignende. Senere startede du processen igen, men ved den position hvor du stoppede sidst. Selvfølgelig er du nødt til at vælge en position før der hvor du stoppede første gang, ellers mister du en del af filmen. Lad os nu antage, at du har gjort alle de nødvendige forberedelser og er klar til at gå igang. Du har to filer, en med navnet movie1.avi og en med navnet movie2.avi.
Indlæs movie1.avi i Nandub. Start en anden udgave af Nandub og indlæs movie2.avi i den. Nu skal du finde ud af en passende position til overgangen. Jeg har fundet ud af, at hvis du sammensætter den anden fil ved starten af en keyframe er du klar. Så det du skal gøre nu, er at se slutningen af movie1.avi. Brug NanDubs kontol knapper til at gå frem frame for frame (1) eller keyframe for keyframe (2).
Her kommer den svære del: Gå til movie2.avi, kig på den allerførste keyframe og prøv og finde den præcis samme i movie1.avi. Eller hvis den er for svær at finde, så prøv positionen af den anden, tredje osv. keyframe fra movie2.avi i movie1.avi. Jeg har fundet ud af, at folk der bruger undertekster har en stor fordel her. Når du er sikker på at du har fundet den rigtige position klik på Video - Select Range i movie1.avi, skriv 0 som start offset og position of den frame som du har ledt efter i de sidste 30 minutter *G* i Length feltet (igen taler jeg om frames her, ikke tid). Gem så avi filen under et andet navn, fx movie1-2.avi . Så, hvis du ikke er gået ud fra den første keyframe i movie2.avi, gem den anden avi, men før du gemmer indstil Range som følger: Start offset: den valgte Keyframe og End offset 0. Indlæs derefter movie1-2.avi i VirtualDub, og vælg File - Append video segment som vist på ovenstående billede og sammensæt den modificerede version af movie2.avi eller movie2.avi hvis du ikke har ændret den. Det burde give dig en fuldstændig synkron film, hvor du ikke har mistet en eneste frame.
Ændre Keyframe indstillinger
Åbn Avi filen i VirtualDub, men sæt hak i Popup extended open options i bunden af vinduet
Sæt så hak i Re-derive keyframe flags som vist til venstre. Jeg ved ikke hvordam det virker, jeg har fået fortalt, at det ville hjælpe, men da jeg har aldrig har haft nogen problemer, har jeg ikke haft brug for denne indstilling.
IVTC
Indlæs din AVI fil, eller filer. Tryk CTRL-R
Slå Inverse telecine til, og vælgReconstruct from fields - adaptive. Du kan også prøve de andre indstillinger, men det er denne her der mest sandsynligt vil lykkes
Ændre størrelse til SVCD
Indlæs VFAPI AVI i Virtualdub. Tryk så CTRL-F, indstil subtitle filteret, og tilføj resize filteret. Instil så resize filteret.
Eftersom DVD2AVI ikke har nogen aspect ratio korrektion er vi nødt til at gøre det på den hårde måde her. Her er de instillinger du skal bruge: NTSC: 480x360, sæt hak i expand frame and letterbox og indstil størrelsen til 480x480. PAL: 480x432, sæt hak i expand frame and letterbox og indstil størrelsen til 480x576. Husk at disse værdier kun er til 16:9 film (anamorphic widescreen), i tilfælde af 4:3 film skal du bare ændre til den rette højde, uden at bekymre dig om letterboxing. Sæt filter mode til Lanczos3 for at få de bedste resultater. Tryk OK og luk filter vinduet.
Det kan også være du vil indlæse dit WAV spor i VirtualDub (Audio - WAV audio) men sæt audio til direct stream copy for større fart. Video er sat til full processing mode.
Multiplexing AVI og MP3
Nandub gør denne process meget lettere, og den kan arbejde med alle former for MP3 filer, og ikke kun CBR så det albefales at bruge dette program frem for Virtualdub.
Start Nandub og indlæs din video (Control-O). Sæt så video til direct stream copy (Video - Direct Stream Copy).
Nu skal du indlæse MP3 filen. For at gøre dette, vælg (VBR) MP3 audio fra audio menuen hvilket frembringer et vindue hvor du kan vælge MP3 filen.
Hvis har nedskrevet en lyd forsinkelse i processen, vælg da Interleaving fra den viste menu:
Indtast forsinkelsen fra din AC3 file i Delay audio track by XY ms feltet. Negative værdier skal selvfølgelig have minus foran. Tryk OK. Du behøver ikke at ændre på de andre værdier.
Sørg for at audio også er sat til Direct Stream Copy, tryk F7 og gem AVI filen under et andet navn. Hvis lyden ikke er synkron, gå da til manuel synkronisering.
Tilføje lyd til SVCD
Tryk Audio - WAV audio og vælg WAV filen.
Hvis filen er i 48KHz er du nødt til at downsample den til 44.1KHz som er den sampling rate der bruges til SVCD. Tryk Control-A for at åbne audio conversion vinduet.
Vælg 441000Hz sampling rate og sæt hak i High quality.
Tilføje komprimeret lyd
Start VirtualDub og tryk Control - O for at indlæse din video fil. Sørg for at video er sat til direct stream copy (Video - Direct Stream Copy). Indlæs så din lyd fil (Audio - Wav Audio...) og tjek at den også er sat til direct stream copy. Tryk så F7 for at gemme din avi fil. Prøv under ingen omstændigheder at overskrive den gamle AVI fil.
Udvinde AC3 lyd fra en AVI fil
Start Nandub, tryk Control-O for at indlæse AVI filen, og sæt så audio til direct stream copy.
Vælg nu File - Save WAV.
Vælg et navn , og tryk OK for at starte.
Vi er ikke helt færdig endnu. AC3 filen vi lige har lavet indeholder en WAV header så et AC3 program vil klage over at filen er i stykker. For at fixe dette skal du køre BeSliced, træk filen ind i det lille BeSliced vindue og vælg Fix File! Fra den menu der kommer frem.
BeSliced vil lave en ny AC3 fil ved navn audio_Fixed01.ac3 (hvis altså den originale fil hed audio.ac3) og den fil burde alle programmer kunne åbne.
Udvinde MP3 lyd fra en AVI fil
Start VirtualDub, tryk Control-O for at indlæse AVI filen, og sæt så audio til full processing mode
Vælg nu File - Save WAW
Vælg et navn og tryk OK for at starte.
Du vil få en temmelig stor WAV fil. Da vi satte audio til full processing mode har vi afkomprimeret MP3 filen og lavet den om til en ukomprimeret WAV fil.
Dette er en sikkerhedsforanstaltning, da mange programmer som understøtter MP3 input har lidt problemer med den slags input hvorimod WAV input aldrig er et problem.
Forfatter: Doom9.org
Oversættelse: FreakyFreakJan
