Streaming media onder eComStation en OS/2

> eCS index <
MPlayer voor OS/2 en eComStation
Streaming media
Bandbreedte
MIME types oftewel bestandsformaten
Codecs: comprimeren en decomprimeren
Codecs moet u niet verwarren met bestandsformaten
Browser plugins
Helper applicaties
Media spelers
De MediaPlayerConnectivity plugin
Embedded video
MediaPlayerConnectivity plugin (MCP)
MediaPlayerConnectivity (MCP) instellen
Mplayer tools aanmaken: bestand opslaan
Tools voorbeeld 2: debuggen en experimenteren
MediaPlayerConnectivity (MCP) opnieuw instellen
Video opnemen en afspelen
Analoge tape audio- en videorecorders
Digitale media
Moving Pictures Expert Group (MPEG)
Het fenomeen aandacht
MPEG-4, DivX en XViD
Multimedia frameworks
DVD spelers
Digital Versatil Disk (DVD)
De ISO 9660 bestandssystemen
Universele Disk Formaten
UDF ondersteuning van eComStation
Digital rights management (DRM) van DVD's
MPlayer als DVD speler
DVD bestanden op de vaste schijf afspelen
Online Screen Display (OSD)
DVD's meteen van de DVD speler afspelen
Fouten opsporen met behulp van logbestanden
Verbose loggen
EmperoarTV
Door Emperoar TV ondersteunde container formaten
Mencoder
De relatie tussen Mplayer en mencoder
CPU oververhitting voorkomen
Prioriteit instellen
Materiaal verzamelen
Multimedia bestanden converteren
Met mencoder een DVD analyseren
Extra mencoder opties opgeven
DVD's naar AVI rippen voor de Conceptronics CMED3PLUS USB disk en Media Speler
Met Emperoar TV aangemaakte MPG2 bestanden omzetten in avi
Een film van de vaste schijf of DVD rippen
Conclusie

Meer lezen





MPlayer voor OS/2 en eComStation

> Top <

Movie Player (mplayer) is een open source mediaspeler die allerlei video en audio bestandsformaten aankan. Behalve streaming media afspelen kan mplayer ze ook opslaan in een dumpbestand op de vaste schijf. Mplayer beheerst/emuleert als geen ander open source programma closed source codecs.

Via de nauw met MPlayer verbonden command-line utilities Media Encoder (mencoder) en FFmpeg kunnen de door Mplayer opgevangen dumps naar bestandsformaten als WAV, MP3, DivX, MPG4 worden omgezet. Om bijv. vervolgens via uw brander op een DVD schijf te worden gezet.

Bij dit rekenintensieve codeer en decodeerwerk maken hun bibliotheken (libavcodec, libavformat) slim gebruikt van de multimedia-extensies van uw processor. Het is dan ook geen wonder dat vrijwel alle open source mediaspelers op Mplayer bibliotheken zijn gebaseerd.

FFmpeg was al naar OS/2 geporteerd. Maar voor MPlayer is dat lastiger omdat een mediaspeler contact moet maken met de multimedia functies van OS/2 Presentation Manager (PM). Daar zijn systeembibliotheken voor nodig die zowel voor Linux als OS/2 werken. En een actuele OS/2 gcc compiler die de broncode in machinetaal vertalen kan.

Mplayer ondersteunt gelukkig een veelvoud van output drivers - en een ervan - de door Paul Smedley (http://smedley.info/os2ports/) naar OS/2 geporteerde Simple DirectMedia Layer (SDL) bibliotheek werkt ook onder OS/2. De SDL API wordt o.a. gebruikt door 2D spelletjes als Wesnoth, maar kan ook dienst doen als output voor MPlayer. SDL ondersteunt DIVE, WarpOverlay en DART en kan hiermee de video- en geluidskaart stuurbestanden rechtstreeks benaderen.

De eerste MPlayer/2 versies konden mediabestanden van de vaste schijf of vanaf verwisselbare media (DVD) in een SDL/PM venster afspelen. In maart 2007 zette de Koreaanse ontwikkelaar KO Myung-Hun een MPlayer versie op Hobbes die Windows Media Video (WMV) via een (breedband) internetverbinding afspeelde. KO's testversie speelde echter weer geen DVD's . Maar de actuele Movie Player voor OS/2 ports van Paul Smedley en KO Myung-Hun kunnen vele audio- en videoformaten vanaf allerlei invoerbronnen (internet, CD/DVD, vaste schijf) afspelen en opslaan.

Voor het afspelen van filmpjes vanaf het internet is meestal wel de assistentie van de MediaPlayerConnectivity plugin voor Firefox nodig. Want de URLs van multimediabestanden zitten vaak achter allerlei browser scripts verstopt.

Omdat de achtergrond hiervan vrij ingewikkeld is, ga ik er wat dieper op in. Want om onder OS/2 video te zien is niet een kwestie van alleen maar een media speler en wat plugins te installeren. U moet ook weten wat uw programma's doen. Veelzeggend is dat de handleiding van MPlayer en MEncoder (mplayer.1.txt) maar liefst 189 pagina's telt. En dat een goede handleiding van de MediaPlayerConnectivity plugin ontbreekt.

Roep dus niet te snel "waardeloos" als het niet meteen werkt. Experimenteer ermee en u zult ontdekken dat u met de command-line opties van mplayer en mencoder soms meer kunt doen dan met Windows Media Player onder Windows. Maar eerst: Waar gaat het nu eigenlijk om bij streaming media?

Streaming media

> Top <



Bij streaming media worden beeld en geluid (media) direct over het netwerk worden verzonden. Een typisch voorbeeld van deze techniek is een webcamera die de inhoud van het videobeeld meteen naar de mediaspeler doorstuurt. Ook "life" televisie (http://nl.wwitv.com) en radio (http://www.shoutcast.com) vallen onder streaming media.

Het stromende element is dat de mediabestanden niet op de vaste schijf hoeven te worden gezet. De stuurbestanden van de webcamera plaatsen bijv. om de 20 ms een momentopname van het beeldmateriaal (frame) in een geheugenbuffer, die weer uitgelezen wordt door een ander stuurbestand. De zender stuurt het materiaal via het netwerk naar de ontvanger, die het actuele materiaal ook weer in een geheugenbuffer plaatst. Na een vertraging van seconden tot minuten stuurt de mediaspeler van de ontvanger de frames om de 20 ms (dus 50 frames/s) naar het beeldscherm. Geheugenbuffers vangen de verschillende transmissietijden van de bij hetzelfde frame behorende IP pakketjes op. Vandaar dat enige vertraging onvermijdelijk is.

Bij een internettelevisiedienst als Uitzending gemist (http://www.uitzendinggemist.nl) zullen de de videobestanden op de serverzijde natuurlijk wel op vaste schijven staan. Maar de bestanden worden door een streaming server zo aangeboden dat ze in principe alleen als streaming media kunnen worden ontvangen. Het voordeel is dat de gebruiker niet op de aankomst van het gehele bestand hoeft te wachten. En de aanbieder van de media hoeft minder bang te zijn dat zijn mediatheek illegaal wordt gekopieerd. Met video capture software zou dat wel kunnen, maar de vaak matige beeldkwaliteit nodigt hier niet toe uit. Bovendien zullen de meeste streaming media aanbieders hun materiaal zoveel mogelijk achter allerlei scripts verstoppen. Een directe mms://server.pad/bestand link om op te klikken komt zelden voor.

Bandbreedte

> Top <

Als u een als MPEG 1.0 layer III (128kbit/s, 44100 Hz) gecodeerde stereo radio-uitzending van Shoutcast (http://www.shoutcast.com) via Z! beluistert geeft IP monitor een downloadsnelheid van rond de 16 kB/s op. Voor ons oor klinkt dit als nagenoeg hifi kwaliteit.

Door krachtigercompressietechnieken toe te passen kunnen ook internet televisiestations een redelijke beeldkwaliteit leveren. Bij een televisiebeeld van 380x180 pixels schommelde het bandbreedtegebruik tussen de 40 en de 80 kB/s. Bij een scherm van 480x360 mat ik tussen de 80 en 120 kB/s. Clips van TMF op een 720x576 scherm vroegen 180-230 kB/s. De zender was opgegeven als 1500K op http://nl.wwiTV.com. Blijkbaar waren kilobits/s bedoeld, want 1500 kbits/s =1500/8 kbytes/s of 187 KB/s. Dat kwam redelijk overeen met de downloadsnelheid in kiloByte/s van de IP Monitor van XCenter. De pixelgrootte bepaalde ik via een snapshot van de vensterinhoud met PMView. De uitgezonden kleurdiepte werd niet gemeten, maar 24 bit wordt vaak genoemd.

Gecomprimeerde streaming mediabestanden van hoge kwaliteit (VHS 0,25 MB/s, DVD 1 MB/s en HDTV van 7 MB/s) zullen in de regel via de kabel of ether (digitenne, schotel) aangeboden worden. Als alternatief kunnen ze vanaf het internet gedownload worden. Beveiligingen als moeten inloggen op de server of het moeten beschikken over decryptiesleutels en decoders moeten misbruik voorkomen. Daarnaast bestaat er een levendig alternatief circuit van peer to peer netwerken (Limewire, bittorrent, MLDonkey).

MIME types oftewel bestandsformaten

> Top <

Data worden door programma's in een bepaald bestandsformaat opgeslagen. Soms is dat platte tekst (7 bits ASCII), maar vaker een voor het doel van het programma geoptimaliseerd binair bestandsformaat. Bij proprietary bestandsformaten spelen niet alleen efficiëntie, maar ook marketingskwesties een rol.

Maar het is goed om te weten dat ieder bestandsformaat van de ene naar de andere code kan worden omgezet. Soms mèt ("lossy" encoding) en soms zonder dataverlies. Zo zal secure shell platte tekst zowel versleuteld als gecomprimeerd over het netwerk verzenden.

Audio en video stromen zullen bij voorkeur in efficiënt gecomprimeerde 'lossy" mediabestandsformaten opgeslagen worden. Maar teksten natuurlijk weer niet. Hier is het ZIP-archief de compressiestandaard.

Binaire bestanden kunnen zonder dataverlies naar het 7 bits ASCII worden geconverteerd. ASCI neemt meer ruimte in, maar als tekstbestand kunnen "simpele" SMTP mailservers binaire bijlagen (multimedia, maar ook Word of PDF bestanden) als Multipurpose Internet Mail Extensions (MIME) verzenden.

Dankzij hun MIME type kunnen de mail user agents deze tekstbestanden na "decompressie" weer als het oorspronkelijk bestandsformaat presenteren. Ook webservers en grafische schillen (KDE) maken gebruik van de MIME types. Hierdoor weet de browser om wat voor soort bestand het gaat, zonder van bedrieglijke bestandsextensies afhankelijk te hoeven zijn. Bestandsextensie zijn eigenlijk alleen van belang in de DOS, OS/2 en Windows wereld.

Codecs: comprimeren en decomprimeren

> Top <

Beeld- en geluidsbestanden nemen enorm veel ruimte in. Een film van een uur zou nooit op een DVD van 4,8 GB kunnen staan als deze niet sterk gecomprimeerd was. Door compressietechnieken toe te passen kunnen beeld en geluid op betaalbare mediadragers staan, die snel en gemakkelijk zijn te transporteren.

Voor het COmprimeren en DEComprimeren van digitale geluids- en videobestanden zijn allerlei CODECS (compressie-algoritmes) ontwikkeld. Ze gaan weliswaar met enig dataverlies gepaard, maar de audio en video CODEC kunst bestaat daaruit dat dit signaalverlies niet of nauwelijks door het menselijks oog of oor opgemerkt zullen worden. De MP3, OGG, DIv-X en de MPEG codecs zijn hiervan de bekende voorbeelden.

De meest bekende manier om een bestand zonder dataverlies te comprimeren is het zippen van een bestand. Maar het door GZIP gebruikte algoritme is niet efficiënt voor audio- en videobestanden. Het kost teveel tijd. Tegen de tijd dat een frame ontcijfert is, staan er al andere frames in de wachtrij. Het beeld zal haperen. De lossy compressietechnieken van de Motion Pictures Experts Group (MPEG) die gegevens kunnen negeren of weggooien ter wille van de efficiëntie, werken hier beter.

Als bijvoorbeeld maar 1% van het beeldscherm substantieel beweegt (de lip van de nieuwslezer), is het handig om alleen maar de verandering van het beeld vast te leggen. En de 99% overige pixels van het frame als "verder geen bijzonderheden" te noteren.

Deze de opeenvolgende frames vergelijkende compressietechniek werkt natuurlijk alleen goed als de films vanaf een stevig statief zijn opgenomen. Want als u uw videocamera niet stil houdt, geeft dit niet alleen bewegingsonscherpte, maar vereist de nu bewegende achtergrond (meer pixels zullen veranderen) de opslag van veel meer gegevens en dus meer comprimeerwerk. Omdat uw digitale camera daar de rekentijd (de volgende frame komt eraan) en ruimte (opslagcapaciteit, bandbreedte) niet voor heeft, zal uw digitale film (tijdelijk) bijzonder onscherp worden. Maar haperen zal hij niet. En als het gewiebel alleen zo nu en dan voorkomt, zullen uw visuele hersencellen (die ook maar een beperkte verandering per tijdseenheid aankunnen) dat misschien niet eens opmerken. En dan is de door de codec opgeslagen film/illusie toch gelukt.

Voor snel transport over het internet en dataopslag is compressie een waardevol iets. Maar uw geluidskaart verwerkt geen MPEG-1 Layer 3 (afgekort als MP3) bestanden; de kaart kan alleen met ongecomprimeerde WAV bestanden overweg. Daarom zal de media speler (bijv. Z!) over een MP3 codec moeten beschikken om het gecomprimeerde MPEG-1 Layer 3 signaal weer naar WAV te kunnen omzetten (decomprimeren). De mediaspeler geeft het als WAV gedigitaliseerde signaal weer aan het besturingssysteem van de geluidskaart door. De geluidskaart beschikt over een digitaal naar analoog converter (DAC) die de gedigitaliseerde WAVE samples (pulscodemodulatie (PCM) monsters) als een analoog stroompje aan de luidspreker doorgeeft. Kortom: er komt nogal wat bij kijken als u een digitaal opgeslagen geluidje hoort.

Codecs moet u niet verwarren met bestandsformaten

> Top <

Codecs moet u niet verwarren met bestandsformaten. Het bestandsformaat vertelt een programma hoe het de bestandsinhoud moet interpreteren. Het bestandsformaat van Word versie X zou geïnterpreteerd moten worden als een Word versie X document. Met alle ins en outs van die versie van Word. En dat kan alleen Word versie X optimaal voor u doen.

Maar u bepaalt via de associaties met bestandsextensies of de MIME type welk programma dat het beste voor u kan doen. Want niet ieder *.DOC bestand is door Word opgesteld. Zo kan een DOC bestand een bepaalde Word versie bevatten, maar ook gewoon platte tekst. Een binair Word voor Windows bestand kan bovendien plaatjes, fonts, geluid, scripts, spreadsheets en andere Word bestanden bevatten. Het is een samengesteld (compound) document. En het hangt er maar van af in welke programma versie (OpenOffice.org, WordPro of MS Word) en onder welke omstandigheden en instellingen u het bestand opent hoe die in het bestandsformaat ingesloten (embedded) informatie - bijv. een avi-filmpje of een macrovirus - correct overkomt.

Op dezelfde manier kan een bepaald videobestandsformaat (AVI, VOB, WMV) informatie over tekstbestanden voor ondertiteling, geluidsfragmenten en videobeelden bevatten. En ieder element kan op een andere manier gecomprimeerd worden opgeslagen. Om het bestand af te spelen zal de mediaspeler net als uw tekstverwerker de verschillende - al dan niet gecomprimeerde - data en datastromen via de formele bestandsformaat specificaties (of anders via trial and error) moeten zien te onderscheppen en te decoderen. En het beeld, het geluid en de ondertiteling netjes zien te synchroniseren. En dat is niet altijd gemakkelijk als de meta-informtie in een proprietary bestandsformaat is opgeslagen.

Ieder bestandsformaat en zijn codecs worden - als het goed is - netjes door de codec makers gedefinieerd. Daar maken ze er een implementatie van. Maar proprietary codec makers houden de details van hun bestandsformaat en codering liever voor zichzelf. Ze willen niet zoals IBM met het IBM PC BIOS deed, zo in detail treden dat reverse engineering hierdoor gemakkelijker wordt. Om die reden zullen degenen die de bestandsformaten en hun codecs willen hacken op de trial and error toer over moeten gaan.

En dat betekent dat een door MPlayer als Windows Media Video (WMV) opgeslagen filmbestand niet hetzelfde is als de WMV versie van Windows Media Player. Windows Media Player of WarpVision zullen MPlayers implementaties (lees: interpretaties) van de video meestal wel afspelen, maar er kan ook dataverlies en ruis optreden, omdat de implementaties van de codeer en decodeer algoritmen (codecs) niet overeenkomen.

Browser plugins

> Top <

Nu is het probleem met codecs dat ze gepatenteerd zijn. Om die reden worden mediaspelers of browsers vaak uitgerust met een interface voor plugins. De ontbrekende codecs kunnen als plugins worden geïnstalleerd. Omdat deze als binaries aangeleverd worden hoeft de ontwikkelaar zich minder zorgen te maken over het schenden van zijn patenten.

Onder Mozilla voor OS/2 geeft SET MOZ_PLUGIN_PATH = de map met geïnstalleerde plugins. Mozilla plugins zijn dynamically linked library (DLL's) die de browser aanroept om bepaalde MIME types af te handelen.

Windows browsers downloaden de ontbrekende plugins meestal via het internet. Omdat de meeste mensen Windows gebruiken, worden Linux en OS/2 gebruikers steeds lastig gevallen met de mededeling: Click here to download plugin. Evenals de Windows gebruikers die met beperkte rechten werken: thuis of op de zaak.

Daarnaast bestaan er codecpacks (bijv. codecpack.nl) die het I agree listig omzeilen. Een deels op mplayer bibliotheken gebaseerd codecpack voor WarpVision is op netlabs te vinden. Deze wordt in de SYSTEM32 map van ODIN geplaatst.

Maar omdat de kwestie rondom de patenten niet helder geregeld is zult u deze codecpacks zelden op een Linux distributie aantreffen. En ook niet op eComStation. Zelfs MPlayer (die codecs van Fabrice Bellard's FFmpeg project gebruikte) maakt geen deel uit van de Novell SuSE distributie. U moet dat met de hand doen: Getting proper media support with MPlayer . Maar onder OS/2 kunt u hiervoor op Hobbes terecht (MPlayer).

Helper applicaties

> Top <

Browser plugins als de MacroMedia Flash spelen hun filmpjes binnen een browser venster af (embedded video). Ze maken als dynamically linked library (DLL) deel uit van het proces van de browser. Hierdoor zal het virtuele geheugengebruik van de browser enorm groeien. Onder OS/2 geeft dat vaak problemen. Zie: Virtuele geheugenproblemen op OS/2 systemen. Draad/2. 4 december 2002.

Daarnaast gebruiken browsers externe helper applicaties die specifieke bestanden (als MIME types) openen. Ze draaien niet in een browser venster, maar als een afzonderlijk proces. Acrobat Reader is een voorbeeld. Het PDF-bestand wordt van het internet gedownload en in een tijdelijke (%TEMP%) directory gezet. Daarna neemt Acrobat Reader het over. De kans op vastlopers neemt hierdoor af. Want er draaien nu twee processen, die los van elkaar af te sluiten zijn.

U geeft uw externe hulpprogramma's in Firefox op onder Tools / Content / Manage (File types) en onder Edit / Preferences / Navigator / Helper Applications in Mozilla en SeaMonkey.

Media spelers

> Top <

Voor de meeste videobestanden kunnen externe media spelers als helper applicaties worden gebruikt. De bekendste is de Windows Media Speler die geleverd werd met Windows XP. Omdat de meeste personal computers met Windows XP zijn uitgerust, zijn veel websites hierop afgestemd. In het ergste geval zijn ze niet in staat alternatieve Media Spelers te herkennen en gebruiken ze het alleen onder Windows Internet Explorer (IE) werkende onveilige ActiveX. Gelukkig komt hier door het toenemende gebruik van Firefox snel een einde aan.

Hiernaast biedt de BBC mij (Firefox voor OS/2) aan om van een alternatieve mediaspeler gebruik te maken. Maar onder Windows IE werd via ActiveX automatisch de Windows mediaspeler gelanceerd. In zo'n geval is MPlayer het beste alternatief onder Linux en OS/2.

Media spelers worden net als de andere externe helper applicaties ingesteld in Firefox / Tools / Options / Contents / Manage en aan MIME types gekoppeld, maar voor streaming media kunt u ze beter via de Firefox MediaPlayerConnectivity plugin lanceren. De achtergrond hiervan leg ik u nog uit.

Ook binnen de open source gemeenschap zijn media spelers ontwikkeld. Een belangrijke speler onder OS/2 is WarpVision, die heel formaten aankan, maar een probleem heeft met streaming media vanaf het internet en geavanceerde zaken zoals de ondertiteling van DVD's. Lange tijd gold een verouderde (en dus onveilige) versie van RealPlayer onder ODIN als het beste OS/2 alternatief.

De laatste jaren zijn er steeds meer Linux media spelers naar OS/2 geporteerd. Vrijwel altijd via InnoTeks GCC for OS/2 compiler. Zo kwamen verschillende ports van de MPlayer - The Movie Player en varianten tot stand. Zie Hobbes en op de Mencoder SVN build site van Paul Smedley.

Installeer deze gewoon door hem met een unzipper uit te pakken en een WPS programma-object van mplayer.exe te maken. Omdat KO Myung-Hun's Mplayer.exe volledig statisch gecompileerd is, hoeft u hier geen werkdirectory in te vullen. Zowel bij Paul als bij KO zijn de codecs al inbegrepen. Een LIBPATH aanpassing is dan niet nodig. Voor de ports van Paul Smedley is het handig om de SDL bibliotheken (DLL's) naar het LIBPATH te kopiëren, zodat u mplayer vanuit iedere werkdirectory kunt aanroepen.

Daarna kunt u willekeurige audio- en videobestanden naar het programma-object van mplayer slepen. Ook als de extensie niet klopt. Voor een lijst van ondersteunde mediatypen (ik heb ze niet allemaal onder OS/2 kunnen testen) zie: MPlayer Features.

De enigste extra vereiste is een recente InnoTek LIBC bibliotheek. Deze staan op Netlabs: ftp://ftp.netlabs.org/pub/libc.



MCP logoDe MediaPlayerConnectivity plugin

> Top <

Embedded video

> Top <

Degenen die streaming video en audio op het internet plaatsen willen er meestal geld aan verdienen. Om die reden smukken ze hun multimedia webpagina's met veel reklame op. U ziet een filmpje daarom niet door op de link met de videocamera te klikken. Dat levert slechts het advies om de Windows Media Player te installeren op. Of het advies om Internet Exploren te gebruiken. En ook het bestuderen van de HTML code levert zelden de URL mms://mediaserver.domein/pad.mediabestand.asf op.

Kortom: veel internet filmpjes zijn embedded, verstopt achter ActiveX of javascript.

Nu heeft uw browser tot taak om HTML en script code te interpreteren. Een goede browser houdt hierbij rekening met uw wensen. Dus al dan niet pop-ups, het doorgeven van privacy gevoelige informatie aan de server, etc. Bepaalde browser plugins kunnen hierbij helpen.

MediaPlayerConnectivity plugin (MCP)

> Top <

De missie van MediaPlayerConnectivity (MCP) is simpel:

Allow you to launch embed video of website in an external application with a simple click ...

Als voorbeeld neem ik Uitzending gemist (http://www.uitzendinggemist.nl). Zoek hier een uitzending uit die u af wilt spelen.

De MCP plugin werkt als volgt.

Reageer dus NIET op boodschappen als Click here to get the plugin. MCP werkt dit voor u af, zoals Firefox onderin het beeld laat zien (Transferring data from cgi.omroep.nl..).

Als een reklameboodschap aan de hoofdfilm vooral gaat, moet u soms geduld hebben. Vaak gaat het om flash voorfilmpjes.

MCP logoDe werking van MCP is enigszins te vergelijken met die van een Privoxy. Beide analyseren de HTML en Java scripts en passen de aan de browser geserveerde HTML code aan om hun doel te bereiken. Privoxy geeft reklame aan met een klein logo. MCP geeft streaming content aan met een logo.

Opmerking: Het wachten op de MCP analyse kan soms lang duren. Ik kreeg de indruk dat het langer duurde met de Mozilla instelling:
SET NSPR_OS2_NO_HIRES_TIMER=1

Deze schakelt het gebruik van de hardwareklok door Mozilla uit. Zie: EDM. Als Thunderbird er gebruik van maakt, kreeg hij time-outs op mijn IMAP server bij gelijktijdig gebruik van Emperoar TV, die de klok ook gebruikt. Thunderbird lanceer ik nu dan maar in een script (met SET NSPR_OS2_NO_HIRES_TIMER=1), om time-out problemen met Emperoar TV te voorkomen.

MediaPlayerConnectivity (MCP) instellen

> Top <

U installeert MCP vanaf zijn homepage: MediaPlayerConnectivity :: Firefox Add-ons .

Klik op Nu installeren (Install now) en laat de browser herstarten.

De MediaPlayerConnectivity (MPC) plugin zal eerst een Wizard opstarten, waarbij het zoekt naar plugins en alternatieve Media Spelers. Onder OS/2 heeft dat weinig zin. U moet hem handmatig instellen. Ga hiervoor naar: Mozilla / Tools / MediaPlayerConnectivity / Configure / Tab Media players.


U kunt voor vrijwel alle media (MIME types) het pad naar mplayer.exe invullen. Als alternatief kan Dinks's Z! MP3, M3U Playlist aan. PM123 speelt speelt naast MP3, M3U Playlists streaming OGG.

Voor het afspelen van Real Audio videostreams is Warpvision de beste speler. MPlayer gaf hier alleen het geluid.

Voor Macromedia Flash kunt u flash7_r14.zip gebruiken. Deze hoort in plugins map van uw browser thuis. Het gaat om Flash 7 die zich als Flash 9 aanmeldt. Het is geen alleskunner, maar het toont de flash animaties dan embedded in de browser. Om die reden is er voor Flash geen externe helper applicatie via de MediaPlayerConnectivity plugin geconfigureerd. De Flash DLL's vormen een uitbreiding van de Mozilla browser.

Valkuil: In het Application venster van MediaPlayerConnectivity kunt u geen opties kwijt! Hebt u bijvoorbeeld "mplayer.exe -optie1 -optie2" nodig, gebruik dan een mplayer.cmd batch met %1 om de %f (URL) van MediaPlayerConnectivity op te vangen. Voor een voorbeeld zie verderop.

Voert u per abuis toch teveel opties in MediaPlayerConnectivity in, dan wordt de exe-applicatie niet meer gevonden. U kunt het nog wel handmatig corrigeren in de prefs.js van uw Mozilla profiel.

Ik kwam de tip tegen om de %f in het Expert mode te vervangen door "%f". De dubbele aanhalingstekens voorkomen dat bepaalde strings door de OS/2 opdrachtverwerker worden geweigerd of afgebroken. Aan de andere kant zullen hierdoor BBC News filmpjes die uit eerst meerdere onderdelen bestaan (bijv. eerst een logo filmpje gevolgd door de eigenlijke content) niet volledig worden afgespeeld. De combinatie %f verwijzend naar een mplayer.cmd batch met "pad\mplayer %1 %2 %3 %4" doet het dan beter.

U deactiveert een helper applicatie van de MediaPlayerConnectivity (MPC) plugin door op het tweede icoontje te klikken. Grijze ingangen (hier Z! , 123 en Flash) worden op de gewone manier door de browser afgehandeld.

De helper applicaties kunnen daarom nog wel actief zijn via de Mozilla settings: Firefox/ Tools / Content / Manage (File types). Als Z! daar wel in voorkomt, wordt hij op de klassieke Mozilla manier gelanceerd. Voor SeaMonkey is het klassieke helper applications configuratiemenu te vinden op: SeaMonkey / Edit / Preferences / Navigator / Helper Applications.

De DLLs van Plugins worden gewoon in het MOZ_PLUGIN_PATH gezet. Om die reden is ook Flash gedeactiveerd, want die wordt door Mozilla zelf afgehandeld.

Let ook even op de Legenda van de tab Media Players : Ik kwam nergens een goede uitleg tegen, maar door wat te experimenteren kwam ik tot de volgende conclusies.

Het eerste vinkje E van Embed slaat op Embedded Media. Hiermee zoekt MC naar verborgen links (aanbevolen)

Het tweede vinkje C van ContextMenu biedt de mogelijkheid om een ContextMenu rondom de gevinden medialinks te lanceren (aanbevolen). Via dit contextmenu kunt u o.a. de programma's en batches uit de tab Tools lanceren.

Het derde vinkje F van capture metaFile kan nuttig zijn om een bestand op te slaan (maar hoe?). De DownThemAll plugin kan hier behulpzaam zijn.

Het vierde vinkje A van Autoplay laat de gevonden media automatisch afspelen. U loopt hiermee het risico dat allerlei filmpjes tegelijk verschijnen. Dit is NIET aanbevolen, tenzij u van multimedia spektakel houdt.

Daarna klikt u op Apply om de gegevens op te slaan. U kunt ook op OK drukken, maar dan wordt het configuratiemenu verlaten. Op zich werkt het nu al, maar er zijn nog meer tabs om te bekijken.

Zo kunt u in de Tab Tools alternatieve hulpprogramma's configureren. Of dezelfde programma's maar dan met een ander doel.

Mplayer tools aanmaken: bestand opslaan

> Top <

Hoewel een mplayer dumpbestand geen officieel bestandsformaat is, zou zo'n dump nog wel eens de standaard op de P-2-P netwerken kunnen worden. MPlayer doet immers niet aan de Digital Rights Management (DRM) technieken van closed source mediaspelers als Windows Media Player.

De volgende batch zal de gegevens van een door MCP ontdekte mms://stream (of andere gegevensbron) in een mp-bestand (de naam is willekeurig) opslaan in de TEMP directory.

rem mplayer_dumpstream.cmd
rem Can be used as a MediaPlayerConnectivity Tool. 
c:\mmos2\mplayer_OS2_TEST\mplayer -dumpstream "%1" -dumpfile %TEMP%\dump.mp
pause

Om een BBC News filmpje op te slaan, moet MCP meerdere parameters kunnen opslaan, want anders pakt u alleen de BBC clip:

rem mplayer_dumpstream.cmd
rem Can be used as a MediaPlayerConnectivity Tool. 
c:\mmos2\mplayer_OS2_TEST\mplayer -dumpstream %1 %2 %3 -dumpfile %TEMP%\dump.mp
pause

Als een filmpje bij het dumpen meteen afbreekt, is een handige truc om het filmpje eerst even kort in een PM venster te openen, dan weer af te sluiten (q) en het meteen daarna met mplayer_dumpstream.cmd op te slaan. Ik weet niet hoe het komt, dan gaat het dumpen meestal wel goed. Mogelijk wordt dat de weg van de server naar uw computer via de routers van het internet door de "preview "geplaveid. Maar misschien is het ook wel een manier om de server te bedotten. Hoe dan ook: probeer het na een weigering altijd een tweede keer!


Ga nu naar Mozilla / Tools / MCP / Configuration / Tools tab. Kies Add. Voer de naam "Dump stream" in en geeft het pad op naar mplayer_dumpstream.cmd. Kies Apply en OK om het venster te sluiten.


Zoek nu in de browser naar een MCP Logo. Kies bij voorkeur een http:// of mms:// stream-protocol. Mplayer speelt matig RealTime (rtsp://) movies en nog minder goed het pnm:// protocol.


Door er rechts op te klikken verschijnt het Context Menu van de browser. Kies MediaPlayerConnectivity / Open with / Dump stream. Het downloaden begint na de melding:
Stream not seekable!

Everything done. Thank you for downloading a media file containing proprietary and patented technology.
Core dumped ;)

Exiting... (End of file)

De dumpbestanden zijn te openen met MPlayer, WarpVision en bekende Windows en Linux spelers. Na hernoemen (meestal naar iets als videobestand.wmv of audiobestand.wma) kunt u ze vaak ook op uw mobiele mediaspeler bekijken. En anders maakt u er met mencoder een gecomprimeerde AVI van. Hiervoor gebruik ik gewoon FC/2.

[Editor Associations]
*.{wmv,mpg,vob}: start priority 1 1 mencoder ! -o !x.avi -alang en -oac lavc -ovc lavc

Maar die is dan wel twee keer zo groot dan de mp4 compressie op het internet.

Tools voorbeeld 2: debuggen en experimenteren

> Top <
Om problemen op te sporen en URL's te kopiëren is het handig om MPlayer in een wat groter venster op te starten. Nog mooier is het om de uitvoer naar een logbestand om te leiden (hier: mplayer_test.log in %TEMP%). In dat geval kunt u Mplayer ook in de -v(erbose) modus opstarten. Let er op dat de logbestanden snel > 1 MB worden!
rem mplayer_test.cmd
rem Groot venster
mode co80,50
rem mplayer.exe -v -autosync 30 %1 %2 %3 %4
rem Omleiden van de uitvoer.
mplayer.exe -v %1 > %TEMP%\mplayer_test.log 2>&1
ae %TEMP%\mplayer_test.log
exit
De ruimte na de exit kunt u als commentaar / kladblok gebruiken.
Ook deze batch kunt u in het Tabblad Tools kwijt. 

Ten slotte heb ik voor het testwerk opstart CMDs van verschillende ports ingevoerd. Ik wil er nog een noemen, die beter met trage verbindingen werkt:

Rem Mplayer voor trage verbindingen en/of machines.
mplayer -cache 2048 -framedrop %1

En tenslotte een versie die alleen audiovisuele uitvoer geeft:

Rem Geen CLI uitvoer
mplayer %1 > NULL 2>&1
        

Let op: De opdracht "Mplayer -vo NUL -ao - NUL" geeft juist geen audiovisuele uitvoer naar PM (alleen maar de foutmeldingen).

MediaPlayerConnectivity (MCP) opnieuw instellen

> Top <
Soms komt het voor dat u onder Mozilla / Tools / MediaPlayerConnectivity / Configure / Tab Media players niet meer het plaatje ziet dat ik u voorschotelde. U kunt dan naar %HOME%\Mozilla\Firefox\Profiles\......default\prefs.js gaan en daarin de ingangen die beginne met user_pref("extensions.mediaplayerconnectivity wissen. En dan MCP opnieuw installeren.
Een backup van prefs.js kan natuurlijk ook geen kwaad.

Nog wat over MPlayer

> Top <

MPlayer.exe is in essentie een CLI applicatie. Het downloaden van bestanden vanaf het internet kan vanaf de prompt. Maar zodra er een filmpje wordt afgespeeld op het scherm, wordt Presentation manager gebruikt. U ziet dan twee vensters: het CLI venster met informatie over de multimedia stroom en een PM venster met de naam MPlayer waarin de grafische uitvoer wordt getoond.

Standaard maakt deze speler gebruik van WarpOverlay!, Dive en Dart. Zie de readme.eng. Mocht u Mplayer onder MediaPlayerConnectivity met opties willen gebruiken (zie de readme.eng) gebruik dan een batch.

KPlayer is een KDE schil voor de besturing en presentatie van MPlayer, maar die is er onder OS/2 nog niet.

Een zeer beknopte versie van de MPlayer opties is deze:

Usage:   mplayer [options] [url|path/]filename

Basic options: (complete list in the man page)
 -vo <drv>        select video output driver ('-vo help' for a list)
 -ao <drv>        select audio output driver ('-ao help' for a list)
 dvd://<titleno>  play DVD title from device instead of plain file
 -alang/-slang    select DVD audio/subtitle language (by 2-char country code)
 -ss <position>   seek to given (seconds or hh:mm:ss) position
 -nosound         do not play sound
 -fs              fullscreen playback (or -vm, -zoom, details in the man page)
 -x <x> -y <y>    set display resolution (for use with -vm or -zoom)
 -sub <file>      specify subtitle file to use (also see -subfps, -subdelay)
 -playlist <file> specify playlist file
 -vid x -aid y    select video (x) and audio (y) stream to play
 -fps x -srate y  change video (x fps) and audio (y Hz) rate
 -pp <quality>    enable postprocessing filter (details in the man page)
 -framedrop       enable frame dropping (for slow machines)

De lijsten van de audio en video-uitvoerapparaten:

c:\mmos2\mplayer>mplayer -ao help
Available audio output drivers:
     dart     DART audio output
     mpegpes  Mpeg-PES audio output
     null     Null audio output
     pcm      RAW PCM/WAVE file writer audio output
c:\mmos2\mplayer>mplayer -vo help
Available video output drivers:
     kva      DIVE/WarpOverlay! video output
     null     Null video output
     mpegpes  Mpeg-PES file
     yuv4mpeg yuv4mpeg output for mjpegtools
     tga      Targa output
     pnm      PPM/PGM/PGMYUV file
     md5sum   md5sum of each frame

Het standaard uitvoerapparaat voor de video is kva (een PM venster). Voor de audio is het de Direct Audio Real Time interface van OS/2 (dwz uw luidspreker). Maar u kunt een film ook doorsturen een bestand om te bewerken.

Voor de basale bediening van het PM venster:

Basic keys: (complete list in the man page, also check input.conf)
 <-  or  ->       seek backward/forward 10 seconds
 down or up       seek backward/forward  1 minute
 pgdown or pgup   seek backward/forward 10 minutes
 < or >           step backward/forward in playlist
 p or SPACE       pause movie (press any key to continue)
 q or ESC         stop playing and quit program
 + or -           adjust audio delay by +/- 0.1 second
 o                cycle OSD mode:  none / seekbar / seekbar + timer
 * or /           increase or decrease PCM volume
 x or z           adjust subtitle delay by +/- 0.1 second
 r or t           adjust subtitle position up/down, also see -vf expand

 * * * SEE THE MAN PAGE FOR DETAILS, FURTHER (ADVANCED) OPTIONS AND KEYS * * *

De opsomming van alle MPlayer en MEncoder opties ligt buiten mijn bereik: Zie mplayer.1.txt.

Maar als het journaal te luid klinkt, selecteer dan het MPlayer PM venster en toets / (met de * toets zet u hem weer luider). En u (de)pauzeert met de p.

Video opnemen en afspelen

> Top <

Video opname en weergave problemen kunnen zich op allerlei nivo's voordoen.

Analoge tape audio- en videorecorders

> Top <

Om audio en video op te slaan hebt u veel schijfruimte nodig. Om de opslag betaalbaar te houden werden magnetische banden gebruikt. Tape was immers het goedkope massa opslagmedium bij uitstek. En met de ontwikkeling van gebruikersvriendelijke audiocassetterecorders (Philips, 1963) was al veel ervaring opgedaan.

De opslag van audio via het magnetiseren van bandjes onder de magnetische koppen van cassette-recorders gaf relatief veel vervorming. Niet alleen door de niet altijd constante bandsnelheid, maar ook doordat hoogfrequente bandruis de weergave van de hoge tonen maskeerde. En omdat de band met constante snelheid draait werd bitarme "stilte" met evenveel bandbreedte (en dus ruis) weergegeven als een spetterend symfonieorkest. Pas na toepassing van de slimme geluidscompressie techniek van Ray Dolby kon de bandbreedte van de audiocasette beter worden benut.

De eerste analoge VHS videocassetterecorders voor de consumptiemarkt (JFS, 1976) gebruikten videocassettes om data op te slaan. VHS, de afkorting voor zowel Vertical Helical Scan als Video Home System kon 240 beeldlijnen opslaan. S-VHS (1987) slaat 420 lijnen per beeld op.

VHS en S-VHS kunnen zowel het Europese televisiesignaal PAL als in het in Amerika en Azië gebruikte NTSC-systeem video opslaan. Maar het ene beeldsysteem kan niet als het andere afgespeeld worden.

Digitale media

> Top <

In de jaren zeventig kwamen de eerste digitale audiorecorders op de markt (Denon). Ze gebruikten Pulse-code modulation (PCM) door een digital signal processor (DSP) om de analoge audiosignalen van microfoons als reeksen van enen en nullen (digitaal) op de band op te slaan. Hierbij konden ze gebruik malen van compressietechnieken die al bekend waren van tape backup apparaten.

Tijdens de analoog naar digitaal omzetting (bijv. scannen, digitaal opnemen) gaat informatie verloren, maar de eenmaal gedigitaliseerde informatie (een tif, txt of wav-bestand) kan exact worden gekopieerd. Bij het analoog kopiëren (een fotokopie maken van een fotokopie) gaat daarentegen altijd informatie verloren. Vandaar dat bibliotheken en bedrijven hun analoge informatie (papier, microfilm, magnetische band) steeds meer digitaliseren. En het liefst opslaan op een redundante manier die gegevensverlies door mediarot en krassen voorkomt.

Ook het Compact Disc Digitale Audio Systeem (audio CD, 1982) en de CD ROM (1983) sloegen de informatie digitaal op. Via speciale technieken die van redundantie gebruik maakten konden de cruciale data tegen krassen en andere ongemakken worden beschermd.

Tegenwoordig kan digitale informatie op allerlei manieren worden opgeslagen en verspreid. Dankzij foutcorrectie mechanismen in de hard-en software voor transport en reproductie van digitale media kan deze altijd exact worden gekopieerd. Daarnaast worden digitale bestanden en streams veelvuldig gecomprimeerd en versleuteld om ze economischer en/of meer klant- of regiogericht te verspreiden. Voor het afspelen van de gecodeerde data zijn hardware of software decoders nodig. Om dit coderen van beeld en geluid te standaardiseren zijn de MPEG formaten bedacht.

Moving Pictures Expert Group (MPEG)

> Top <

De standaarden van de Moving Pictures Expert Group (MPEG) zijn algemene 'lossy" methoden voor het coderen van bewegende beelden en geluid. De MPEG codering is "lossy" omdat dit veel minder rekenkracht en bandbreedte vergt.

De MPEG-1 (1991) standaard is vooral bekend door het MPEG-1 Layer 3 (MP3) audiocompressieformaat. De MPEG-1 videocodecs beperkten zich tot niet-geïnterlinieerde beelden in een klein formaat.

MPEG-2 (1994) wordt o.a. in DVD's gebruikt. MPEG-2 varianten kunnen zelfs High Definition TV opnames met een beeldstroom van 1,5 GBit/s tot een bruikbare bandbreedte temmen. Aanvankelijk was daar de MPEG-3 standaard voor bedoeld, maar MPEG-2 compressie tot een "high level" bandbreedte van 80 MBits/s levert al een beeldscherm op van 1920×1080 beeldlijnen bij 30 frames/s. En dat is genoeg voor distributie van digitale televisie via de kabel.

Ter oriëntatie: De "medium level" MPEG-2 bandbreedte van een DVD (VOB bestand) is tussen de 0,3 en 10 MBit/s. Hiermee worden 120 minuten video geleverd. Zouden deze 120 minuten als pure HDTV camera "raw streams" op DVD's worden vastgelegd, dan zou u 120*60*1,5/8 GiB = 1350 GiByte nodig hebben. Kortom: MPEG-2 compressie maakt heel veel uit. Het geeft maar gering "subjectief" kwaliteitsverlies zolang de belangrijkste beeldobjecten (je focus) relatief stil staan. Maar hoe komt dat?

Het fenomeen aandacht

> Top <

In dit verband vond ik het volgende fascinerend: Volgens een schatting van neurobiologen verwerkt de mens via zijn zes zintuigen maar liefst 400 gigabit/s aan informatie, waarvan slechts 2000 bits/s bewust. Oftewel het grootse deel van onze onmiddellijke werkelijkheid gaat verloren. Omdat het onze aandacht niet heeft.

Onze zintuigen nemen het wel waar, maar onze hersenen herkennen het niet. En daarom ontsnapt het aan onze aandacht. Waar een hond opgewonden raakt van een geurspoor, hebben onze meer visueel ingestelde hersenen geleerd het te negeren. We nemen dus maar een heel klein deel van onze werkelijkheid bewust waar.

Tegen onze kinderen die terecht opmerken dat hun benen moe zijn, zeggen de ouders: Niet zeuren, doorgaan, waardoor hun nakroost aangemoedigd wordt om hun vanuit het ruggemerg naar de cortex gelekte beensignalen als hersenspinsels te negeren. Is het dan vreemd dat de meeste mensen de signalen van hun lichaam niet herkennen?

De meeste subliminale prikkels worden slechts heel globaal op subcorticaal niveau afgedaan, bijvoorbeeld door een extra adrenaline afgifte door het geruis van de onze PC (is stress). En na oefening worden bewegingszin en motoriek uiteindelijk grotendeels op ruggemerg niveau afgewikkeld via onwillekeurige reflexen.

Door de bewuste corticale focus op de in onze ogen echt belangrijke informatie - de woorden en gebaren van onze gesprekspartners, maar graag niet te veel en niet al te snel, want we hebben slechts 250 kB/s aan bandbreedte in ons werkgeheugen ter beschikking- worden we bij taken als selectief luisteren niet afgeleid door minder belangrijke zaken. Daarom zeggen we tegen de ordeverstoorders: Nu even niet. Ik ben bezig. We willen het overzicht door teveel taken in ons werkgeheugen immers niet te verliezen. En dus negeren we vaak ook de signalen van ons lichaam.

Aan de andere kant zijn we wel geconditioneerd om te reageren op de ringtones van onze mobieltjes. Of meer aangeboren: Moeders worden wakker van hun huilende baby. Ze herkennen intuïtief onder vele huilende baby's dat ene geluid. Dergelijke deels bewuste, deels half-bewuste signalen werken als de interrupts van de PC, die afhankelijk van hun belang met een niet door het bewustzijn te negeren pop-up of door een achtergrondroutine afgehandeld worden.

Door rijping en ervaring (conditionering) worden onze hersenen efficiënter in het verwerken van de in onze cultuur belangrijk geachte informatie. Jonge kinderen hebben nog eenvoudige beelden nodig (Dick Bruna, TikTak) omdat ze al snel overprikkeld raken. Hun ouders vervelen zich hierbij en zoeken bewust nieuwe prikkels op (ze kijken bijvoorbeeld verwonderd naar de extase van hun kind bij het voor vervelende TikTak).

Het niet kunnen focussen op het essentiële, is voor lijders aan aandachtstekortstoornis (ADHD), overspannenheid en oververmoeidheid een probleem. De beperkte bandbreedte van ons aandachtsveld wordt dan teveel ingenomen door onbelangrijke stimuli, waardoor ze het zicht (de focus) op hun voorgrondtaken verliezen. Door de aldoor optredende pop-ups raken ze het overzicht kwijt en werken dus niet meer doelgericht.

De moraal: Alleen via strenge reductie kunnen we zinvolle data (=informatie) uit de zee van de binnenkomende gegevens destilleren. Deze beperking tot het voor de toeschouwer essentiële is de kern van iedere kunstzinnige film- of verhaaltechniek. De sobere zwart-wit filmstijl van Ingmar Bergman maakte meer indruk dan veel pompeuze breedbeeld Hollywood spektakels. En daarom werken de "lossy" compressie methoden voor audio en video ook zo goed. Want heb je aan gibabits "raw" dataverkeer als je maar heel weinig informatie bewust kunt verwerken? Je moet wel filteren of anders wordt je gek.

MPEG-4, DivX en XViD

> Top <

Als sjabloon voor de officiële MPEG-4 (MP4) standaard (1998) diende Apples Quicktime Movie bestandsformaat uit 1991. Het was gebaseerd op MPEG-1, maar liet multimediaobjecten, een lagere bitrate-encoding en Digital Rights Management (DRM) toe. Daar had de muziek- en filmindustrie wel oren naar. Om een graantje van deze lucratieve markt mee te pikken besloot Microsoft haar eigen Video for Windows (VfW) standaard (lees: codec en bestandsformaat) aan te maken.

Hoewel Microsofts Audio Video Interleave (AVI) formaat (1992) afweek van de MPEG standaard, werd zij door massale verspreiding via het populaire Windows wel de de facto standaard. Microsoft gebruikte een bekende marketing truc: Windows 3x gebruikers kregen de Microsoft MPEG-4 decoder "gratis", maar iedereen die AVI-bestanden optimaal in MPEG-4 wilde coderen moest royalty's aan Microsoft betalen. En natuurlijk werden die kosten uiteindelijk weer op de legale eindgebruikers verhaald.

DivX 3 (1998) was een door DivX Networks gekraakte variant van Microsofts Video for Windows MPEG-4 Version 3 codec. De kennis was er wel, maar processen dreigden. DivX networks besloot closed source te gaan, maar enige open source programmeurs besloten op eigen houtje door te gaan. Hun open source XviD project verbeterde de DivX 3 hack en liet ook het gratis coderen toe. Mplayer en mencoder maken hier gebruik van.

De videocompressie van MPEG4 is enige malen sterker en slimmer dan die van MPEG2, zodat er van een 4 GiB DVD met 120 minuten beeld en geluid een 700 MB AVI, MP4 of MPEG4 bestand overblijft zonder al te veel kwaliteitsverlies. Dit maakt de door Mplayer, DivX en XViD MPEG4 varianten aantrekkelijk op P2P netwerken en op het internet.

Sindsdien propageert Microsoft haar nog niet ontsloten, want zwaar gepatenteerde Active Streaming Format (ASF) containers. Het later naar Advanced Systems Format (ASF type 1) herdoopte bestandsformaat heeft veel voordelen boven AVI, maar alleen de Windows Media Speler kreeg de officiële codecs voor het decoderen mee. Mplayer kan de via het zogeheten Microsofts Media Services (MMS) of het Real Time Streaming Protocol (RTSP) verzonden Windows Media Audio (WMA) en Windows Media Video (WMV) bestanden in ASF type 1 containers afspelen en opslaan, maar omdat de codecs closed source zijn en ASF veel ruimte laat voor Digital Rights Management methoden zoals encryptie zal dit ook wel eens mislukken.

Multimedia frameworks

Zowel van Quicktime als van Video for Windows verschenen er in de loop der tijd geavanceerdere versies. Evenals bij de MPEG standaarden gaat het om object georiënteerde container-bestandsformaten die van alles kunnen bevatten. Vergelijk ze met een Word(pro) bestand dat via OLE ook spreadsheets kan insluiten. Dit maakt nieuwe versies compatibel met de oude en laat ondertussen wel meer features (zoals DRM) toe. Zo liet QuickTime 4.x (1999) als eerste streaming video toe via de QuickTime Streaming Server. RealNetworks RealVideo (1997) was Apple hierin voorgegaan. Ook het via ASF gestroomde Windows Media Video (WMF) stamt uit 1999.

Rond de Quicktime (MOV), Video for Windows (AVI) en ASF bestandsformaten werden hele multimedia frameworks opgebouwd: Het ging dus niet alleen om een "open" container bestandstype met closed source codecs voor de belangrijkste video onderdelen, maar ook om een API voor het bewerken van video en om software voor het afspelen van manipuleren van de digitale video. Kortom: een voor closed source ontwikkelaars attractief pakket. Hier kwam nog bij dat de voor het framework benodigde mediaspelers (Apples QuickTime Player en Windows Media Player) en codecs al bij het besturingssysteem werden geleverd, tot ergernis van Real Networks, die dit natuurlijk als een concurrentievervalsing zag.

Hardwareondersteuning

> Top <

Een meer subtiel concurrentievoordeel van Microsoft zit hem in het feit dat PC hardwarefabrikanten in de praktijk alleen op hun prestaties op het Windows platform worden afgerekend. Hoe een geluidskaart of videokaart onder Linux of OS/2 draait wordt niet of veel later getest. En dus zullen de hardwarefabrikanten hun - vaak te snel uitgebrachte - stuurbestanden en hardware vooral voor Microsofts DirectX API willen optimaliseren. Want die wordt door de meeste benchmarks benut.

Bewust voor de andere besturingssystemen gebruikte open standaarden als de Advanced Linux Sound Architecture (ALSA), de Simple Direct Layer (SDL) of Open Graphics Library (Open GL) geoptimaliseerde hardware zien we maar zelden. Hun ondersteuning is vaak niet dan een legacy bijproduct. Kortom: wilt u snel coderen en decoderen dan bent u vooral afhankelijk van de multimedia extensies van de processor. Maar gelukkig werden die sneller omdat de meeste Windows applicaties trager werden.

Microsofts encoding tools (zoals Windows Media Encoder en Windows Movie Maker) spelen vrolijk op dit concurrentievoordeel in door gebruik maken van Microsofts DirectX Media Objects (DMO) framework. Deze Windows applicaties zijn inderdaad snel op de voor Windows (DirectX) ontworpen hardware. Maar niet toevallig leveren deze encoding tools bij voorkeur bestanden af in de closed source WMA en WMV bestandsformaten.

DVD spelers

> Top <

Van Sony's and Philips's Digital Video Disc (DVD) spelers (1995) kwamen er meerdere typen DVD spelers en schijven op de markt. Dit omdat de televisiesignalen per land kunnen verschillen.

De belangrijkste analoge televisie coderingssystemen zijn NTSC van National Television System Committee uit de Verenigde Staten en het Duitse Phase Alternating Line (PAL) in Europa. Frankrijk koos voor een eigen systeem (SECAM) om haar noodlijdende TV industrie te beschermen. Alle DVD standaarden hebben verschillende resoluties (720×480, 704×480, 352×480 en 352×240 pixels voor NTSC en 720×576, 704×576, 352×576 en 352×288 pixels voor PAL. Ook het aantal beelden per seconde (frame-rate) zijn verschillend: 30 beelden/s voor NTSC en 25 beelden/s voor het als technisch superieur beschouwde PAL.

De verschillende standaarden geven al aan dat het consumentenbelang niet voorop stond. Het beschermen van de nationale industrieën woog zwaar. Iets dergelijks zien we ook terug in het DVD fenomeen regiocode: Films die in de VS (regiocode 1) al in de bioscoop uitgebracht waren werden op DVDs gezet die alleen op Amerikaanse DVD spelers afgespeeld konden worden. Dit moest voorkomen dat ze op Europese DVD spelers (met regiocode 2) bekeken konden worden voordat ze in de Europese bioscoop waren verschenen. Omdat de import en export van DVD's en DVD spelers vrij was, gaf dit nog wel eens onaangename verassingen. Via een BIOS hack was de DVD speler op de neutrale regiocode 0 te zetten.

Voor MPlayer maakt het gelukkig niet zoveel uit. Die detecteert gewoon de in het VOB-bestand opgegeven MPEG-2 resoluties. En heeft lak aan het al in 1999 gekraakte Content Scrambling Systeem en regiocodes. Maar het ROM van uw CD of DVD speler misschien niet. U hebt dan een ripper nodig om de data van de DVD te lezen. Ook bij het branden van een DVD is het gebruikte videosysteem PAL (EU) of NTSC (VS) zeker iets om rekening mee te houden (zie Draad/2 no 4 2006: Het maken van Video-DVD's in eCS ).

Digital Versatil Disk (DVD)

> Top <

De Digital Versatile Disc (1995) kan allerlei bestanden en bestandssystemen bevatten. Zo bestaan er DVD-Video, DVD-Audio, DVD-ROM en diverse DVD recorder schijven. Een single layer DVD (DVD-5) kan 4,7 miljard byte (4,3 GIB) bevatten. Een dual layer DVD (DVD-9) bevat het dubbele. Klassiek worden DVD's geformatteerd als UDF. Afspeelbare Digital Video Disc zullen zowel het ISO 9660 bestandssysteem als het UDF bestandssysteem bevatten.

De ISO 9660 bestandssystemen

> Top <

De International Organization for Standardization (ISO) regelt allerlei industriestandaarden. Voor de CD en later de DVD werden afspraken gemaakt over het gebruikte bestandssysteem.

Het als ISO 9660 bekend staande CD bestandssysteem kreeg in de loop der tijd meerdere variaties (levels) en uitbreidingen: ISO level 1 ondersteunt slechts de 8.3 bestandsnamen van DOS en directories tot 8 nivo's diep, level 2 ondersteunt bestandsnamen van 31 tekens en level 3 staat fragmentatie toe. De ISO 9660 Rock Ridge extensie ondersteunt Unix UGO bestandsrechtensysteem en lange namen. Joliet ondersteunt bestandsnamen in Unicode. De El Torito extensie maakt de CD of DVD bootbaar.

Als u iets brandt voor een standalone CD of DVD speler kies dan voor de eenvoudige DOS namen van ISO Level 1 en bijbehorende ISO 9660 tekenset. Maar voor een backup kiest u liever ISO level 2 of 3 met Joliet type lange bestandsnamen.

Vanwege de ontbrekende UDF ondersteuning van Windows 95, bevatte het door DVD videodisks gebruikte UDF versie 1.02 bestandsformaat (1996) een UDF/ISO brug naar een corresponderend ISO 9660 Level 1 CD-ROM bestandssysteem. De paden en namen van DVD videobestanden (\VIDEO_TS\VIDEO_TS.IFO) zijn zelfs onder DOS leesbaar.

Om die reden kunt u voorbespeelde DVD's gewoon benaderen via de OS/2 ondersteuning van CD ROM's . Voorwaarde is wel dat het ISO 9660 level 1 bestandssysteem niet opzettelijk verminkt is door een CSS beveiliging.

rem Enhanced IDE driver(DANIS506.ADD)
IFS=C:\OS2\BOOT\DANIS506.ADD
rem General Storage Device Manager(OS2DSASD.DMD)
IFS=C:\OS2\BOOT\OS2DSASD.DMD
REM CD-ROM File System (CDFS.IFS)
IFS=C:\OS2\BOOT\CDFS.IFS /Q
rem General CD-ROM manager (OS2CDROM.DMD)
DEVICE=C:\OS2\BOOT\OS2CDROM.DMD  /V /Q
rem OS2CDROM.DMD alternatief in eCS 1.2(IBMCDROM.DMD)
rem DEVICE=C:\ECS\BOOT\IBMCDROM.DMD
rem CDROM ondersteuning voor DOS
DEVICE=C:\OS2\MDOS\VCDROM.SYS

Ook RSJ CD-Writer File System gebruikt alleen maar het ISO 9660 bestandssysteem bij het beschrijven van DVD's. Vandaar ook dat de maximale bestandsgrootte onder het RSJ CDWFS bestandssysteem 2 GiB is.

REM *** RSJ CD-Writer File System ***
BASEDEV=DANIATAPI.FLT /V /RSJ
rem DaniATAPI.FLT vervangt RSJIDECD.FLT,IBMDECD.FLT,IBMATAPI.FLT.
rem BASEDEV=RSJIDECD.FLT
IFS=C:\CDWFS\CDWFS.IFS
RUN=C:\CDWFS\CDWFSD.EXE -p "c:/temp" -c20000 -b2048 -t2 -i3 -s0
DEVICE=C:\CDWFS\RSJSCSI.SYS
BASEDEV=LOCKCDR.FLT
rem ASPI-Router voor CD en DVD's branden
BASEDEV=OS2ASPI.DMD /ALL
DEVICE=F:\os2\system\aspi11b6\ASPIROUT.SYS

Waarvoor dient OS/2's UDF.IFS dan wel? Voor het schrijven van data op een (re)writable CD's, DVD en DVD RAM schijven. En van flash usb-geheugensticks of zelfs vaste schijven. Recente UDF versies ondersteunen bestandsnamen tot 256 tekens, padnamen tot 1024 tekens, veel meer (terabytes) en grotere (> 2 GiB) bestanden, mappen en subdirectories dan enig ISO 9660 bestandssysteem.

Universele Disk Formaten

> Top <

Het door DVD's en DVD RAM schijven (1998) gebruikte Universal Disk Format (UDF) bestandssysteem (ISO 13346) slaat op optische media data in sectoren van 2048 bytes op. De UDF sectoren liggen op een enkel spoor (single track). Een CD of DVD speler draait immers spiraalvormige rondjes van buiten naar binnen. Iedere sector bevat een ECC/CRC controle waarmee na te gaan is of de sector goed uitgelezen is. Het UDF bestandsformaat is universeel in die zin dat het op allerlei media past en voor allerlei doeleinden is te gebruiken. Het kent daarom ook vele variaties.

Door de verschillende versies en uitbreidingen van het UDF bestandssysteem en ook door de ondersteuning van encryptie is het niet vanzelfsprekend dat uw combinatie van DVD lezer/speler ROM en UDF stuurbestand uw DVD's altijd goed inleest of aanmaakt. Het komt dus regelmatig voor dat bekende DVD brandersoftware als Nero DVD's branden in een UDF versie die niet door uw DVD speler of uw OS/2 , Windows of Linux drivers worden ondersteund.

De bestanden kunnen op verschillende manieren in UDF worden opgeslagen: plain, VAT of spared.

Het oudste plain UDF schrijfformaat laat op zich willekeurige lees en schrijf acties toe (packet writing). De bestandslokaties worden in directory ingangen vastgelegd. Plain UDF kan daarom ook worden gebruikt op vaste schijven en DVD RAM media. Het wordt door vrijwel alle apparaten en UDF drivers ondersteund.

CD+R en DVD+R media kunnen echter maar eenmaal worden beschreven (write-once media). Daarom worden het bestandssysteem (ISO 9660 en/of UDF) en de data in één keer van begin tot eind gebrand. De blokken die op de vaste schijf (in het iso bestand) willekeurige over de partitie mogen worden verspreid, worden tijdens het branden in de juiste volgorde als een gelijkmatige stroom van informatie aan de speler aangeboden. Als dit proces voortijdig onderbroken wordt gaan de inhoud van de schijf - en vaak ook de schijf zelf - verloren.

De VAT variant van UDF laat het in stappen (incrementeel) beschrijven en wissen van DVD-R schijven toe. Een UDF schijf kan dan tijdens een brandsessie bijvoorbeeld voor de helft beschreven worden en tijdens een andere brandsessie voor de andere helft. Worden bestanden "gewist", dan wordt dit slechts in de VAT structuur aangeven. Maar omdat de sectoren van +R schijven maar een keer beschreven kunnen worden komt er na het "wissen" van oude bestanden nooit ruimte vrij. En met speciale hulpmiddelen zijn de gewiste data nog steeds te lezen.

De echte (rewritable) CD en DVD +RW laten zich enige honderden malen beschrijven. Data is daarom ook te wissen door er een nieuw bestandssysteem op te schrijven of (veiliger) te overschrijven met nullen. Voor deze schijven is de "spared" UDF formaat ontworpen, dat net als een vaste schijf over reserve sectoren beschikt, die gebruikt kunnen worden om versleten sectoren te vervangen (remappen). Overigens kunnen lang niet alle UDF apparaten hiermee overweg.

UDF ondersteuning van eComStation

> Top <

De OS/2 UDF driver van IBM wordt in de CONFIG.SYS geladen. Hij werkt evenals JFS.IFS samen met de Universal language support driver UNICODE.SYS.

DEVICE=C:\OS2\BOOT\UNICODE.SYS
rem CD-RW, DVD-ROM and DVD-RAM-Filesystem (plaats voor CDFS.IFS)
IFS=C:\OS2\BOOT\UDF.IFS /Q

Vanaf UDF versie 1.5 (1997) liet UDF "packet writing" op herschrijfbare CD en DVD media toe. Windows 2000 en de Linux 2.4 kernel kunnen dit bestandsformaat (zonder hulp van Nero e.a.) slechts lezen, maar alleen Windows Vista, Mac OS 8.6 l en Linux 2.6 kunnen het ook zelf beschrijven. Onder OS/2 kon dit al veel eerder. Zie: Draad/2 van april 2004.

U formatteert een herschrijfbare CD of DVD schijf met:

FORMAT <drive:> /FS:UDF /L 

Voor zover ik kon nagaan ondersteunt de OS/2 UDF.IFS driver van IBM UDF 1.0x (met UDF/ISO-Bridge techniek) tot en met 2.0.1. De "packet writing" van UDF 1.5 op CD-R(W) en DVD-R(W) media wordt prima ondersteund, maar niet de Blu-Ray techniek van UDF versies 2.50 en 2.60.

Vraag: kun je een onder OS/2 aangemaakte DVD in je DVD speler afspelen? Bijvoorbeeld een torrent downloaden, deze met RSJ in ISO 9660 stijl als geheel of als UDF 1.5 "beetje bij beetje" naar een beschrijfbare DVD pompen? Ja dat kan, maar of het afspelen lukt hangt weer af van het ROM van je DVD-speler. Ik denk daarom dat je in RSJ het best voor het breed ondersteunde ISO 9660 level [1] kunt kiezen (NB: level 3 is de default). UDF 1.5 moet u meer zien als een medium voor backups.

Digital rights management (DRM) van DVD's

> Top <

Onder de noemer digital rights management (DRM) vallen allerlei methoden en technieken die bedoeld zijn om het copyright van digitale media te beschermen. Het varieert van een waarschuwing op de verpakking tot de versleuteling van de media (CD, DVD).

Om het illegaal kopieren tegen te gaan worden voorbespeelde commerciële DVD's meestal versleuteld. Dit kan door versleuteling van de de MPEG-2 bestandsinhoud, maar ook door versleuteling van de ISO ingangen op het UDF bestandssysteem. In het laatste geval worden de sectoren van de DVD schijf niet meer betrouwbaar door de OS/2 ISO CD/DVD of UDF DVD stuurbestanden gelezen. En wordt het afspelen op de PC, laat staan het rippen (de inhoud naar de vaste schijf kopiëren) een schier onmogelijke zaak.

De meest gebruikte DVD versleutelingsmethode is het Content scramble systeem (CSS) uit 1996. Vrij vertaald is CSS een de inhoud vervormend mechaniek. Om economische redenen wordt de MPEG-2 film hiermee niet volledig versleuteld, maar op gezette tijden gedeeltelijk vervormd. En wel zo vaak dat het niet meer leuk is om naar te kijken. Het decoderen van de streaming content gaat via een in de DVD speler ingebakken filter, die met een landcode en zijn eigen sleutels uitgerust is en hiermee de decryptie-informatie van de DVD kan aflezen.

De DVD Copy Control Association (DVD CCA) is de door de industrie gesponsorde organisatie die het gebruik van het CSS algoritme bewaakt.

Ze letten er dus op dat de soft- hardware die ervan gebruik maakt, zich netjes aan de regels houden. Zoals Power DVD onder Windows XP hiernaast. Zodat alleen DVD spelers die met de juiste CSS Decryption module uitgerust zijn, de inhoud van met CSS versleutelde DVD's nog betrouwbaar kunnen lezen.

Het content scramble systeem versleutelt DVD's op verschillende nivo's:

Authentificatie van de verwisselbare schijf. Natuurlijk zal een DVD schijf zich niet op eigen initiatief identificeren. Daarom stuurt de met CSS uitgeruste DVD-ROM lezer iedere DVD schijf een met zijn geheime sleutels uitgevoerde CSS challenge response. Alleen de met CSS versleutelde DVD's zullen hier adequaat op reageren. Een correct (dus met de juiste regiocode) uitgevoerde CSS authentificatie van de schijf levert de in de DVD verborgen geheime CSS disk key op. DVD spelers die niet over deze disk key en het geheim gehouden CSS algoritme beschikken zullen geen betrouwbare bestandsinformatie vinden als de UDF directory ingangen met deze disk key versleuteld zijn. Dit kan al gebeuren als uw DVD speler een region code bevat, waarvoor de DVD schijf op dat moment nog niet uitgebracht was. Ook al zijn de DVD en DVD speler inmiddels al 10 jaar oud.

Extra versleuteling van de sectoren met streaming data. Sectoren die MPEG-2 en andere streaming data bevatten kunnen op bestandsnivo met CSS worden versleuteld. Een DVD sector (PACK) begint met een MPEG-2 kop. Sectoren met streaming data bevatten bovendien een stream header, die o.a. aangeeft of de volgende code versleuteld is of niet.

Het maximale streaming cipher key algoritme dat vanuit de VS geëxporteerd mocht worden was 40 bits. Dat is relatief zwak, maar omdat de DVD spelers zowel de voor ontcijfering benodigde geheime sleutel als het ontsleutelingsmechanisme in de hardware bevatten (security by obscurity) waren de met CSS versleutelde DVD's niet zomaar te kraken.

In 1999 werd CSS toch gekraakt door Jon Lech Johansen en twee anoniem gebleven hackers. Ze toonden aan dat het niet nodig was om over de relatief zwakke sleutels in de hardware te beschikken en publiceerden het programma UnCSS dat de geheime CSS sleutels met bruut geweld kraakte. Sindsdien is het softwarematig rippen van DVD's, dus zonder de tussenkomst van de hardware CSS Decryption module gebruikelijk. Ook Warpvision bevat een dvdcss.dll die de met CSS versleutelde DVD schijven probeert te decoderen. De filmindustrie reageerde met een enhanced CSS, die niet door UnCSS wordt gedecodeerd, maar inmiddels wel weer door andere ripper programma's.

MPlayer als DVD speler

> Top <

Technisch gezien gaat het bij het afspelen van DVD's door Mplayer slechts om het in Mplayer openen van de Versioned Object Base (VOB) bestanden in de map VIDEO_TS op de DVD of een VOB bestand op de vaste schijf. Dit zijn MPEG-2 bestanden die door MPlayer achtereenvolgens vanaf een ISO, UDF of ander bestandssysteem worden gelezen, ontleedt, gedecodeerd en via de GUI weergegeven.

DVD bestanden op de vaste schijf afspelen

> Top <

Het afspelen van DVD's van de vaste schijf is doorgaans prettiger dan het afspelen van de DVD-speler van de PC. Er treden minder storingen op en het is rustiger. Bovendien zijn veel geripte DVD bestanden als bittorrent te verkrijgen.

Een DVD video staat de eigenlijke video-inhoud op in een DVD-Video Object met de extensie VOB. VOB is de afkorting van Versioned Object Base. De VOB-bestanden bevatten de film, het geluid, de ondertitels (subtitles) en het OSD menu in een stromend MPEG2 formaat.

Bij een DVD gaat het dus om "streaming media" : een gegevensstroom die vanaf de DVD speler of vanaf de vaste schijf met een vaste snelheid ingelezen moeten worden. De VOB bestanden zijn gecodeerd op vergelijkbare manier als MPEG-2. Sommige MPEG spelers spelen ze dan ook af.

Wat is het doel van deze IFO en BUP bestanden als het VOB bestand alles al bevat?

Het IFO-bestand is een DVD Informatiebestand dat gegevens bewaard over Hoofdstukken, ondertiteling en geluidsbestanden. Het gaat dus om metadata (data over data) die geraadpleegd kan worden buiten de streams om. Bijvoorbeeld: als u eerst de ondertiteling wilt instellen voordat u het streaming (en dus niet gemakkelijk te stoppen) VOB-bestand opent, kunt u het IFO bestand met de mogelijkheden van het VOB bestand raadplegen.

Een praktisch voorbeeld: Als u in FC/2 een IFO bestand opent en de string "nl" vindt, weet u dat er waarschijnlijk Nederlandse taalondersteuning in het bijbehorende VOB bestand zit.


In dit geval worden de volgende landencodes voor gesproken vertalingen (-alang) ondersteund: en, de, fr, it en es. Ze worden voorafgegaan een haakteken en zijn genummerd van 0 (en) t/m 4 (es).

De film ondersteund ondertiteling (-slang) in de volgende landencodes: en, de, fr, it, es, nl, sv, fi, no, da, pt, pl en el. Ook hier loopt de nummering vanaf 0. Nl heeft dus het nummer 5 ("j" toetsen totdat u bij Subtitles (5) unknown aankomt).

Soms komt een landencode meerdere malen voor. Een tweede "en" is dan bijvoorbeeld voor doven bedoeld en geeft commentaar: bijv. "laughter" als er gelachen wordt.

Het standaard opstarten van het VOB-bestand met mplayer -slang nl zou zinvol moeten zijn. Maar helaas wordt de Nederlandse ondertiteling vaak niet gevonden. Een reden kan zijn dat MPlayer de bepaalde informatie uit het IFO bestand mist. Hier heeft de mediaspeler een IFO parser (ontleder) voor nodig.

Het andere VOB-helper bestand heeft de naam BUP. Het BUP bestand is even groot als het IFO bestand. In feite is het zijn identieke backup. De reden hiervoor is simpel. Als er een kras komt over het streaming VOB bestand zal de DVD na een hapering doorspelen. Maar als er een kras komt op het "exacte" IFO bestand, dan zal de DVD lezer vastlopen. Maar via de backup komt het toch weer goed. Tenzij u heel veel krassen aanmaakt natuurlijk.

Onderzoekt u DVD's dan geeft de naamgeving en grootte van de bestanden een indicatie van wat wàt is.

Vaak staan de introductie van de film en het DVD-selectiemenu in het bestand VIDEO_TS.VOB. De hulpbestanden heten typisch VIDEO_TS.IFO en VIDEO_TS.BOP.

De eigenlijke film wordt verdeeld over meerdere VOB-bestanden, die in de door mij onderzochte DVD bestanden tot 1 gigabyte groot waren. Bijvoorbeeld VTS_01_0.VOB tot en met VTS_01_4.VOB.

Soms bevat de DVD nog andere kortere filmpjes (Trailers, The making of.. en BUMA/Stemra informatie) die dan genummerd zijn VTS_02_0.VOB t/m VTS_02_n.VOB, VTS_03_0.VOB t/m VTS_03_n.VOB, etc en ook weer over IFO en BUP metadata kunnen beschikken. Als u pech hebt begint de eigenlijke film achteraan.

Een voorbeeld uit de praktijk.

Bestand

Bytes

Beschrijving

VIDEO_TS.BUP

VIDEO_TS.IFO

22528

22528

Introductie en menu (metadata). VIDEO_TS.BUP is een backup van VIDEO_TS.IFO.

VIDEO_TS.VOB

3530752

Introductie en menu.

VTS_01_0.BUP

VTS_01_0.IFO

110592

110592

De metadata van de eigenlijke film. VTS_01_0.BUP is een backup van VTS_01_0.IFO.

VTS_01_0.VOB

VTS_01_1.VOB

VTS_01_2.VOB

VTS_01_3.VOB

VTS_01_4.VOB

5507072

1048562K

1048444K

1048296K

861536K

De hoofdfilm (in een MPG2 variant gecodeerde streaming content) wordt in 5 VOB bestanden geleverd. Het gaat om dvd://1.

VTS_02_0.BUP

VTS_02_0.IFO

18432

18432

De metadata van de trailer.

VTS_02_0.VOB

VTS_02_1.VOB

10240

64167936

De content (streaming media) van de trailer.

VTS_03_0.BUP

VTS_03_0.IFO

18432

18432

De metadata van een didactisch filmpje over auteursrechten.

VTS_03_0.VOB

VTS_03_1.VOB

10240

26243072

Een kort filmpje waarin gewaarschuwd wordt tegen het illegaal gebruik van de DVD.

In de regel kunt u een met bittorrent gedownloade video DVD bekijken door de VOB bestanden te openen.

Online Screen Display (OSD)

> Top <

Mplayer beschikt over een Online Screen Display (OSD) waarmee onder andere de ondertiteling van de DVD's worden weergegeven. Voor de tekenweergave gebruikt Mplayer het bestand subfont.ttf in de MPlayer Home directory.

Het Online Screen Display moet u niet verwarren met het DVD menu. MPlayer kan de DVD menu's wel summier weergeven, maar een mogelijkheid om het DVD menu via de muis of het toetsenbord te beïnvloeden ontbreekt.

Het OSD zal alleen de speelduur van het actuele VOB bestand weergeven; maar bij een film die meerdere VOB bestanden beslaat is dat niet de speelduur van de gehele film.

De MPlayer Home directory kan worden aangegeven met SET MPlayer Home = pad/map, maar zal standaard %HOME% /.Mplayer worden. Dat is meestal de submap .Mplayer van de SET HOME=[Bootdrive]:\HOME\DEFAULT op een eCS systeem. Bijv. C:\HOME\DEFAULT\.Mplayer.

Wilt u met KO's port van het Online Screen Display gebruik maken, kopieer dan een true type font (bijv. arial.ttf) naar de map %HOME/.mplayer en hernoem deze naar subfont.ttf. Deze wordt dan automatisch geladen.

copy c:\psfonts\arial.ttf c:\home\default\.mplayer\subfont.ttf

In Pauls Smedleys port kunt u een %HOME%/.mplayer/config. bestand gebruiken om de OSD fonts op te geven:

# Write your default config options here!
font=F:\PSFONTS\tnrwt_j.ttf
subfont=F:\PSFONTS\VERA.TTF
prefer-ipv4 = yes
slang=nl

Fonts voor MPlayer vindt u op Index of /MPlayer/contrib/fonts. Overigens zijn ook de op OS/2 al aanwezige True Type Fonts goed te gebruiken.

Ik heb mplayer.exe via Registry Editor net als Mozilla ingevoerd als doel voor Innoteks Font Engine, maar dat bleek niets uit maken. Blijkbaar maakt Mplayer gebruik van truetype.dll.

Hebt u meerdere gebruikers en/of gebruikt u grote fonts (arialuni.ttf is 23 MB!), dan kunt u ook symbolische links aanmaken met behulp van ln uit de GNU Core utilities (coreutils_5.93.zip). Het voordeel is dat u het font maar op een plek op de schijf hoeft te bewaren:

ln -s c:\psfonts\arialuni.ttf c:\home\sjoerd\.mplayer\subfont.ttf
ls -ila
 9127866760652081970 lrwxrwxrwx 1 0 0  24 2007-07-19 08:53 subfont.ttf -> c:\psfonts\arialuni.ttf

De symbolische links werken overigens alleen met UNIX applicaties die er via een aparte ingang in de GCC bibliotheek (libc063.dll) een beroep op doen.

De volgende sneltoetsen kunnen van nut zijn (zie: INTERACTIVE CONTROL in mplayer.1.txt).

"<-"  or  "->"  Seek backward/forward 10 secondsecho
down or up      Seek backward/forward  1 minute
pgdown or pgup  Seek backward/forward 10 minutes
"<" or ">"      Step backward/forward in playlist
p or SPACE      Pause movie (press any key to continue)
q or ESC        Next movie or quit program
o               Cycle OSD mode:  none / seekbar / seekbar + timer
+ or -          Adjust audio delay by +/- 0.1 second
* or /          Increase or decrease PCM volume
F               Toggle displaying "forced subtitles".
v               Toggle subtitle visibility.
j or g          Cycle through the available subtitles.
x or z          Adjust subtitle delay by +/- 0.1 second
r or t          Adjust subtitle position up/down, also see -vf expand

Met de "o" toets zet u het OSD menu aan. Met de "j" toets zoekt u ondertiteling in het VOB bestand op. Maar helaas worden vaak geen of slechts een enkel subtitel-id van het VOB bestand weergeven.

number of subtitles on disk: 0
No matching DVD subtitle language found!

Een goede manier om MPlayer te dwingen ook de Nederlandse ondertiteling in de VOB bestanden te vinden was het instellen van een hoog sublanguage id (sid). Deze optie is niet bedoeld voor externe language files. In dit geval zal de j-toets van "Cycle through the available subtitles" in de regel de eerste 20 eventueel aanwezige ondertitels laten zien.

mplayer -autosync 30 -slang nl -sid 20 20 %1

Daarna zoekt u met "j" naar de juiste taal (in 1 van de 20 id's) . Zonder een hoog sid worden vaak geen of maar twee talen gevonden. De optie -slang=nl bleek vaak niet te werken.




DVD's meteen van de DVD speler afspelen

> Top <

Als uw DVD speler op schijf M: zit zou deze opdracht moeten werken:

mplayer -dvd-device M: dvd://

Dit start MPlayer op met de DVD in schijf M. Extra opties die mij goed bevallen zijn:

mode co100,5
mplayer -autosync 30 -sid 20 -dvd-device M: dvd:// > NUL 2>&1
exit

Maar vaak wordt hierbij alleen maar het eerste VOB bestand afgespeeld. Als zelfs dit niet werkt opent u een VOB rechtstreeks in mplayer en bestudeert u het logbestand (andere batch nemen). Het nadeel is dat u nu ieder VOB bestand apart moet opgeven, hoewel de serie "mplayer M:\VIDEO_TS\VTS_05_0.VOB M:\VIDEO_TS\VTS_05_1.VOB M:\VIDEO_TS\VTS_05_2.VOB M:\VIDEO_TS\VTS_05_3.VOB M:\VIDEO_TS\VTS_05_4.VOB" het ook zal doen. U kunt dan wel vooruit, maar niet van het einde terug scrollen.

Een batch die DVD's op M op VOB's doorzoekt:

mode co100,18
rem mplayer_search_DVD.cmd
rem M is DVD drive
SET MPLAYER_OPTIONS=-alang nl,en -slang nl,en -sid 20 -autosync 20 
:1
cls
@echo off
echo "<-"  or  "->"  Seek backward/forward 10 secondsecho
echo down or up      Seek backward/forward  1 minute
echo pgdown or pgup  Seek backward/forward 10 minutes
echo "<" or ">"      Step backward/forward in playlist
echo p or SPACE      Pause movie (press any key to continue)
echo q or ESC        Next movie or quit program
echo o               Cycle OSD mode:  none / seekbar / seekbar + timer
echo + or -          Adjust audio delay by +/- 0.1 second
echo * or /          Increase or decrease PCM volume
echo F               Toggle displaying "forced subtitles".
echo v               Toggle subtitle visibility.
echo j or g          Cycle through the available subtitles.
echo x or z          Adjust subtitle delay by +/- 0.1 second
echo r or t          Adjust subtitle position up/down, also see -vf expand
echo           Ctrl-C or Break to quit
pause
echo Searching now..
M:
CD \
CD VIDEO_TS
SET MPLAYER_OPTIONS = -alang nl,en -slang nl,en -sid 10
mplayer VTS_00_0.VOB VTS_00_1.VOB VTS_00_2.VOB VTS_00_3.VOB VTS_00_4.VOB VTS_00_5.VOB VTS_00_6.VOB VTS_00_7.VOB VTS_00_8.VOB > NUL 2>&1
mplayer VTS_01_0.VOB VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB VTS_01_5.VOB VTS_01_6.VOB VTS_01_7.VOB VTS_01_8.VOB > NUL 2>&1
mplayer VTS_02_0.VOB VTS_02_1.VOB VTS_02_2.VOB VTS_02_3.VOB VTS_02_4.VOB VTS_02_5.VOB VTS_02_6.VOB VTS_02_7.VOB VTS_02_8.VOB > NUL 2>&1
mplayer VTS_03_0.VOB VTS_03_1.VOB VTS_03_2.VOB VTS_03_3.VOB VTS_03_4.VOB VTS_03_5.VOB VTS_03_6.VOB VTS_03_7.VOB VTS_03_8.VOB > NUL 2>&1
mplayer VTS_04_0.VOB VTS_04_1.VOB VTS_04_2.VOB VTS_04_3.VOB VTS_04_4.VOB VTS_04_5.VOB VTS_04_6.VOB VTS_04_7.VOB VTS_04_8.VOB > NUL 2>&1
mplayer VTS_05_0.VOB VTS_05_1.VOB VTS_05_2.VOB VTS_05_3.VOB VTS_05_4.VOB VTS_05_5.VOB VTS_05_6.VOB VTS_05_7.VOB VTS_05_8.VOB > NUL 2>&1
mplayer VTS_06_0.VOB VTS_06_1.VOB VTS_06_2.VOB VTS_06_3.VOB VTS_06_4.VOB VTS_06_5.VOB VTS_06_6.VOB VTS_06_7.VOB VTS_06_8.VOB > NUL 2>&1
mplayer VTS_07_0.VOB VTS_07_1.VOB VTS_07_2.VOB VTS_07_3.VOB VTS_07_4.VOB VTS_07_5.VOB VTS_07_6.VOB VTS_07_7.VOB VTS_07_8.VOB > NUL 2>&1
mplayer VTS_07_0.VOB VTS_07_1.VOB VTS_07_2.VOB VTS_07_3.VOB VTS_07_4.VOB VTS_07_5.VOB VTS_07_6.VOB VTS_07_7.VOB VTS_07_8.VOB > NUL 2>&1
mplayer VTS_08_0.VOB VTS_08_1.VOB VTS_08_2.VOB VTS_08_3.VOB VTS_08_4.VOB VTS_08_5.VOB VTS_08_6.VOB VTS_08_7.VOB VTS_08_8.VOB > NUL 2>&1
mplayer VTS_09_0.VOB VTS_09_1.VOB VTS_09_2.VOB VTS_09_3.VOB VTS_09_4.VOB VTS_09_5.VOB VTS_09_6.VOB VTS_09_7.VOB VTS_09_8.VOB > NUL 2>&1
mplayer VTS_10_0.VOB VTS_10_1.VOB VTS_10_2.VOB VTS_10_3.VOB VTS_10_4.VOB VTS_10_5.VOB VTS_10_6.VOB VTS_10_7.VOB VTS_10_8.VOB > NUL 2>&1
mplayer VTS_11_0.VOB VTS_11_1.VOB VTS_11_2.VOB VTS_11_3.VOB VTS_11_4.VOB VTS_11_5.VOB VTS_11_6.VOB VTS_11_7.VOB VTS_11_8.VOB > NUL 2>&1
mplayer VTS_12_0.VOB VTS_12_1.VOB VTS_12_2.VOB VTS_12_3.VOB VTS_12_4.VOB VTS_12_5.VOB VTS_12_6.VOB VTS_12_7.VOB VTS_12_8.VOB > NUL 2>&1
echo done

Een wat subtielere variant hierop is:

mode co80,10
rem mplayer_DVD.cmd
rem N is DVD drive
cls
@echo off
echo q  Go to the next movie
echo /  Reduce sound volume
echo o  Toggle OSD states: none / seek / seek + timer / seek + timer + total time.
echo v  Toggle subtitle visibility.
echo j  Cycle through the available subtitles.
echo y  Step forward in the subtitle list.
echo g  Step backward in the subtitle list.
echo F  Toggle displaying "forced subtitles".
echo Ecs to go to the next movie
echo Ctrl-C or Break to quit. 
SET MPLAYER_OPTIONS=-autosync 30 -alang nl,en -slang nl,en -sid 20 -dvd-device N:
mplayer dvd://1 > NUL 2>&1 -autosync 30 -alang nl,en -slang nl,en -dvd-device N:
mplayer dvd://2 > NUL 2>&1 -autosync 30 -alang nl,en -slang nl,en -dvd-device N:
mplayer dvd://3 > NUL 2>&1 -autosync 30 -alang nl,en -slang nl,en -dvd-device N:
mplayer dvd://4 > NUL 2>&1 -autosync 30 -alang nl,en -slang nl,en -dvd-device N:
mplayer dvd://5 > NUL 2>&1 -autosync 30 -alang nl,en -slang nl,en -dvd-device N:
mplayer dvd://6 > NUL 2>&1 -autosync 30 -alang nl,en -slang nl,en -dvd-device N:
mplayer dvd://7 > NUL 2>&1 -autosync 30 -alang nl,en -slang nl,en -dvd-device N:
mplayer dvd://8 > NUL 2>&1 -autosync 30 -alang nl,en -slang nl,en -dvd-device N:
mplayer dvd://9 > NUL 2>&1 -autosync 30 -alang nl,en -slang nl,en -dvd-device N:
mplayer dvd://10 > NUL 2>&1 -autosync 30 -alang nl,en -slang nl,en -dvd-device N:
exit

Let op: Op zich zou de met SET MPLAYER_OPTIONS= ingestelde Mplayer Options variabele (%MPLAYER_OPTIONS%) belangrijke opties als -dvd-device N: aan Mplayer moeten doorgeven, maar in mijn praktijk gebeurt dat niet altijd. Daarom heb ik ze er hier toch maar weer achter gezet.

Tip: verandert u in deze batch de driveletter N: door %1, dan kunt u DVD's rechtstreeks van de vaste schijf afspelen, gewoon door de map met VIDEO_TS erin naar het object te slepen!

U zet het geluid zachter met "/" toets en luider met "*" toets.

Met de "p" toggle pauzeert u of start u de DVD weer op.

Met de "f" toggle schakelt u tussen PM en volledig scherm (fullscreen of -fs).

U "scrollt' door de video met de pijltjestoetsen. Met "PageUp" en "PageDown" navigeert u in sprongen.

En met "o" controleert u of de Online Screen Display (OSD) werkt. Een werkend OSD screen geeft met de "o" toets resterende de tijd aan: Gebeurt dat niet dan moet u een ander font opgeven. Met "j" stelt u de ondertiteling in.

Fouten opsporen met behulp van logbestanden

> Top <

Gaat het mis, raadpleeg dan een logbestand. Hiervoor moet de CLI schermuitvoer naar een bestand omleiden. Hier werd breedsprakig gelogd met de -v(erbose) optie.

mplayer -v -dvd-device n: dvd:// > %TEMP%\mplayer_dvd_n.log 2>&1
ae %TEMP%\mplayer_dvd_n.log

Een slecht afspelende DVD gaf het volgende te zien op mijn laptop:.

==========================================================================
Opening audio decoder: [liba52] AC3 decoding with liba52
No accelerated IMDCT transform found
Using MMX optimized resampler
AUDIO: 48000 Hz, 2 ch, s16le, 192.0 kbit/12.50% (ratio: 24000->192000)
Selected audio codec: [a52] afm: liba52 (AC3-liba52)
==========================================================================
AO: [dart] 48000Hz 2ch s16le (2 bytes per sample)
Starting playback...
A:   0.3 V:   0.0 A-V:  0.271 ct:  0.000   1/  1 ??% ??% ??,?% 0 0              
A:   0.3 V:   0.3 A-V:  0.024 ct:  0.002   2/  2 ??% ??% ??,?% 0 0              
A:   0.4 V:   0.3 A-V:  0.069 ct:  0.006   3/  3 ??% ??% ??,?% 0 0              
A:   0.4 V:   0.4 A-V:  0.052 ct:  0.010   4/  4 ??% ??% ??,?% 0 0              
A:   0.5 V:   0.4 A-V:  0.055 ct:  0.014   5/  5 ??% ??% ??,?% 0 0              
A:   0.5 V:   0.4 A-V:  0.027 ct:  0.016   6/  6 ??% ??% ??,?% 0 0              
A:   0.5 V:   0.5 A-V:  0.029 ct:  0.019   7/  7 ??% ??% ??,?% 0 0              
A:   0.6 V:   0.5 A-V:  0.032 ct:  0.022   8/  8 ??% ??% ??,?% 0 0              

Na korte tijd geeft de Cyclic Redundancy Check van de DVD media fouten aan.

a52: CRC check failed!  
a52: error at resampling
A:   0.7 V:   0.8 A-V: -0.120 ct:  0.018   9/  9 ??% ??% ??,?% 0 0    

Normaal gesproken wijst dit op fouten in het medium. Maar in het geval van DVD's zijn ze vaak opzettelijk aangebracht om de inhoud te beschermen. Via de " enhanced" CSS Decryption module in de DVD hardware worden met opzet aangebrachte fouten gecorrigeerd. Tenminste als u over het juiste BIOS en language code beschikt. Als een legaal gekochte DVD het met MPlayer onder OS/2 niet doet, zou u hem willen terugbrengen naar de leverancier. Maar het vervelende is ook degenen die eerst illegale kopietjes ervan maken met een ripper dit ook doen.

Een "goede DVD" gaf met 2>&1 als uitvoer (en een "q" van "quit" om MPlayer netjes af te sluiten):

De mogelijkheden van de CPU worden onderzocht.

MPlayer dev-SVN-r23698-OS2-3.3.5 (C) 2000-2007 MPlayer Team
CPU: Genuine Intel(R) CPU 3.06GHz (Family: 15, Model: 2, Stepping: 9)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 0 SSE2: 0
Compiled with runtime CPU detection.

De inhoud van de DVD wordt onderzocht. Het DVD menu kent 2 titels en 9 hoofdstukken. Er zijn drie geluidsporen (0-2), waarvan Mplayer wel het formaat (ac3, dts) kan vaststellen, maar niet de taal (unknown aid: 128). Aid staat voor audio id.

Playing dvd://.
There are 2 titles on this DVD.
There are 9 chapters in this DVD title.
There are 1 angles in this DVD title.
audio stream: 0 format: ac3 (stereo) language: unknown aid: 128.
audio stream: 1 format: ac3 (5.1) language: unknown aid: 129.
audio stream: 2 format: dts (5.1/6.1) language: unknown aid: 138.
number of audio channels on disk: 3.
subtitle ( sid ): 0 language: unknown
number of subtitles on disk: 1

Er is slechts een voor MPlayer onbekende ondertiteling beschikbaar. Deze heeft dan automatisch het sublanguage id van 0.

Aangezien de hoofdtaal Engels is, zou er ook kunnen staan:

audio stream: 0 format: ac3 (stereo) language: en aid: 128  

De opdracht om dit audiokanaal met de Nederlandse ondertiteling af te spelen is dus:

mplayer -dvd-device n: -aid 128 -sid 0 dvd://  

Vervolgens wordt het MPEG stroomformaat gelezen. De belangrijkste varianten zijn Program Stream (MPEG-PS) voor DVD's, de Packetized Elementary Stream (MPEG-PES) voor media die na een aantal bytes een packet header voor foutcorrectie bevat of Transport Stream (MPEG-TS) die een nog uitgebreidere foutcorrectie bevat voor onbetrouwbare media als Digital Video Broadcasting. Hier wordt een Packetized Elementary Stream vastgesteld. Daarna wordt een passende video codec opgezocht.

MPEG-PS file format detected.
VIDEO:  MPEG2  720x576  (aspect 2)  25.000 fps  2270.4 kbps (283.8 kbyte/s)
Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough
VDec: vo config request - 720 x 576 (preferred colorspace: Mpeg PES)
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
The selected video_out device is incompatible with this codec.
Try appending the scale filter to your filter list,
e.g. -vf spp,scale instead of -vf spp.
VDecoder init failed :(

De mpegpes decoder van de preferred colorspace (Mpeg PES) kon echter niet op het medium worden geïnitialiseerd. Vervolgens wordt libmpeg2 voor MPEG 1 en 2 gebruikt.

Opening video decoder: [libmpeg2] MPEG 1/2 Video decoder libmpeg2-v0.4.0b
Selected video codec: [mpeg12] vfm: libmpeg2 (MPEG-1 or 2 (libmpeg2))

Vervolgens wordt de audio codec geselecteerd. Het VOB bestand heeft het geluid opgeslagen als Adaptive Transform Coder 3 (AC3), het bitstream formaat van Dolby Digital. IMDCT slaat op de door audiocodecs gebruikte Inverse Modified Discrete Cosine Transform, die hier blijkbaar niet "accelerated" wordt ondersteund.

Opening audio decoder: [liba52] AC3 decoding with liba52
No accelerated IMDCT transform found
Using MMX optimized resampler
AUDIO: 48000 Hz, 2 ch, s16le, 224.0 kbit/14.58% (ratio: 28000->192000)
Selected audio codec: [a52] afm: liba52 (AC3-liba52)
AO: [dart] 48000Hz 2ch s16le (2 bytes per sample)

De DVD wordt afgespeeld. Mplayers audio uitvoer (AO) maakt standaard van OS/2's Direct Audio Real Time (DART) interface gebruik. De 768x576 PM video uitvoer (VO) zal met als het even kan DIVE/WarpOverlay! gebruiken.

Starting playback...
VDec: vo config request - 720 x 576 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
VO: [kva] 720x576 => 768x576 Planar YV12 
[swscaler @ 0x173dd28]SwScaler: using unscaled yuv420p -> bgr24 special converter
A:   0.1 V:   0.0 A-V:  0.036 ct:  0.000   1/  1 ??% ??% ??,?% 0 0                        
A:   0.2 V:   0.1 A-V:  0.021 ct:  0.001   2/  2 ??% ??% ??,?% 0 0    
A:   0.3 V:   0.2 A-V:  0.144 ct: -0.003   3/  3 ??% ??% ??,?% 0 0    
A:   0.3 V:   0.2 A-V:  0.112 ct: -0.005   4/  4 ??% ??% ??,?% 1 0    
A:   0.4 V:   0.1 A-V:  0.235 ct: -0.001   5/  5 ??% ??% ??,?% 1 0

Verbose loggen

> Top <

Een voorbeeld van uitgebreid loggen.

Ik start op met :

mplayer -autosync 10 -sid 16 -v %1 > %TEMP%\mplayer_os2_test.log 2>&1
ae %TEMP%\mplayer_os2_test.log

Het bestand g:\var\log\mplayer_os2_test.log bevat:

MPlayer dev-SVN-r23698-OS2-3.3.5 (C) 2000-2007 MPlayer Team
CPU: Genuine Intel(R) CPU 3.06GHz (Family: 15, Model: 2, Stepping: 9)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 0 SSE2: 0
Compiled with runtime CPU detection.

Mplayer zoekt de codecs (in de OS/2 port zijn ze built-in).

get_path('codecs.conf') -> 'G:\HOME\DEFAULT/.mplayer/codecs.conf'
Reading G:\HOME\DEFAULT/.mplayer/codecs.conf: Can't open 'G:\HOME\DEFAULT/.mplayer/codecs.conf': No such file or directory
Reading /usr/local/etc/mplayer/codecs.conf: Can't open '/usr/local/etc/mplayer/codecs.conf': No such file or directory

Vanwege een ontbrekend bestand %HOME%/.mplayer/codecs.conf worden standaard waarden gebruikt.

Using built-in default codecs.conf.

Dit zijn andere standaard waarden die u op de prompt (opties) op via .mplayer/config kunt wijzigen.

Configuration: --disable-vidix-internal --disable-vidix-external --enable-runtime-cpudetection --disable-ssse3 --disable-select --disable-sdl --disable-termcap --with-extraincdir=/lang/work/mplayer/mplayer2.pack/libdart:/lang/work/mplayer/mplayer2.pack/libkva --with-extralibdir=/lang/work/mplayer/mplayer2.pack/libdart:/lang/work/mplayer/mplayer2.pack/libkva

De mplayer parameters van de opdrachtregel worden verwerkt.

CommandLine: '-autosync' '10' '-sid' '16' '-v' 'N:\VIDEO_TS\VTS_02_0.VOB'

De Freetype library wordt geopend om subfont.ttf te laden.

init_freetype
get_path('font/font.desc') -> 'G:\HOME\DEFAULT/.mplayer/font/font.desc'
font: can't open file: G:\HOME\DEFAULT/.mplayer/font/font.desc
font: can't open file: /usr/local/share/mplayer/font/font.desc
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
get_path('fonts') -> 'G:\HOME\DEFAULT/.mplayer/fonts'

Dit bericht slaat op de standaard methode van timing. De optie -rtc (real time clock) lijkt niet te werken. Een alternatief is softleep=yes in de config.

Using nanosleep() timing

Het bestand .mplayer/input.conf bevat opties voor de invoer.

get_path('input.conf') -> 'G:\HOME\DEFAULT/.mplayer/input.conf'
Can't open input config file G:\HOME\DEFAULT/.mplayer/input.conf: No such file or directory
Can't open input config file /usr/local/etc/mplayer/input.conf: No such file or directory
Falling back on default (hardcoded) input config

Het VOB bestand wordt gelokaliseerd (is niet altijd simpel op het internet of UDF!):

get_path('N:\VIDEO_TS\VTS_02_0.VOB.conf') -> 'G:\HOME\DEFAULT/.mplayer/N:\VIDEO_TS\VTS_02_0.VOB.conf'

Het afspelen begint:

Playing N:\VIDEO_TS\VTS_02_0.VOB.

De map %HOME%/.mplayer/sub/ mag per DVD ingestelde gebruikersopties voor ondertitels bevatten (hier afwezig).

get_path('sub/') -> 'G:\HOME\DEFAULT/.mplayer/sub/'

Het op DVD N: aanwezige bestand N:\VIDEO_TS\VTS_02_0.VOB wordt ontleed:

[file] File size is 157696 bytes
STREAM: [file] N:\VIDEO_TS\VTS_02_0.VOB
STREAM: Description: File
STREAM: Author: Albeu
STREAM: Comment: based on the code from ??? (probably Arpi)
Checking for YUV4MPEG2
ASF_check: not ASF guid!
Checking for NuppelVideo
Checking for REAL
Checking for SMJPEG
Searching demuxer type for filename N:\VIDEO_TS\VTS_02_0.VOB ext: .VOB
Trying demuxer 2 based on filename extension
system stream synced at 0xD (13)!

Maar dit levert niet op (0 = niks en EOF is End of File).

==> Found video stream: 0
==> Found subtitle: 0
MPEG Stream reached EOF
ds_fill_buffer: EOF reached (stream: video)  
MPEG-PS file format detected.
MPEG Stream reached EOF
ds_fill_buffer: EOF reached (stream: audio)  
MPEG: No audio stream found -> no sound.

MPlayer gaat op goed geluk verder. En probeert de MPEG2 stroom op verschillende manieren uit.

Searching for sequence header... OK!
VIDEO:  MPEG2  720x576  (aspect 2)  25.000 fps  2000.0 kbps (250.0 kbyte/s)
[V] filefmt:2  fourcc:0x10000002  size:720x576  fps:25.00  ftime:=0.0400
get_path('sub/') -> 'G:\HOME\DEFAULT/.mplayer/sub/'
==========================================================================
Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough
VDec: vo config request - 720 x 576 (preferred colorspace: Mpeg PES)
Trying filter chain: vo
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
SwScale params: -1 x -1 (-1=no scaling)
Trying filter chain: scale vo
The selected video_out device is incompatible with this codec.
Try appending the scale filter to your filter list,
e.g. -vf spp,scale instead of -vf spp.
VDecoder init failed :(
Opening video decoder: [libmpeg2] MPEG 1/2 Video decoder libmpeg2-v0.4.0b
Selected video codec: [mpeg12] vfm: libmpeg2 (MPEG-1 or 2 (libmpeg2))
==========================================================================
Audio: no sound
Freeing 0 unused audio chunks.
Starting playback...
VDec: vo config request - 720 x 576 (preferred colorspace: Planar YV12)
Trying filter chain: vo
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
VO Config (720x576->768x576,flags=0,'MPlayer',0x32315659)
VO: [kva] 720x576 => 768x576 Planar YV12 
VO: Description: DIVE/WarpOverlay! video output
VO: Author: KO Myung-Hun <komh@chollian.net>
KVA: Using 0x32315659 (Planar YV12) image format
[swscaler @ 0x173dd28]SwScaler: using unscaled yuv420p -> bgr565 special converter
*** [vo] Allocating mp_image_t, 720x576x12bpp YUV planar, 622080 bytes
V:   0.0   1/  1 ??% ??% ??,?% 0 0                                              
*** [vo] Allocating mp_image_t, 720x576x12bpp YUV planar, 622080 bytes
V:   0.1   2/  2 ??% ??% ??,?% 0 0                                              
get_path('subfont.ttf') -> 'G:\HOME\DEFAULT/.mplayer/subfont.ttf'
Unicode font: 1185 glyphs.
get_path('subfont.ttf') -> 'G:\HOME\DEFAULT/.mplayer/subfont.ttf'
Unicode font: 1185 glyphs.
V:   0.1   3/  3 ??% ??% ??,?% 0 0                                              
V:   0.4   4/  4 ??% ??% ??,?% 0 0                                              
*** [vo] Allocating mp_image_t, 720x576x12bpp YUV planar, 622080 bytes
V:   0.4   5/  5 ??% ??% ??,?% 0 0                                              
V:   0.4   6/  6 ??% ??% ??,?% 0 0                                              
V:   0.5   7/  7 ??% ??% ??,?% 0 0                                              
V:   0.5   8/  8 ??% ??% ??,?% 0 0                                              
V:   0.6   9/  9 ??% ??% ??,?% 0 0                                              
V:   0.6  10/ 10 ??% ??% ??,?% 0 0                                              
V:   0.6  11/ 11 ??% ??% ??,?% 0 0                                              
V:   0.7  12/ 12 ??% ??% ??,?% 0 0                                              
V:   0.7  13/ 13 ??% ??% ??,?% 0 0                                              
V:   0.8  14/ 14 18% 11%  0.0% 0 0                                              
V:   0.8  15/ 15 18% 11%  0.0% 0 0                                              
MPEG Stream reached EOF
ds_fill_buffer: EOF reached (stream: video)  
MPEG Stream reached EOF
ds_fill_buffer: EOF reached (stream: video)  
V:   0.8  15/ 15 18% 11%  0.0% 0 0                                              
EOF code: 1  

Uninit video: libmpeg2

Exiting... (End of file)

EmperoarTV

> Top <

Het OS/2 programma EmperoarTV van S&T Systemtechnik GmbH kan met Hauppauge WinTV PVR 150, 250 or 350 TV kaarten (PCI) analoge televisie (PAL, NTSC) weergeven en opnemen. Het wordt zeer goed door ontwikkelaar Rüdiger Ihle onderhouden. Rüdiger Ihle is tevens een gewaardeerd moderator op het OS/2 Warp 4.0/eComStation 1.x (PVR 150/250/350/500) forum op de zogeheten SHS Unofficial WinTV-PVR & MediaMVP.

EmperoarTV heeft een handige Scheduler waarmee de programma's eenmalig (bijv. een film), dagelijks (bijv. het Journaal of NOVA/Den Haag Vandaag) of wekelijks (favoriete serie) met naam en datum opgenomen kunnen worden. De opnames vinden op de achtergrond plaats. Ondertussen kunt u van de geluidskaart gebruik blijven maken. Als EmperoarTV niet altijd in videorecorder modus aanstaat (pad\mpegtv2.exe -v) kunt u dit voor de zekerheid in het WPS object van EmperoarTV VCR aanpassen. Met de WPS scheduler tab wordt EmperoarTV VCR standaard om 19.59 geactiveerd om het vlot daarna het 8 uur journaal en eventueel via de EmperoarTV scheduler te kunnen opnemen.

Bij het doorgeven van MPEG1 en MPEG2 videostromen naar externe bronnen (TV out) kan de Hauppauge 350 WinTV-PVR gebruik maken van een ingebouwde chip voor MPEG2 decompressie.

Bovendien worden op geschikte audio en videokaart hardware, DART en Warp overlay gebruikt, zodat het processorgebruik relatief laag blijft. Emperoar deed het wat dat betreft beter dan de bij de TV kaart geleverde Windows software.

Op Hauppauge Computer Works: WinTV-PVR-350 zegt Hauppauge tegen haar Windows gebruikers hierover:

Dat kan EmperoarTV ook onder OS/2. Met de PVR-500 kunt u zelfs twee videokanalen (voor opslaan en bekijken) tegelijkertijd kiezen.

Hier laat OS/2 ons in de steek. De Hauppauge WinTV PVR 350 TV codeeert alleeen maar MPEG-2 stromen via de uitvoer van de TV videokaart. En de lagere versies doen dit niet eens. Maar er zijn OS/2 programma's waarmee u dergelijke audio- en videoconversies via de snelle MMX functies van de processor uitvoeren kunt.

U zult onder OS/2 en Linux opnieuw het wiel moeten uitvinden, want de gebundelde ULead DVD Movie Factory software werkt alleen onder Windows. Maar Emperoar kan de videostromen wel opslaan in allerlei MPEG-1 en 2 formaten zie verder).

De bestanden worden als MPEG 1 of 2 videobestanden opgeslagen. In de regel neemt een uur DVD extra long play 2 GiB in beslag. Een film van 2,5 uur neemt dus 5 GiB ruimte in. Dergelijke bestanden zijn te groot om via het netwerk te exporteren (2 GiB limiet) of op een FAT32 USB schijf op te slaan (4 GiB limiet).

Om die reden is het handig om de Output file size limit tot 2047 MB (dus < 2 GiB) te beperken, waarbij de dan als OpnameNaam__01.MPG, OpnameNaam__01.MPG, etc genummerde MPG bestanden via het netwerk kunnen worden getransporteerd. De mediaspelers die ik gebruik zullen ze net als een serie VOB-bestanden van 1 GiB als een complete film herkennen.

Door Emperoar TV ondersteunde container formaten

> Top <

Via Edit Output profile kunt u de specificaties van de MPEG containerformaten bekijken waarin EmperoarTV videobestanden in TV mode inleest en aan OS/2 aanbiedt. Bij de video out uitgang van een op een videomonitor aan te sluiten dure PVR 350 TV kaart zal de TV kaart de opgenomen videostromen via de hardware coderen.

Voor het bekijken van televisie op een snelle PC met door warpoverlay ondersteunde videokaart het MPEG2 Full D1 12.0 MBit/s interessant. Een 32 bits PCI bus kan 133 Mbyte/s aan (dus 8*133 Mbit/s). Dit geeft in de TV kaart praktijk weinig overhead en het videobeeld zal voor mijn gevoel perfect aankomen. Ik zag bij full screen op een 21 inch scherm wel een IRQ load van 23-32 procent (t.o.v. de basale 0,2-0,5 % IRQ load na het sluiten van EmperoarTV). Maar de (3 GHz) processor belasting bleef op een comfortabele 25% steken. Oftewel het meeste kopieerwerk werd door via interrupt gestuurde DMA drivers op de achtergrond buiten de CPU om afgedaan. Ook een 1 GHz processor hoeft het dus niet slecht te doen.

Maar bij het opslaan van de video (videocapture) vormt die hoge bandbreedte wel een probleem. Niet bij gewoon gebruik (12.0 MBit/s video bekijken en tegelijkertijd opslaan) onder OS/2. Want ik zag dat het processor verbruik hierbij maar tot 30% opliep. De rest ging naar twee sessies van mencoder (idle proces).

MOD TYPE    PID CPU NAME
prg Vio      F1 51% MENCODER.EXE
prg Vio      FE 18% MENCODER.EXE
prg PM      113 30% MPEGTV2.EXE (EmperoarTV - Video Screen)

Bij het opslaan in vcr mode van 12.0 MBit/s MPEG-2 op de achtergrond was de processorbelasting van EmperoarTV met de WinTV PVR 350 volgens Watchcat zelfs verwaarloosbaar. En dat geldt al helemaal volgens video-CD opgevangen beeld.

Maar vanwege de beperkte vaste schijf ruimte is het slimmer om voor DVD extra long play of een MPEG formaat van lagere bandbreedte te kiezen. Een via de scheduler opgenomen minuut DVD extra long play nam 28004288 bytes (26,7 MiB) in. Dat is 1,56 GiB/uur. Een minuut als MPEG2 Full D1 12.0 MBit/s opgeslagen bestand bevatte 93931456 bytes ( 89,6 MiB). Dat komt met MPEG-2 compressie neer op 89,6 MB per minuut en dus op maar liefst 5,25 GiB per uur.

Vraag: Wat is de videobandbreedte van een PAL televisiescherm? De PAL standaard gaat uit van 50 frames per seconde. Deze frames meten 720×576, 704×576, 352×576 of 352×288 pixels. Maar een PMView snapshot van een op PAL ingestelde Emperoar TV Window Interior levert tot mijn verbazing een niet door PAL ondersteunde schermgrootte van 768x576 in deep color op...

De VESA 24-bit (8:8:8) deep color modus staat onder OS/2 bekend als 16 M. Dit i.t.t. het 16-bit (5:6:5) 64 K kleurenpalet. Hoeveel kleuren PAL kent weet ik niet.

Maar afgezien daarvan levert 50 maal (768*576) frames per seconde 11324620800 pixels per seconde op. En dat is (drie keer door 1024 delen) 10,546875 GiB/s. Kortom: zonder lossy MPEG-2 compressie is het opslaan hiervan geen doen.

Per opgenomen film kunt u het opnameformaat aanpassen. Eventueel kunt u ook uw eigen "standaard" maken. Bijv. een MPEG-2 formaat dat geschikt is voor een mobiele mediaspeler met een geringe bandbreedte. Of een MPEG-2 formaat dat mencoder sneller kan verwerken.

Hieronder volgen de door EmperoarTV aanbevolen (want gestandaardiseerde) containerformaten

Profiel

Band-breedte MBit/s

Formaat van het beeldscherm

Video bit rate (kb/s)

Audio bit rate (kb/s)

Audio sample rate (kHz)

Type audio

MPEG1 0.576 MBit/s

0,58

352x288 (240)

576

192

32

CBR

Video CD 1150Kbits/sec

1,01

352x288 (240)

1152

224

44.1

CBR

MPEG1 1.152 MBit/s

1,15

352x288 (240)

1152

224

44.1

CBR

MPEG1 4:3 1.152 MBit/s

1,15

384x288 / 320x240

1152

224

44.1

BR

SVCD long play 1.6 MBit/s

1,6

480x576 (480)

1152

224

44.1

VBR

MPEG2 Full D1 12.0 MBit/s

12

720x576 (480)

12000

384

48

CBR

SVCD standard play 2.0 MBit/s

2

480x576 (480)

2000

224

44.1

VBR

DVD extra long play

2,5

720x576 (480)

3200

384

48

VBR

MPEG2 Half D1 2.5 MBit/s

2,5

480x576 (480)

2500

224

44.1

CBR

MPEG2 Half D1 4.0 MBit/s

4

480x576 (480)

4000

384

48

CBR

MPEG2 Full D1 4.4 MBit/s

4,4

720x576 (480)

4400

384

48

CBR

DVD long play

4,8

720x576 (480)

4400

384

48

VBR

MPEG2 Full D1 5.6 MBit/s

5,6

720x576 (480)

5600

384

48

CBR

DVD standard play

6,4

720x576 (480)

5600

384

48

VBR

MPEG2 Full D1 6.8 MBit/s

6,8

720x576 (480)

6800

384

48

CBR

MPEG2 Full D1 8.0 MBit/s

8

720x576 (480)

8000

384

48

CBR

DVD high quality (MBit/s)

8,25

720x576 (480)

7500

384

48

VBR

MPEG2 Full D1 9.2 MBit/s

9,2

720x576 (480)

9200

384

48

CBR

MPEG2 Full D1 9.8 MBit/s

9,8

720x576 (480)

9800

384

48

CBR

Nog even dit: De verschillende analoge Phase Alternating Line (PAL) versus het National Television System Committee (NTCS) televisiesystemen: Het Japanse en Amerikaanse NTCS was het eerste video formaat voor televisie. Maar het interfereerde met het 50 Hz werkende Europese stroomnet. Het 625-lijnen op 50 Hz tekende PAL (576i) televisie systeem werkt anders als het met 525-lijnen op 60 Hz (480i) Noord Amerikaanse en Japanse NTSC systeem.

Mencoder

> Top <

De relatie tussen Mplayer en mencoder

Het programma Mplayer verzorgt de weergave van allerlei streaming media (mediaspeler). "Mplayer bestand" speelt dus een bestand af. Of een DVD of een URL, want het woord bestand is onder UNIX een ruim begrip.

Het programma mencoder wordt gebruikt om streaming mediabestanden om te zetten in een ander bestandsformaat (mediacodering). Hierbij is mencoder gespecialiseerd in het opslaan van multimedia in het AVI bestandsformaat.

Bij mencoder moet u dus altijd meerdere opties opgeven. Niet alleen de namen van de invoer- en uitvoerbestanden (bijv. -o film.avi), maar ook de namen van de audio en video codecs en codec bibliotheken en de manier waarop ze hiermee herschreven moeten worden. Het uitvoerbestand - ook wel de container genoemd - bevat immers zowel gecodeerde audio als video en de nodige meta-informatie om beeld en geluid te synchroniseren.

Zowel mediaplayer als mencoder kunnen de ingevoerde video- en audiostromen opslaan in een dumpbestand (video- en audiocapture).

Mplayer slaat haar ASF/WMV interpretatie van de mms-streams op in een MPEG-4 dumpbestand. Zowel mplayer als mencoder kunnen de door hun gemeenschappelijke libavcodec bibliotheek gemaakte interpretatie van Microsofts gesloten codecs inlezen. Maar met mencoder kunt u kiezen in welk video en audio codecs (mpeg2 of 4, mp2, mp3, ac3) en in wel container formaat u de dumpbestanden opslaat.

Mencoder kan dus streaming media van verschillende bronnen opvangen en opslaan. Mencoder kan ook veel andere doelbestanden dan AVI omgaan. Zo kunt u met mencoder uw thuisvideo's prima omzetten naar een MPEG-2 DVD VOB formaat. Met Paul Smedley's port van DVDAuthor kunt u ook een DVD menu aanmaken. En met cdrecord zet u het op de DVD schijf.

Maar als u iets in het door Windows Media Speler en Windows Movie Maker gebruikte closed source Windows WMV of WMA ASF codecs en bestandsformaten wilt opslaan hebben de open source software Mplayer en Mencoder een probleem. Deze codecs bestandsformaten zijn zodanig gepatenteerd dat het niet eens de moeite loont om ze te emuleren. Ze bestaan omdat Microsoft het nodig achtte het inderdaad gebrekkige (maar wel breed ondersteunde) AVI formaat te verbeteren op zo'n manier dat het alleen goed onder closed source software via MS patenten te coderen valt. Gelukkig kunnen mplayer en mencoder ze wel inlezen, maar dat gaat mogelijk wel gepaard met enig kwaliteitsverlies.

Bij het converteren van het ene in het andere streaming multimedia bestandsformaat kan het intern om een relatief eenvoudige kopieeracties gaan, maar ook om behoorlijk complexe bewerkingen in meerdere stappen.

Een voorbeeld van het laatste is het omzetten van een DVD hoofdfilm naar een enkel sterk gecomprimeerd AVI bestand met de door u gewenste taal en ondertiteling. Hierbij zal mencoder de inhoud van de IFO en VOB bestanden met de MPEG-2 gecomprimeerde videostroom, AC3 Dolby of MP2 audiokanalen en tekststromen van bijvoorbeeld dvd//4 moeten inlezen, analyseren, decoderen en als MPEG4 video en MP3 audio in het Audio Video Interleave containerformaat moeten opslaan.

Voor het (de)codeerwerk gebruiken Mplayer en Mencoder dezelfde bibliotheken. Een dumpfile van Mplayer is dus gesneden koek voor mencoder en omgekeerd kan Mplayer uitstekend met alle codecs en filters van mencoder overweg. Mplayer is bijzonder geschikt om de werking van filters te beoordelen, voordat u mencoder urenlang het materiaal bewerken laat.

Een soortgelijk programma als mencoder is de door Paul Smedly geporteerde ffmpeg bibliotheek. Mencoder en ffmpeg worden veel gebruikt om VCD's en DVD's van de schijf te rippen en om te zetten in het AVI formaat. Ffmpeg is eenvoudiger in gebruik, maar mencoder kent meer filters en mogelijkheden voor conversie.

Maar het blijft een feit dat de "native" codec implementaties van mencoder, ffmpeg en mplayer niet dezelfde als die van bijvoorbeeld Microsoft en Real Networks zijn. Sterker nog: ook de officiële codecs kennen verschillende implementaties (versies). En die worden (als het goed is) geregeld aangepast omdat ze steeds weer "critical errors" blijken te bevatten.

Met het afspelen van een videobestand onder Windows loopt u dus een even groot gevaar als met openen van een verboden email extensie onder Outlook. En misschien wel een groter gevaar omdat Internet Explorer of Firefox deze multimediabestanden meestal automatisch opent zonder u een waarschuwing geven. Gaat u dan toch als beheerder onder Windows het internet op, dan bent u een dwaas. U hebt blijkbaar nooit Windows XP voor bezorgde ouders gelezen. Of op zijn minst de kleine lettertjes van uw OEM versie van Windows XP. U dacht: iedereen doet het. Het zal dus wel goed zijn. Maar dat dachten de slachtoffers van deze domme OEM politiek ook.

Tegenwoordig ondersteunen veel mobiele telefoons en mediaspelers al MP4. Mijn doel was daarom het archiveren van MPEG-2 DVD's in een compact en bruikbaar MPEG-4 formaat, waarbij ik in de MP4 codering de Nederlandse ondertiteling al inbegrepen wilde hebben. Zodat ik niet op een mediaspeler op zoek hoefde te gaan naar een ondertitelingsbestand (als dat al door de speler werd ondersteund). Ik wilde dus heel braaf een DVD2AVI conversie van "mijn" favoriete DVDs voor USB of flash disk opslag (vandaar MP4) voor mobiel en thuisgebruik.

Daarnaast wilde ik de van mijn Hauppauge PVR 350 televisiekaart met Emperoar TV opgenomen "DVD extra long play" MPEG-2 televisieprogramma's nog steviger comprimeren in een door geavanceerde mobiele mediaspelers nog te lezen MPEG-4 of DivX formaat. Om ze daarna via een flash of USB schijf mediaspeler af te kunne spelen.

Bovendien zocht ik een redelijk snelle methodes om die conversie door te voeren. En natuurlijk op de achtergrond Want dan hoef je er niet op te wachten.

CPU oververhitting voorkomen

> Top <

Op moederborden en processors zonder bescherming tegen te hoge temperaturen (thermal protection) kunt u mencoder beter niet gebruiken. De kans dat de processor oververhit raakt is groot.

Op mijn Asrock moederbord met CPU throttling staat de maximale toegestane temperatuur van de processor op 70 graden ingesteld. Dit is eigenlijk al meer dan de 3.20 GHz Intel Celeron D processor kan hebben. Zie: Processor Electrical Specifications. Zodra de processortemperatuur deze grenswaarde overschrijdt, wordt de klokfrequentie gehalveerd. Gebeurt dat niet snel genoeg, dan zal de processor opnieuw 50% vaart minderen.

Dit proces is indirect te volgen in de XCenter Widget Health Monitor, waar de temperatuur enige malen per minuut tot een waarde van boven de 70 graden stijgt, om vervolgens weer te dalen. Ook als de koperen Zalman koeler op volle toeren draait, wordt de maximale kloksnelheid tijdens het (de)coderen zelden gehaald. Op warme dagen zal het rippen van DVD's dus langer duren.

Prioriteit instellen

> Top <

Het coderen en decoderen kost veel processortijd. De CPU-use zal aldoor nabij de 100% zijn. Hierdoor reageert de WPS traag en kunnen netwerkverbindingen vastlopen. Bovendien zal een verhitte processor, zijn kloksnelheid halveren. Waardoor de problemen voor andere programma's weer groter worden.

Om al die redenen is het verstandig om mencoder op te starten als een onbelangrijk achtergrondproces, zodat u ondertussen ook met lagere kloksnelheden vlot kunt doorwerken. Dan reageert de WPS vlot en zullen ook tijdskritische processen (zoals de opname Emperoar) ongestoord verlopen.

priority 1 30 mencoder dvd://2 -dvd-device m: -o title2.avi -oac copy -ovc lavc 

Priority.exe maakt deel uit van de FM2 utilities van Mark Kimes die te vinden zijn op Netlabs (fm2utils.zip). Neem als eerste waarde (class) altijd de 1 van idle. De tweede waarde (delta) mag tussen de 0 en de 31 zijn. Standaard lopen programma's met prioriteit 2 0. Voor meer informatie zie Prioriteiten stellen.

Materiaal verzamelen

> Top <

Aangezien DVD spelers niet zo stil, betrouwbaar en snel zijn als vaste schijven, is het slimmer om een DVD vanaf de vaste schijf af te spelen en te bewerken. Bij het converteren van DVD materiaal naar een ander bestandsformaat, werk ik dus het liefst vanaf de harde schijf. Dat gaat het eenvoudigst door de inhoud van de DVD gewoon naar een map met de naam van de DVD titel te kopieren:

[I:\]xcopy m:\*.* q:\dvd\dvd_titel /s
De naam bij de opdracht XCOPY, dvdtitel, kan een directorynaam
of bestandsnaam zijn. Typ J als het gaat om een directory en N
als het gaat om een bestandsnaam.

Verwijst dvdtitel naar een directory (J/N)? j

Bronbestanden worden ingelezen...

M:\VIDEO_TS\VIDEO_TS.BUP
M:\VIDEO_TS\VIDEO_TS.IFO
M:\VIDEO_TS\VIDEO_TS.VOB
M:\VIDEO_TS\VTS_01_0.BUP
M:\VIDEO_TS\VTS_01_0.IFO

Bij deze methode kunnen Mplayer en Meencoder van het IFO bestand gebruik maken om bijvoorbeeld de gesproken talen en ondertitels te vinden. In %user%\.mplayer\mencoder.conf zet u dan bijvoorbeeld:

slang=nl
alng=en

Als mencoder de talen uit de IFO bestanden niet herkend kunt u MPlayer kort draaien om te achterhalen wat de alternative language (-alang) id van bijv. Engels (vaak 128) is en bij waar de ondertiteling Nederlands is (hier de eerste).

aid=128
sid=0

U kunt dit natuurlijk ook opgeven met de opties -aid 128 en -sid 0, maar als u van ingewikkelde batchbestanden gebruik maakt, is het vaak handiger om per rip de globale systeemvariabelen aan te passen in het bestand %user%\.mplayer\mencoder.conf.

Mocht het "rippen" met xcopy niet lukken, maar is de DVD wel afspeelbaar met Mplayer, dan kunt u gebruik maken van de dumpsteam optie van mplayer. Deze cmd-batch voegt alle VOB bestanden van de eerste twaalf filmtracks samen tot grote ongecomprimeerde titel bestanden, die vervolgens weer aan ffmpeg of mencoder kunnen worden doorgevoerd.

mplayer dvd://1 -dvd-device m: -dumpstream -dumpfile Q:\Mpg\temp\title1.mpg2
mplayer dvd://2 -dvd-device m: -dumpstream -dumpfile Q:\Mpg\temp\title2.mpg2
mplayer dvd://3 -dvd-device m: -dumpstream -dumpfile Q:\Mpg\temp\title3.mpg2
mplayer dvd://4 -dvd-device m: -dumpstream -dumpfile Q:\Mpg\temp\title3.mpg2
mplayer dvd://5 -dvd-device m: -dumpstream -dumpfile Q:\Mpg\temp\title5.mpg2
mplayer dvd://6 -dvd-device m: -dumpstream -dumpfile Q:\Mpg\temp\title6.mpg2
mplayer dvd://7 -dvd-device m: -dumpstream -dumpfile Q:\Mpg\temp\title7.mpg2
mplayer dvd://8 -dvd-device m: -dumpstream -dumpfile Q:\Mpg\temp\title8.mpg2
mplayer dvd://9 -dvd-device m: -dumpstream -dumpfile Q:\Mpg\temp\title9.mpg2
mplayer dvd://10 -dvd-device m: -dumpstream -dumpfile Q:\Mpg\temp\title10.mpg2
mplayer dvd://11 -dvd-device m: -dumpstream -dumpfile Q:\Mpg\temp\title11.mpg2
mplayer dvd://12 -dvd-device m: -dumpstream -dumpfile Q:\Mpg\temp\title12.mpg2

Wilt u dit doen met de map q:\dvd\dvd_titel op de vaste schijf, dan geeft u gewoon -dvd-device q:\dvd\dvd_titel op. Lange namen mogen, maar gebruik wel underscores: Bedenk dat -dvd-device q:\dvd\dvd titel waarschijnlijk niet zal werken.

Dit levert hier bijvoorbeeld 9 titels op, waarvan track5 t/m 6 de hoofdfilms vormen. Ze zijn samen bijna 16 GB (tegenover de 6,3 GB op de DVD).

track1.mpg    4427776
track2.mpg    5214208
track3.mpg    3940352
track4.mpg    4476928
track5.mpg   6182198K
track6.mpg   6182198K
track7.mpg   3993620K
track8.mpg      4096
track9.mpg      4096

Ga je ze later tot AVI (FMP4) comprimeren, dan blijft er van een 6 GB bestand nog maar 1 GB over.

Omdat de hoofdfilm meestal groter is dan 2 GiB hebt u het JFS (of UDF) bestandssysteem nodig om de bestanden op te slaan. Met FC/2 kunt u ze onder de WPS openen. Grote bestanden die ik via hun WPS associaties open, gingen helaas meteen verloren. De associaties van FC/2 kunt u onder Commands/ Edit Associations instellen. Met F3 activeert u de viewer (hier mplayer) en met F4 een editor of (hier) een specifieke bewerking.

[Viewer Associations]
*.{avi,wmv,mpg,mp4,vob}: start mplayer !
[Editor Associations]
*.{mpg,vob}: start priority 1 1 mencoder ! -o !x.mp4 -oac copy -ovc lavc -lavcopts vcodec=mpeg4

De start opdracht voorkomt dat FC/2 bezet blijft. Plaats mplayer dan wel in het pad voor \OS2\MDOS\WINOS2.

Multimedia bestanden converteren

> Top <

De zojuist aangemaakt titelbestanden (title1.mpg2) staan in het MPEG-2 formaat. U kunt ze nog ongeveer nog 3-4 maal verkleinen door ze met in het MPEG-4 formaat om te zetten.

De meest eenvoudige meencoder opdracht die ik ken om een MPEG-2 VOB-bestandsformaat naar een MPEG-4 AVI bestand te converteren is deze opdracht: mencoder film.vob -oac copy -ovc lavc -o film.avi

Mencoder zet dan bron film.vob om in het (-o van output) bestand film.avi. Maar de opdracht mencoder film.vob film.avi zonder beeld of geluidsspecificaties geeft de foutmelding: No video encoder (-ovc) selected. Select one (see -ovc help) of No audio encoder (-oac) selected. Select one (see -oac help) or use -nosound.

Oftewel als u met mencoder iets converteert (input => output), dan moet u opgeven waarmee u het wilt coderen. De codecs en het containerformaat van het invoerbestand worden al door mencoder zelf gedetecteerd. Maar u moet zelf de bibliotheken voor beeld en geluid opgeven waarmee u iets wilt converteren en de compressietechniek waarin dat gebeuren moet. En met de optie -of type geeft u het containerformaat van het uitvoerbestand op als dit niet al impliciet uit de bestandsextensie (avi, mpg) volgt.

We lopen het nog even na:

meencoder invoerbestand -o uitvoerbestand opties

Betekenis

mencoder film.vob

Film.vob is de bestandslokatie waar mencoder wat mee moet doen. Het kan een enkel bestand zijn, maar ook een reeks van bestanden, zoals bijvoorbeeld met mencoder dvd://1 -dvd-device m: waarin misschien VTS_01_0.IFO, VTS_01_0.VOB, VTS_01_1.VOB, VTS_01_2.VOB en VTS_01_3.VOB zitten. Dat laatste kan wel handih zijn voor opties als -alang en die vanuit het IFO-bestand moeten worden uitgelezen.

-oac copy

Output audio codec (aoc -copy) Het zonder gegevensverlies kopiëren van het DVD AC3 frame Dolby formaat naar het nieuwe AVI container bestandsformaat is nuttig voor de meeste met Dolby AC3 voorbespeelde DVD's. Hiermee worden synchronisatiefouten tussen beeld en geluid (ze lopen niet gelijk op) voorkomen.

De audio codec uitvoer (oac) wijzen zijn.

[F:\]mencoder -oac help
Available codecs:
 copy     - frame copy, without re-encoding (useful for AC3)
 pcm      - uncompressed PCM audio
 mp3lame  - cbr/abr/vbr MP3 using libmp3lame
 lavc     - FFmpeg audio encoder (MP2, AC3, ...)

Lavc staat voor de libavcodec codec bibliotheek die heel veel codecs bevat .

-ovc lavc -lavcopts vcodec=mpeg4

Output video codec (ovc) lavc slaat het bestand op met de libavcodec bibliotheek en wel in het mpeg4 formaat met -lavcopts vcodec=mpeg4.

De video codec uitvoer (ovc) wijzen zijn:

[F:\]mencoder -ovc help
Available codecs:
 copy - frame copy, without re-encoding. Doesn't work with filters.
 frameno - special audio-only file for 3-pass encoding, see DOCS.
 raw - uncompressed video. Use fourcc option to set format explicitly.
 nuv - nuppel video
 lavc - libavcodec codecs - best quality!
 xvid - XviD encoding

Zoals mencoder r -ovc help al aangeeft geeft de libavcodec bibliotheek de beste kwaliteit. In ieder geval voor de aan mencoder verwante media spelers. Binnen de libavcodec bibliotheek moet u het uitvoerformaat selecteren. Zo kunt u bijvoorbeeld voor MPEG-4 compressie kiezen met -lavcopts vcodec=mpeg4.

-o film.avi

Sla het bestand film.avi op in het Audio Video Interleave (AVI) "multimedia container format" van Microsoft. Mencoder herkent het containerformaat aan de avi-extensie.

Wilt u de uitvoer als MPEG opslaan dat zou u -of mpeg -o film.mpg kunnen opgeven.

[F:\]mencoder -of help
Available output formats:
   avi      - Microsoft Audio/Video Interleaved
   mpeg     - MPEG-1/2 system stream format
   lavf     - FFmpeg libavformat muxers
   rawvideo - (video only, one stream only) raw stream, no muxing
   rawaudio - (audio only, one stream only) raw stream, no muxing



Met mencoder een DVD analyseren

> Top <

Als u een DVD met mencoder in een groot venster opent, krijgt u meteen al heel veel informatie. Die informatie kunt u gebruiken om uw DVD-film beter af te spelen of in AVI formaat op te slaan.

There are 6 titles on this DVD.
There are 32 chapters in this DVD title.
There are 1 angles in this DVD title.

De DVD bevat 6 titels. Kijkwijzer en copyright filmpjes inbegrepen. U kunt met het DVD menu van vaste DVD speler 32 hoofdstukken selecteren. En er is een kijkhoek (angle).

DVD's met meerdere kijkhoeken hebben meerdere videostromen voor dezelfde scène. Ze kunnen dan dezelfde scènes onder een ander perspectief afspelen. Ik ben ze (sexfilms?) nog nooit tegengekomen.

Door de VOB's in Mplayer te openen beoordeelt u welke films u hebben wilt. Als bijvoorbeeld VTS_03_1.VOB t/m VTS_03_4.VOB de hoofdfilm vormen, dan geeft u aan mplayer of mencoder dvd://3 op.

Mencoder meldt vervolgens dat de DVD vijf geluidskanalen (audio channels) bevat die opgeslagen zijn als Dolby Digital of AC-3 (stereo):

audio stream: 0 format: ac3 (stereo) language: en aid: 128.
audio stream: 1 format: ac3 (stereo) language: de aid: 129.
audio stream: 2 format: ac3 (stereo) language: fr aid: 130.
audio stream: 3 format: ac3 (stereo) language: it aid: 131.
audio stream: 4 format: ac3 (stereo) language: es aid: 132.
number of audio channels on disk: 5.

Wilt u de DVD in de Engelse taal afspelen en of opslaan, dan kiest u voor -aid 128.

Het geluid van DVD's kan als twee sporen in het MPEG-2 bestandsysteem worden opgeslagen (stereo). Maar de meeste DVD's slaan het 5.1 surround geluid op via de AC3 of soms de DTS (Digital Theater System) codering.

Het hier gebruikte Dolby Digital (AC-3) 5.1 surround audio stromen bevatten per opname (audio channel, aid) op zich weer zes geluidskanalen (of sporen in tape recorder terminologie), om vijf gewone speakers te bedienen (rechtsvoor, voor, linksvoor, rechtsachter en linksachter) en een subwoofer voor de lage tonen.

AC3 slaat het geluid gecomprimeerd in frames op en de mencoder ripping methode -oac -lavc copy is de beste manier om dit 5.1 geluid zonder gegevensverlies of synchronisatiefouten in een AVI of MPEG bestand op te slaan. Maar het kost honderden megabytes.

Het omzetten van dit zes kanaals geluid naar het compactere 2 sporen MP3 stereo systeem kost daarentegen meer rekenwerk en gaat ook met kwaliteitsverlies gepaard. Maar als u onder OS/2 niet over een 5.1 surround geluidssysteem beschikt, dan hoeft de conversie van mp3lame naar mp3 niet minder te klinken. Lame is beroemd vanwege zijn goed in het gehoor liggende codecs.

Vervolgens zien we een opgave van de DVD ondertitels (althans volgens het DVD-menu):

subtitle ( sid ): 0 language: en
subtitle ( sid ): 1 language: en
subtitle ( sid ): 2 language: de
subtitle ( sid ): 3 language: de
subtitle ( sid ): 4 language: fr
subtitle ( sid ): 5 language: it
subtitle ( sid ): 6 language: es
subtitle ( sid ): 7 language: nl
subtitle ( sid ): 8 language: sv
subtitle ( sid ): 9 language: fi
subtitle ( sid ): 10 language: no
subtitle ( sid ): 11 language: da
subtitle ( sid ): 12 language: pt
subtitle ( sid ): 13 language: pl
subtitle ( sid ): 14 language: en
subtitle ( sid ): 15 language: de
subtitle ( sid ): 16 language: fr
subtitle ( sid ): 17 language: it
subtitle ( sid ): 18 language: es
number of subtitles on disk: 19

De Nederlandse ondertiteling zou met -sid 7 (of zelfs met -slang nl) gevonden moeten worden. Er zijn twee Engelse ondertitelingen. De tweede (-aid 1) is voor doven. Maar wilt u de DVD met Nederlandse ondertiteling rippen, ga dan eerst na of -sid 7 werkt. Dat kunt u doen met Mplayer (j-toggle) of via een 5 minuten proefdraai met mencoder (-endpos 5:00).

Daarna wordt het MPEG bestandformaat geanalyseerd: hier gaat het om MPEG-PS bestandsformaat waarin video met MPEG2 compressie opgeslagen is. De bandbreedte is 9780,0 kbits/s of 9,551 Mbits/s (1,2 Mib/s).

success: format: 2  data: 0x0 - 0xb9b0800
MPEG-PS file format detected.
VIDEO:  MPEG2  720x576  (aspect 3)  25.000 fps  9780.0 kbps (1222.5 kbyte/s)
[V] filefmt:2  fourcc:0x10000002  size:720x576  fps:25.00  ftime:=0.0400

Het 720x576 (aspect 3) met 25 beelden/s is typisch voor een PAL DVD. De 720x576 betekent niet dat dit een 4:3 film is. Als u de het Mplayer logbestand ziet, dan blijkt het om 1024x576 breedbeeld te gaan. Dat zou tijdens de compressie naar 512x288 vertaald kunnen worden.

Starting playback...
VDec: vo config request - 720 x 576 (preferred colorspace: Planar YV12)
Trying filter chain: vo
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO Config (720x576->1024x576,flags=0,'MPlayer',0x32315659)
VO: [kva] 720x576 => 1024x576 Planar YV12 

De gebruikte audiocodec op deze DVD is AC3 (48 kHz).

Opening audio decoder: [liba52] AC3 decoding with liba52
No accelerated IMDCT transform found
Using MMX optimized resampler
AUDIO: 48000 Hz, 2 ch, s16le, 256.0 kbit/16.67% (ratio: 32000->192000)
Selected audio codec: [a52] afm: liba52 (AC3-liba52)
==========================================================================
audiocodec: framecopy (format=2000 chans=2 rate=48000 bits=16 B/s=32000 sample-1)
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
Pos:   0.9s     22f ( 0%)  0.00fps Trem:   0min   0mb  A-V:0.084 [0:256]
Skipping frame!
Pos:   2.2s     55f ( 0%)  0.00fps Trem:   0min   0mb  A-V:0.080 [0:256]
Skipping frame!
Pos: 352.5s   8815f ( 6%) 431.81fps Trem:   4min 160mb  A-V:0.041 [0:256]]



Extra mencoder opties opgeven

> Top <



Optie

Uitleg

ovc lavc -lavcopts aspect=16.0/9.0

Om een DVD in 16:9 breedbeeld formaat af te spelen (standaard wordt het 4:3 formaat aangemaakt).

-vf crop=720:544:0:18,scale=720:576

Dit geeft aan dat de als 720:576 (4:3) geschaalde DVD-film een crop heeft van 720:544:0:18. Het geeft de coordinaten aan van een deel van de scherm dat niet echt gebruikt wordt. Deze crop kan achterhaalt worden met de cropdetect functie van Mplayer. Sleep het VOB of andere film naar een batch met:

mplayer %1 -vf cropdetect 

Na een tijdje ziet u zoiets als:

[CROP] Crop area: X: 0..719  Y: 12..565  (-vf crop=720:544:0:18).0

De waarden tussen haakjes kunt u meestal letterlijk overnemen. Controleer wel dat de eerste twee waarden meervouden van 16 zijn. En pas ze anders in de meest dichtbij liggende waarden aan.

-ffourcc XVID

De MPEG-4 bestanden die mencoder met de libavcodec bibliotheek aanmaakt krijgen standaard het label FMP4 (Fast MP4) label mee. In het verleden werd hiervoor de DIVX tag gebruikt, omdat de niet Microsoft AVI bestanden meestal door DivX spelers ingelezen werden. Inmiddels weten de meeste software mediaspelers wel met FMP4 om te gaan. Maar dat hoeft niet voor mobiele mediaspelers met Windows CE te gelden.

Via de mencoder optie -ffourcc [CODEC] kunt u de uitvoerbestanden een andere tag geven. Dit kan handig zijn als een vaak hardware mediaspeler de FMP4 tag niet herkend, maar wel met XVID, DIVX (voor DivX4) of DX50 om kan gaan. XVID heeft de voorkeur vanwege de brede ondersteuning (open source) en omdat de XVID compressietechniek superieur is aan die van DivX4.

NB Bij het openen van een met -ffourcc XVID gecodeerde AVI, zag ik dat mplayer niet libavcodec maar ffmpeg gebruikte.

Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)

In theorie kan daar wat kwaliteit mee verloren gaan, maar dat is doorgaans de prijs voor extra compatibiliteit.

-endpos 5:00

Hierbij zullen van een videotrack (vaak een paar GBs) slechts de eerste 5 minuten en 0 seconden geript worden. Deze optie is heel handig voor testdoeleinden.

Succesvolle mencoder opties die u wilt hergebruiken kunt u in %HOME%\.mplayer\mencoder.conf kwijt. Het internet staat er van vol, maar vergeet niet dat de standaardinstellingen vaak het beste compromis bieden tussen snelheid van coderen en beeld- en geluidskwaliteit. En dat sommige opties elkaar tegenspreken.

#mencoder.conf

aid=128
sid=0
slang=nl

ovc=lavc=1
oac=lavc=1

# oac=mp3lame=1
# lameopts=q=3:acodec=mp3:cbitrate=96
lameopts=q=3:br=96:vol=6

# lavcopts=vcodec=mpeg4:vbitrate=800:mbd=2:acodec=mp3:cbitrate=96:autoaspect
lavcopts=vcodec=mpeg4:vbitrate=800:mbd=2

# vf=crop=720:576:0:0,scale=704:304

DVD's naar AVI rippen voor de Conceptronics CMED3PLUS USB disk en Media Speler

> Top <

De MPEG-4 filmpjes die Mplayer standaard aanmaakte bleken niet door mijn Conceptronics Conceptronic Grab 'and' GO 3,5 Inch Media Player met Cardreader herkend te worden. Het apparaat is enerzijds te gebruiken als een 250 GB USB vaste schijf en anderzijds als een mediaspeler met 250 GB vaste schijf en cardreader zonder beeldscherm.

Voor de schermweergave van de op de vaste schijf of op de cardreader aangesloten kaarten heeft de CMED3PLUS verschillende uitgangen en kabels. Ik plaats ze hier even in tabellen, om deze complexe hardware wat beter te kunnen begrijpen.

Ingang

Kabel

Doel

Vaste schijf (250 GiB FAT32)

Kleine USB kabel ingang op de achterkant

Voor uitwisseling van data met de PC als USB Massa-Opslag Apparaat. De aangesloten PC ziet alleen de USB 3,5 vaste schijf.

Female USB 2 ingang aan voorkant voor USB schijven.


Voor het afspelen van film en digitale foto's op externe USB schijven als media speler.

Card reader ingangen voor Memorystick (MS), Secure Digital (SD), Multimedia Card (MMC), Smart Media Card (SM), Compact Flash (CF), Microdrive (MD).

Geen kabel. De geheugenkaarten worden aan de voorkant in de sleuven van het apparaat gestoken.

Voor het afspelen van film en digitale foto's op geheugenkaarten als media speler.





Uitgang

Kabel

Doel

VGA connector


De VGA kabel van computer of mediaspeler naar de VGA monitor of projector is een RGB verbinding. De kleuren zijn gesplitst in de kleuren die het menselijk oog waarneemt: rood, groen en blauw (RGB). Zwart wordt weergeven als alle RGB kleuren in minimale intensiteit en wit als alle RGB kleuren in maximale intensiteit.

De bandbreedte die een VGA kabel nodig heeft is hoog. De storingsgevoelige VGA kabels zijn daarom kort en relatief prijzig.

Component video (YPbPr) connector

Component video kabel bestaande uit drie tweepolige kabels met male tulp (RCA) connectoren.

Tevens is er een component Video kabel met male SCART aansluiting die op de videorecorder of DVD ingang van de TV aan te sluiten is.

Via deze component naar SCART kabel verbinding wordt het signaal als composiet video weergeven.

Het hieruit volgende signaalverlies is op een klassieke analoge televisiebeeldbuis (kathodestraalbuis, cathode ray tube, CRT) waarschijnlijk niet te zien, maar zal wel zichtbaar zijn op de met hogere definities werkende CRT, LCD en plasma monitoren voor PC's en TV's. Hier kunt u het best een 6 polige component (Y, B-Y, R-Y) verbinding gebruiken. Alternatieven zijn S-Video en of DVI.

In tegenstelling tot het VGA signaal, bevat het component signaal (Y,R-Y,B-Y signaal) wel een aparte informatie over de helderheid. De component Y geeft de de zwart/wit informatie. Een zwart-wit film zal dus alleen van de Y component gebruik maken. Maar onder VGA wordt iedere grijswaarde weergeven door drie RGB kleuren van gelijke intensiteit, wat veel meer bandbreedte vergt.

De kleuren worden afgeleid door de verschillen in intensiteit aan te geven tussen de kleuren blauw en rood met de Y component via de kleurverschil signalen Pblauw (B-Y) en Prood (B-Y). Uit de combinatie van deze drie componenten volgt ook impliciet de intensiteit van de kleur groen.

Door de wiskundige hercodering van RGB in YPbPr wordt in de praktijk 50 tot 70 procent bandbreedte bespaart zonder gegevensverlies. Om die reden worden de met MPEG-2 gecodeerde kleuren van DVD's in componentvorm opgeslagen.

Om er volledig van te genieten moeten zowel uw DVD speler als TV over een component video kabel connector beschikken.

Het YPbPr-signaal van component video kabels (YUV) is bovendien geschikt voor transport van HDMI of DVI in resoluties tot 1080p over lange afstanden. Er zijn zelfs kabels van 20 meter.

Composiet video connector

Een gele composiet audio / video kabel met tulp (RCA) aansluiting die de videoinformatie (kleur, helderheid) over een één (signaal) of tweepolige (signaal met aarding) kabel verstuurd.

Composiet video werd in 1953 ontwikkelt om de uit drie componenten (RGB) samengestelde televisie-signalen over één kabel te verzenden.

In feite is composiet video ook datgene wat u ontvangt via de twee polen (signaal, aarde) van uw Coax kabel TV of "domme" televisieantenne. Alle informatie (de opgevangen ruis en die van de verschillende televisiezenders) verloopt via de centraal gelegen geleidende draad. De hierom gewikkelde bedrading voor de aarding dient slechts om verstoringen door lokale elektromagnetische velden te voorkomen.

Bij de hercodering van analoge informatie over drie (RGB, YPbPr) signaallijnen naar één composiet video signaallijn gaat bandbreedte informatie verloren.

Voor de eerste zwart-wit en kleurentelevisies was dit geen probleem. En ook analoge VHS banden slaan de informatie op in composiet video formaat. Maar u kunt geen HDTV via de composiet video kabel versturen. Hiervoor is de component video kabel beter geschikt.

S-Video connector

Male S-Video

De vier dradige S-VHS videoverbinding bevat vier polen voor twee signalen: Een signaal- en aardelijn voor helderheid (luminantie) en een signaal- en aardelijn voor kleur (chrominantie). Het helderheidsignaal is hetzelfde als de Y van van component video en de C van chrominantie is het somsignaal van B-Y en R-Y. Dit wordt ook wel een Y/C verbinding genoemd.

De S-video beeldoverdracht is beter dan die van de drie kanaals composiet verbinding, maar slechter dan die van het een kanaals component video.

Optival audio voor SPDIF connector

SPDIF Optische kabel


Ik gebruik dit USB apparaat om mijn met EmperoarTV opgenomen MPEG-2 bestanden via de SCART kabel uitgang van het apparaat op mijn ouderwetse analoge beeldbuis TV af te spelen. Dat doet het apparaat goed, maar een nadeel is dat het door de mediaspeler benodigde bestandssysteem FAT32 of vFat is. FAT 32 om de grote vaste schijf aan te sturen en vFAT of FAT32 om de op de cardreader aangesloten media te lezen. En omdat OS/2 geen met FAT32 geformatteerde USB schijven van 250 GiG ondersteunt, moet ik wel via het netwerk van andere besturingssystemen gebruik maken om de onder OS/2 opgenomen video op de vaste schijf van de mediaspeler te pompen.

De met Emperoar opgeslagen video meteen onder OS/2 (via EmperoarTV of Mplayer) bekijken gebeurt natuurlijk ook, maar als ik ze op de vaste schijf wil opslaan is het compacter MPEG-4 formaat te verkiezen.

Formeel ondersteunt de media speler MEGP4, maar hiervan bestaan ontzettend veel varianten. Welke worden door de CMED3PLUS USB disk en Media Speler ondersteund? Via wat googelen kwam ik op het volgende:

Codecs Audio/Video

DivX 3.x, DivX 4.x, DivX 5.x, XviD, MPEG1, MPEG2, MPEG4, MP3, WMA, AAC, Dolby Digital (AC3), PCM

Afbeeldingen

JPEG

Ondertitels (AVI)

SRT, SMI, SSA, SUB/IDX

Containers Audio / Video

AVI, MPEG, VOB, DAT, MP3, WMA, WAV





Met Emperoar TV aangemaakte MPG2 bestanden omzetten in avi

> Top <



[Q:\mpg\juniorsong_1pass_avi]priority 1 30 mencoder q:\mpg\juniorsong__01.MPG q:\mpg\juniorsong__02.
MPG q:\mpg\juniorsong__03.MPG  -oac mp3lame -lameopts br=128:cbr:vol=6 -ovc frameno -o frameno.avi

Starting priority:  class 2, delta 0
Adjusted priority:  class 1, delta 30
Starting /C mencoder q:\mpg\juniorsong__01.MPG q:\mpg\juniorsong__02.MPG q:\mpg\juniorsong__03.MPG -
oac mp3lame -lameopts br=128:cbr:vol=6 -ovc frameno -o frameno.avi
MEncoder dev-SVN-rUNKNOWN-3.3.5 (C) 2000-2006 MPlayer Team
CPU: Intel(R) Celeron(R) CPU 3.20GHz (Family: 15, Model: 4, Stepping: 9)
CPUflags: Type: 15 MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 0 SSE2: 0
Compiled with runtime CPU detection.
success: format: 0  data: 0x0 - 0x7ff00800
MPEG-PS file format detected.
VIDEO:  MPEG2  720x576  (aspect 2)  25.000 fps  3200.0 kbps (400.0 kbyte/s)
[V] filefmt:2  fourcc:0x10000002  size:720x576  fps:25.00  ftime:=0.0400
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 48000 Hz, 2 ch, s16le, 384.0 kbit/25.00% (ratio: 48000->192000)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
MP3 audio selected.
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
Pos:   1.0s     25f ( 0%)  0.00fps Trem:   0min   0mb  A-V:0.081 [0:128]
Skipping frame!
Pos: 106.1s   2654f ( 2%) 173.06fps Trem:  10min  70mb  A-V:0.075 [0:127]



Een film van de vaste schijf of DVD rippen

> Top <

Ik heb hier batches voor aangemaakt.

DVD specifieke instellingen als de aid=128, sid=0 of slang=nl sla ik in mencoder.conf op. Dat geldt al helemaal voor vf=crop=720:576:0:0,scale=704:304. Anders moet je de batches steeds herschrijven (kan eventueel met zoek en vervangfunctie van ae.exe) of het gebruik van lokale variabelen (zie verderop).

Een snelkoppeling van de meest gebruikte batches en van de mencoder.conf staat in de map DVD zodat ik het rippen gewoon kan opstarten met slepen en neerzetten onder de WPS.

rem DVDripMap.cmd
rem: probeer de voor uw beeldscherm geldige waarden op de prompt uit. 
mode co132,60
q:
cd \
cd var\rip
md DVDripMap
cd DVDripMap
del *.*

set > set.txt

del frameno.avi
priority 1 30 mencoder dvd://1 -dvd-device %1 -oac lavc -lavcopts br=96:cbr:vol=6 -ovc frameno -o frameno.avi 
set prompt=$E[37;44m[$P]
priority 1 30 mencoder dvd://1 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=1 -o track1.avi 
set prompt=$E[37;42m[$P]
priority 1 30 mencoder dvd://1 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=2 -o track1.avi

set prompt=$E[37;40m[$P]
del frameno.avi
ren divx2pass.log divx2pass1.log

priority 1 30 mencoder dvd://2 -dvd-device %1 -oac lavc -lavcopts br=96:cbr:vol=6 -ovc frameno -o frameno.avi 
set prompt=$E[37;44m[$P]
priority 1 30 mencoder dvd://2 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=1 -o track2.avi 
set prompt=$E[37;42m[$P]
priority 1 30 mencoder dvd://2 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=2 -o track2.avi

set prompt=$E[37;40m[$P]
del frameno.avi
ren divx2pass.log divx2pass2.log

priority 1 30 mencoder dvd://3 -dvd-device %1 -oac lavc -lavcopts br=96:cbr:vol=6 -ovc frameno -o frameno.avi 
set prompt=$E[37;44m[$P]
priority 1 30 mencoder dvd://3 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=1 -o track3.avi 
set prompt=$E[37;42m[$P]
priority 1 30 mencoder dvd://3 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=2 -o track3.avi

set prompt=$E[37;40m[$P]
del frameno.avi
ren divx2pass.log divx2pass3.log

priority 1 30 mencoder dvd://4 -dvd-device %1 -oac lavc -lavcopts br=96:cbr:vol=6 -ovc frameno -o frameno.avi 
set prompt=$E[37;44m[$P]
priority 1 30 mencoder dvd://4 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=1 -o track4.avi 
set prompt=$E[37;42m[$P]
priority 1 30 mencoder dvd://4 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=2 -o track4.avi

set prompt=$E[37;40m[$P]
del frameno.avi
ren divx2pass.log divx2pass4.log

priority 1 30 mencoder dvd://5 -dvd-device %1 -oac lavc -lavcopts br=96:cbr:vol=6 -ovc frameno -o frameno.avi 
set prompt=$E[37;44m[$P]
priority 1 30 mencoder dvd://5 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=1 -o track5.avi 
set prompt=$E[37;42m[$P]
priority 1 30 mencoder dvd://5 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=2 -o track5.avi

set prompt=$E[37;40m[$P]
del frameno.avi
ren divx2pass.log divx2pass5.log

priority 1 30 mencoder dvd://6 -dvd-device %1 -oac lavc -lavcopts br=96:cbr:vol=6 -ovc frameno -o frameno.avi 
set prompt=$E[37;44m[$P]
priority 1 30 mencoder dvd://6 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=1 -o track6.avi 
set prompt=$E[37;42m[$P]
priority 1 30 mencoder dvd://6 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=2 -o track6.avi

set prompt=$E[37;40m[$P]
del frameno.avi
ren divx2pass.log divx2pass6.log

priority 1 30 mencoder dvd://7 -dvd-device %1 -oac lavc -lavcopts br=96:cbr:vol=6 -ovc frameno -o frameno.avi 
set prompt=$E[37;44m[$P]
priority 1 30 mencoder dvd://7 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=1 -o track7.avi 
set prompt=$E[37;42m[$P]
priority 1 30 mencoder dvd://7 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=2 -o track7.avi

set prompt=$E[37;40m[$P]
del frameno.avi
ren divx2pass.log divx2pass7.log

priority 1 30 mencoder dvd://8 -dvd-device %1 -oac lavc -lavcopts br=96:cbr:vol=6 -ovc frameno -o frameno.avi 
set prompt=$E[37;44m[$P]
priority 1 30 mencoder dvd://8 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=1 -o track8.avi 
set prompt=$E[37;42m[$P]
priority 1 30 mencoder dvd://8 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=2 -o track8.avi

set prompt=$E[37;40m[$P]
del frameno.avi
ren divx2pass.log divx2pass8.log

priority 1 30 mencoder dvd://9 -dvd-device %1 -oac lavc -lavcopts br=96:cbr:vol=6 -ovc frameno -o frameno.avi 
set prompt=$E[37;44m[$P]
priority 1 30 mencoder dvd://9 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=1 -o track9.avi 
set prompt=$E[37;42m[$P]
priority 1 30 mencoder dvd://9 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=2 -o track9.avi

set prompt=$E[37;40m[$P]
del frameno.avi
ren divx2pass.log divx2pass9.log

priority 1 30 mencoder dvd://10 -dvd-device %1 -oac lavc -lavcopts br=96:cbr:vol=6 -ovc frameno -o frameno.avi 
set prompt=$E[37;44m[$P]
priority 1 30 mencoder dvd://10 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=1 -o track10.avi 
set prompt=$E[37;42m[$P]
priority 1 30 mencoder dvd://10 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=2 -o track10.avi

set prompt=$E[37;40m[$P]
del frameno.avi
ren divx2pass.log divx2pass10.log

priority 1 30 mencoder dvd://11 -dvd-device %1 -oac lavc -lavcopts br=96:cbr:vol=6 -ovc frameno -o frameno.avi 
set prompt=$E[37;44m[$P]
priority 1 30 mencoder dvd://11 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=1 -o track11.avi 
set prompt=$E[37;42m[$P]
priority 1 30 mencoder dvd://11 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=2 -o track11.avi

set prompt=$E[37;40m[$P]
del frameno.avi
ren divx2pass.log divx2pass11.log

priority 1 30 mencoder dvd://12 -dvd-device %1 -oac lavc -lavcopts br=96:cbr:vol=6 -ovc frameno -o frameno.avi 
set prompt=$E[37;44m[$P]
priority 1 30 mencoder dvd://12 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=1 -o track12.avi 
set prompt=$E[37;42m[$P]
priority 1 30 mencoder dvd://12 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=2 -o track12.avi

set prompt=$E[37;40m[$P]
del frameno.avi
ren divx2pass.log divx2pass12.log

priority 1 30 mencoder dvd://13 -dvd-device %1 -oac lavc -lavcopts br=96:cbr:vol=6 -ovc frameno -o frameno.avi 
set prompt=$E[37;44m[$P]
priority 1 30 mencoder dvd://13 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=1 -o track13.avi 
set prompt=$E[37;42m[$P]
priority 1 30 mencoder dvd://13 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=2 -o track13.avi

set prompt=$E[37;40m[$P]
del frameno.avi
ren divx2pass.log divx2pass13.log

priority 1 30 mencoder dvd://14 -dvd-device %1 -oac lavc -lavcopts br=96:cbr:vol=6 -ovc frameno -o frameno.avi 
set prompt=$E[37;44m[$P]
priority 1 30 mencoder dvd://14 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=1 -o track14.avi 
set prompt=$E[37;42m[$P]
priority 1 30 mencoder dvd://14 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=2 -o track14.avi

set prompt=$E[37;40m[$P]
del frameno.avi
ren divx2pass.log divx2pass13.log

priority 1 30 mencoder dvd://15 -dvd-device %1 -oac lavc -lavcopts br=96:cbr:vol=6 -ovc frameno -o frameno.avi 
set prompt=$E[37;44m[$P]
priority 1 30 mencoder dvd://15 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=1 -o track15.avi 
set prompt=$E[37;42m[$P]
priority 1 30 mencoder dvd://15 -dvd-device %1 -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=2 -o track15.avi

set prompt=$E[37;40m[$P]
del frameno.avi
ren divx2pass.log divx2pass15.log

De % van -dvd-device %1 staat voor de map met de DVD mirror . Deze mirror is gewoon het resultaat van een kopieeropdracht van de DVD naar de vaste schijf (Zie: Materiaal verzamelen). U sleept de map met de titel of het icoontje van uw DVD drive gewoon naar het WPS object van de batch. Kortom Drag and drop DVD ripping (daarom vind ik OS/2 zo leuk). En daarna (na even "j" tikken voor de del *.*) gaat de batch in gang. Let op: mencoder en priority moeten in het pad staan. Bij mij staan mencoder, priority en mplayer inmiddels in \ECS\BIN. En let erop dat de oude WINOS2 Mplayer later in het %PATH% voorkomt.

De batch geeft met set prompt= iedere procedure wat kleurtjes, maar dat is meer voor de gein. Waar het om gaat zijn de handelingen.

Wit op zwart:

mencoder dvd://[nummer] -dvd-device [pad] -oac lavc -lavcopts br=96:cbr:vol=6 -ovc frameno -o frameno.avi

Hiermee wordt van track nummer 1 t/m 15 alleen het geluid geript. De instelling -ovc frameno betekent geen (no) output video codec (ovc). Het geluid wordt door de lavc bibliotheek bewerkt (-oac lavc) en opgeslagen in het audiocontainerbestand frameno.avi met een constante (cbr) bitrate van 96 (maak er 128 van voor een DVD met veel muziek). De optie vol=6 zet het volume wat hoger.

Wit op blauw:

mencoder dvd://[nummer] -dvd-device [pad] -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=1 -o track[nummer].avi

Dit is eerste ronde (pass=1) van het video uitvoer rippen. De zojuist geripte MP3 audio in frameno.avi wordt onbewerkt (-oac copy) overgenomen. Mencoder herkent de bestandsnaam frameno.avi (alleen deze naam!) automatisch als het invoerbestand voor geluid. De lavcopties mbd=2 en trell verbeteren de kwaliteit.

Daarna komt wit op groen:

mencoder dvd://[nummer] -dvd-device [pad] -sws 2 -oac copy -ovc lavc -lavcopts mbd=2:trell:vpass=2 -o track[nummer].avi

Dit is de tweede gang door de DVD content (pass=2). Twee keer de videoinhoud bewerken kost weliswaar meer tijd maar levert ook een beter beeld op.

En deze procedure wordt voor iedere track (hier 1-15) met lage (achtergrond)prioriteit door mencoder (priority 1 30 mencoder) uitgevoerd, zodat u ondertussen gewoon door kunt werken.

Tijdens het coderen ziet u onderaan de voortgang:

Pos:3399.1s  84981f (38%) 35.29fps Trem:  63min 1052mb  A-V:0.000 [777:224]]

Uitleg:

Pos:3399.1s 84981f (38%) geeft de positie aan in seconden, frames en procent van de film.

35.29fps geeft de codeersnelheid in frames /seconde aan.

Trem: 63min is de resterende tijd in minuten (hangt van de codeersnelheid en filmduur af).

1052mb de verwachte groote van het bestand in MB (MiB?).

A-V:0.000 [777:224]] is de verhouding tussen de audio en de video (hier is er weinig audio) en de bijbehorende codeerfrequenties.



Conclusie

> Top <

Dit is voor zover ik kon testen een fantastische MPlayer port. Hulde aan het porting werk van KO Myung-Hun, Paul Smedley en de inzet van de gehele open source gemeenscap.. Gezien de grote hoeveelheid mogelijkheden van de gecombineerde versie van MPlayer en MEncoder (die zowel bestandsformaten kan afspelen als converteren) zullen we er nog veel van horen en zal deze pagina de komende weken, wellicht maanden en jaren met nog meer multimedia plezier worden uitgebreid.



Sjoerd Visser



PS Stel uw MPlayer vragen niet aan mij maar in de OS/2/eCS GG discussiegroep of op de nieuwsgroep news:comp.os.os2.multimedia op het internet. Verder is er nog een (veel te weinig door OS/2 gebruikers gebruikte) mailinglijst "MPlayer-os2 -- OS/2 porting" op: http://lists.mplayerhq.hu/mailman/listinfo/mplayer-os2 .

Meer lezen

> Top <

MPlayer

Codecs: Het weergeven van audio en video op een pc vraagt om zogenaamde codecs. Wat zijn codecs, welke hebt u nodig en waar vindt u ze? Informatie van Microsoft.

FFmpeg Documentation

HOWTO Rip Streams With MPlayer

MPlayer - The Movie Player : MPlayer homepage

The MPlayer-users Archives : Mplayer gebruikerslijst

Projects related to MPlayer : Mplayer speelt een belangrijke rol..

Simple DirectMedia Layer: A cross-platform multimedia library designed to provide fast access to the graphics framebuffer and audio device.

Mencoder

DVD omzetten naar Xvid - NedDocWiki

HOWTO DVD to Matroska - Gentoo Linux Wiki

HOWTO Mencoder Introduction Guide - Gentoo Linux Wiki

Mencoder DVD to MPEG-4 - RTFMwiki

MEncoder Tips and Tricks

MEncoder-users Archives

MPlayer - The Movie Player. Chapter 14. Encoding with MEncoder

MPlayer - The Movie Player : de index van de officiële Mplayer en Mencoder documentatie.

Linux.com :: CLI Magic: Video conversion with mencoder

MediaPlayerConnectivity

FAQ MediaPlayerConnectivity

MediaPlayerConnectivity :: Firefox Add-ons

nl.wwiTV.com - TV kijken via Internet

The world biggest collection of Radio and Television stations live on your PC. Also lots of webcams, chemtrails, vacation images in Monaco and individual Disk Jockeys.

Uitzendinggemist.nl : een site die het meestal wel doet.

Testbestanden

Customer Support - RealAudio and RealVideo Test Clips

DVD

Download music, movies, games, software! The Pirate Bay - 's Werelds grootste BitTorrent tracker

DVD Copy Control Association

DVD Region Codes - What You Need To Know

DVD speler regio vrij maken

Jim Taylor's Official DVD FAQ

The Content Scrambling System : een gedegen analyse van Eddie Edwards .

Unix ports for OS/2 and eComStation - DVDAuthor 0.6.14

Mencoder

|MEncoder Tips and Tricks - Gentoo Linux Wiki

Chapter 14. Encoding with MEncoder

DVD omzetten naar Xvid - NedDocWiki

HOWTO Mencoder Introduction Guide - Gentoo Linux Wiki

Linux Reviews > Manual Pages (man)

Mencoder DVD to MPEG-4 - RTFMwiki

Mplayer manual online

OS/2 specifiek

CD/DVD ReWriters, RSJ and how to avoid RSJ "capturing" your writer at bootup

CD-writing with OS/2 van Chris Wohlgemuth.

DVDAuthor

DVD writing with files greater than 2 GB

Emperoar TV werkt onder OS/2 met Hauppauge WinTV PVR 150, 250 or 350 videokaarten.

OS/2 e-Zine! - CD-Burning for the Masses

OS/2 e-Zine! - The State of DVD on OS/2

OS/2 Site - MultiMedia - CDR - CDRecord

OS/2 Site - MultiMedia - Video : mediaspelers en encoders voor OS/2 en eCS.

OS2 World.Com - Audio/Data-CD-Creator Review

The MPlayer-os2 Archives

ToBo's Homepage

Unix ports for OS/2 and eComStation Mencoder SVN build

Unix ports for OS/2 and eComStation - Mencoder SVN build

Video Capturing and DVD Recording under OS/2

Video-DVDs and eCS / MCP

Hauppauge Computer Works Benelux: WinTV-PVR-350



S&T Systemtechnik GmbH : Emperoar TV van van Rüdiger Ihle.

UDF

Introduction to Universal Disk Format (UDF) by Wenguang Wang

Universal Disk Format: Native OS Support- Wikepedia

Media

Advanced Systems Format - Wikipepdia

codecpack.nl

Windows Media Video - Wikipedia

Nuttige achtergrondinformatie



Content Scramble System - Wikepedia

Digital rights management - Wikepedia

libavcodec - Wikepedia

List of device bandwidths - Wikepedia

Main Page - MultimediaWiki - Wikepedia

Megabit per second - Wikepedia

PAL, NTSC and SECAM Comparisons

PAL - Wikipedia, the free encyclopedia

Streaming media - Wikepedia

Universal Disk Format - Wikepedia

PAL vs NTSC

> Top <