## Streaming internet media onder eComStation en OS/2

##### > 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 Nog wat over MPlayer Conclusie

## 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 (MPG, MOV, 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 gemakkelijk wordt. Om die reden zullen degenen die de closed source bestandsformaten en/of 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.

## De 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.

- De plugin zoekt de afgebeelde webpagina's af naar streaming multimedia content voor uw zelfgekozen Media Spelers.

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

- Vervolgens probeert MediaPlayerConnectivity de URL van de stream op te sporen.

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

- De gevonden URL's worden als MCP logo of als URL in beeld gebracht. Door hier met linker muisknop op te klikken wordt de Media Speler met die URL gelanceerd.

- Een rechts-klik op de website levert het MCP contextmenu op.

De 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

Een versie die films in het 16:9 afspeelt:

    mplayer %1 -aspect 16:9

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

De uitleg van de getallen die over het beeldscherm vliegen vindt u in Chapter 5. Frequently Asked Questions.

Q: What is the meaning of the numbers on the status line?

A: Example:

A: 2.1 V: 2.2 A-V: -0.167 ct: 0.042 57/57 41% 0% 2.6% 0 4 49% 1.00x

A: 2.1 | audio position in seconds
V: 2.2 | video position in seconds
A-V: -0.167 | audio-video difference in seconds (delay)
ct: 0.042 | total A-V sync correction done
57/57 | frames played/decoded (counting from last seek)
41,00% | video codec CPU usage in percent (for slice rendering and direct rendering this includes video_out)
0,00% | video_out CPU usage
2.6% | audio codec CPU usage in percent
0 | frames dropped to maintain A-V sync
4 | current level of image postprocessing (when using -autoq)
49,00% | current cache size used (around 50% is normal)
1.00x | playback speed as a factor of original speed

Most of them are for debug purposes, use the -quiet option to make them disappear. You might notice that video_out CPU usage is zero (0%) for some files. This is because it is called directly from the codec and thus cannot be measured separately. If you wish to know the video_out speed, compare the difference when playing the file with -vo null and your usual video output driver.

#### 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. 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. Zie mplayer.1.txt.

Hier is de samenvatting van enige opties uit de manual:

  EXAMPLES OF MPLAYER USAGE
  Quickstart DVD playing:
  mplayer dvd://1
  Play in Japanese with English subtitles:
  mplayer dvd://1 -alang ja -slang en
  Play only chapters 5, 6, 7:
  mplayer dvd://1 -chapter 5-7
  Play only titles 5, 6, 7:
  mplayer dvd://5-7
  Play a multiangle DVD:
  mplayer dvd://1 -dvdangle 2
  Play from a different DVD device:
  mplayer dvd://1 -dvd-device /dev/dvd2
  Play DVD video from a directory with VOB files:
  mplayer dvd://1 -dvd-device /path/to/directory/
  Copy a DVD title to hard disk, saving to file title1.vob :
  mplayer dvd://1 -dumpstream -dumpfile title1.vob
  Stream from HTTP:
  mplayer http://mplayer.hq/example.avi
  Stream using RTSP:
  mplayer rtsp://server.example.com/streamName
  Convert subtitles to MPsub format:
  mplayer dummy.avi -sub source.sub -dumpmpsub
  Convert subtitles to MPsub format without watching the movie:
  mplayer /dev/zero -rawvideo pal:fps=xx -demuxer rawvideo -vc null -vo null -noframedrop -benc
  hmark -sub source.sub -dumpmpsub
  input from standard V4L:
  mplayer tv:// -tv driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv
  Playback on Zoran cards (old style, deprecated):
  mplayer -vo zr -vf scale=352:288 file.avi
  Playback on Zoran cards (new style):
  mplayer -vo zr2 -vf scale=352:288,zrmjpeg file.avi
  Play a 6-channel AAC file with only two speakers:
  mplayer -rawaudio format=0xff -demuxer rawaudio -af pan=2:.32:.32:.39:.06:.06:.39:.17:-.17:-.17:.17:.33:.33 adts_he-aac160_51.aac
  You might want to play a bit with the pan values (e.g multiply with a value) to increase
  volume or avoid clipping.

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

##### > Top <