Multimedia unter Linux

Einleitung

Unter dem Linux-Betriebssystem sind Bild und Ton kein Buch mit sieben Siegeln mehr, aber es gibt schon noch Einschränkungen, bedingt durch fehlende oder mangelnde Treiberunterstützung (hier erkennt man den Nachteil eines Quasi-Monopol-Betriebssystems), unter Linux Module genannt.

Wir beschränken uns hier auf OpenSource Programme, deren Qualität mit steigender Anwenderzahl stetig zunimmt und schon einen brauchbaren Zustand erreicht hat.

Natürlich gibt es schon eine ganze Reihe von Anleitungen, Videos unter Linux zu erstellen, aber wir wollen versuchen, viele Detailinformationen gebündelt darzubieten, die ansosten über viele Webseiten und Foren verstreut sind.

Starten wir das ganze mal mit allgemeinen Einleitungen...

Wie kommt das Video in den Computer ?

Die moderne Digitaltechnik hat uns neue und bessere Möglichkeiten eröffnet, bewegte Bilder mit Ton auf den Rechner zu bekommen. Das alte analoge Verfahren bediente sich spezieller Capturing-Erweiterungskarten bzw. Grafikkarten mit Video-Eingang. Die Rechnerleistung war ausschlaggebend für die Qualität der Computeraufzeichnungen, da die Kompression der eintreffenden Datenmenge in Echtzeit zu erfolgen hatte. Nur bei teuren Karten gab es spezielle Chips zur Komprimierung in Hardware, in den meisten Fällen musste die Software die Berechnung übernehmen. Damit durfte der Rechner nicht komplett ausgelastet sein, denn es war auch noch der Ton zu verarbeiten und das ganze auf die Festplatte zu speichern. Schon geringe Störungen im Zeitablauf führten zu Aussetzern ( Dropped Frames). Die getrennte Verarbeitung von Bild und Ton (Soundkarte) führte ohne spezielle Vorkehrungen in den Programmen zu Asynchronitäten, einem Problem, das uns heutzutage immer noch beschäftigt, wenn verschiedene, getrennte Prozesse für die Verarbeitung zuständig sind.

Der für digitales Video (DV) heute am meisten genutzte Anschluss ist Firewire, auch IEEE1394 oder iLink(Sony) genannt, eine serielle Schnittstelle mit hoher Übertragungsrate (bis zu 400MBit/s). Der DV-Datenstrom ist genormt und beträgt konstant etwa 3,8 MByte/s. Er enthält die Bildinformationen und bis zu 4 Tonspuren fest verzahnt. Falls der "RAW"-DV-Datenstrom aufgezeichnet wird, kann man von einer einfachen Kopie der Daten auf die Festplatte sprechen, die erforderliche kontinuierliche Datenrate stellt für heutige Laufwerke kein Problem dar, ebenso ist die Belastung des Prozessors für die Aufzeichnung gering, erst bei der Wiedergabe mit softwaremäßiger Decodierung des Datenstroms ist ein schneller Prozessor (und eine gute Grafikkarte) nötig. Probleme der A/V- Synchronisation gibt es bis zu diesen Zeitpunkt nicht. Für die Kompatibilität mit anderen Betriebssystemen und anderen Bearbeitungsprogrammen können Linuxprogramme auch andere Aufzeichnungsformate nutzen, insbesondere DV-Type 1 und 2 (beide .avi), sowie Apples Quicktime (.mov), dabei werden die DV-Daten in einen "Container" gepackt. Die Größe der Datei steigt dabei an, insbesondere im Format DV-Type 2 , dort wird der Ton zusätzlich als PCM-Strom aufgezeichnet, die Nachbearbeitung wird dadurch erleichtert, und es ist das kompatibelste Format (wird von den meisten Programmen verarbeitet), kann aber bei der Nachbearbeitung zu Asynchronität führen wenn der separate PCM-Strom genutzt wird. Etliche Programme sind nachlässig programmiert, sie stellen die Lippensynchronität nicht in jeder Situation her.

Die meist genutzten Programme im Linux OpenSource Bereich sind "kino" und "dvgrab", beide Programme können DV über Firewire aufzeichnen. Dvgrab ist ein Kommandozeilenprogramm, hat aber gegenüber Kino den Vorteil, eine bestimmte Aufzeichnungsdauer vorgeben zu können (besonders hilfreich beim Übertragen ganzer Videokassetten), dafür kann Kino bei ausreichender Rechnerleistung das Video während der Aufzeichnung wiedergeben ( Bild und Ton!). Beide Programme können den Timecode von DV-Aufzeichnungen auswerten und den Datenstrom automatisch in Szene aufteilen.

Während die Wiedergabe auch langer Videos als DV-Stream keine Sync-Probleme bereitet, ist bei der Umwandlung in andere Formate wie MPEG-2 (DVD) bzw. DIVX u.a. durchaus mit Problemen zu rechnen aber das ist ein anderes Kapitel...

(rw)

Wie kann ich das Video bearbeiten ?

Welches Ziel habe ich ? Welche Bearbeitung soll das Video erfahren ?

  • Nur herausschneiden von Werbung und unerwünschter Teile (harte Schnitte von Bild und Ton gleichzeitig)
  • Aneinanderfügen von Szenen mit Übergängen (Blenden) mit Tonbearbeitung (Blenden, Mix mit anderen Quellen) Formatwandlungen mit dem Ziel
  • abspielbar auf PC (alle Formate möglich deren Codec vorhanden ist)
  • abspielbar auf Standalone-Geräten (genormtes Format (VCD, SVCD, DVD, DIVX)
  • eingebettet oder downloadbar auf Webseiten (geringe Dateigröße, starke Kompression, kleines Format, Streaming mit begrenzter Bandbreite)

Für die Bearbeitung von Videos kommt die Entwicklung von OpenSource Programmen stürmisch voran, gleich mehrere Projekte

  • Kino (DV Record, Edit, Export)
  • TTCut (Mpeg2 Schnitt) oder auch diese Webseiten
  • avidemux2 (verarbeitet viele Codecs - Ein- und Ausgang)
  • Jahshaka (vielversprechendes Programm, bislang schwer zu installieren (braucht neueste Programmpakete))
  • KFilm (sehr frühes Alpha-Stadium)

sind in der Entwicklung, laufen aber noch nicht in jeder Linux-Umgebung und haben noch nicht alle die geplanten Funktionen.

Einen 'Alleskönner' a la 'Adobe Premiere' gibt es in der OpenSource Szene noch nicht, aber selbst mit den schon vorhandenen Programmen ist ein ansprechendes Ergebnis möglich, zwar manchmal mit Umwegen und speziellen Arbeitsweisen, aber gerade dafür sind diese Seiten gedacht.

Womit kann ich das Video anschauen ?

Es gibt zwei verschiedene Arten von Videos, die am PC wiedergegeben werden können

  • Videos, die sich an einen weltweit gültigen Standard ( VCD, SVCD, DVD, (DIVX)) halten
  • Videos, die keinem Standard zuzuordnen sind, weil entweder die Auflösung (Bildgrößen) oder die Codierung nicht den Standards entspricht Videos der zweiten Kategorie sind zwar flexibler, können aber nur auf PC's abgespielt werden, die die erforderlichen Codecs (Bibliotheken, die für die Dekomprimierung von Bild und Ton benutzt werden) besitzen. Wer Videos erstellt, die praktisch überall wiedergegeben werden können, hält sich an einen Standard, den auch die meisten Standalone-Geräte (DVD-Player) wiedergeben können. Aufgrund der weiten Verbreitung von DVD's und der preisgünstigen DVD-Brenner ist heutzutage die Erstellung von DVD-kompatiblen Videos die erste Wahl, aber auch die CD-Formate ( (S)VCD ) haben für Projekte die auf eine CD passen noch ihre Berechtigung, zumal auch dort auf einfache Auswahlmenüs nicht verzichtet werden muss.

Es gibt unter Linux eine Reihe von Abspielprogrammen, die beide Arten von Videos wiedergeben können.

Wer die Funktionalität der DVD-Menüs haben möchte, sollte sich mal xine anschauen, das mit den entsprechenden Bibliotheken[1] sämtliche DVD's abspielen kann. Die Universalität endet nicht bei den Videos, es kann auch Audio-CD's und Streaming Audio wiedergeben.

 

[1] Ich gehe hier bewusst nicht näher auf die Problematik ein, die gesetzlichen Regelungen zum Kopierschutz lassen selbst das Abspielen einer rechtmäßig erworbenen DVD unter Linux in die rechtliche Grauzone abrutschen. Jeder möge sich seine eigene Meinung und Haltung dazu bilden, die Suchmaschinen im Internet geben unter den einschlägigen Stichworten genügend Hinweise und Antworten!

 

Die größte Flexibilität besitzt der mplayer er besitzt die meisten Bibliotheken (auch W*-Codecs können eingebunden werden) und kann so fast alle Videoformate abspielen.

 

Probleme und Lösungen

An dieser Stelle werde ich demnächst meine eigenen Hinweise und Tipps weitergeben. Ich hoffe jedoch, damit die Leser zu ermutigen, ihre Erfahrungen mit Video auf Linux aufzuschreiben und mir mitzuteilen. Das kann vorerst nur per EMail erfolgen, es ist aber geplant, je nach Kommunikationsbedarf ein Gästebuch, eine Mailingliste oder gar ein Forum bei uns einzurichten. Auf eure Reaktionen bin ich gespannt...

(rw)

 

------wird fortgesetzt---bitte nicht ungeduldig werden

DVB-T unter SuSe

Wer sich den DVB-T Empfänger CinergyT2 für seinen Computer von TERRATEC gekauft hat und ihn nun unter dem neuen SuSE 10.0 oder openSuSE Linux betreiben will, dem kann leicht geholfen werden. Leider läuft der Empfänger auf Anhieb nicht, wenn man ihn mit Kaffeine betreiben will, weil SuSe dem Programm xine aus rechtlichen Gründen wichtige Treiber nicht mitgeliefert hat. Zwar empfängt kaffeine unter KDE fleißig die DVB-T Kanäle, doch kann man die Fernsehkanäle, wenn man alles mit kaffeine richtig eingerichtet hat, nicht sehen. Xine, mit dem der Fernseh-Stream angezeigt werden sollte, meckert wegen fehlender Plugins. Doch das läßt sich beheben...

Von der Entwickler-Seite von xine http://xinehq.de/index.php braucht man dazu ein Teil der Quellen: die  "xine-lib-1.1.0.tar.gz" Wichtig ist genau diese Versionsnunmmer. Diese Lib entpackt man mit "tar xzf xine-lib-1.1.0.tar.gz". Nachdem man in das neu erzeugte Verzeichnis  mit "cd xine-lib-1.1.0" gegangen ist gibt man "./configure" ein. Damit werden in der Linuxumgebung die Einstellungen vorgenommen, um aus den Quellen lauffähige Bibliotheken und Programme erstellen zu können.

Wenn dies problemlos funktioniert, hat man den schwierigsten Teil schon hinter sich gebracht. Bricht nämlich die Konfiguration mit Fehlern ab, dann muss Mann/Frau Packete nachinstallieren, weil wichtige Entwicklungsbibliotheken, oder meist die sogenannten "-devel" Versionen dieser Pakete fehlen. In ihnen sind die include-Dateien enthalten, die bei der Konfiguration gesucht und zum compilieren gebraucht werden. Etwas spielerische Probierfreude wird hier daher von manchem, dem dieses Feld gänzlich neu ist, schon gefordert.

Nachdem jedoch die Konfiguration fehlerfrei erfolgt ist, gibt man einfach "make" ein, womit alle Libs und Plugins für xine erzeugt werden. Auch hier nun kann es manchmal noch passieren, dass wichtige Teile fehlen. Doch dann muss man eben wie oben verfahren.

Ist dieser Schritt vollzogen, dann muss man die fehlenden Plugins in das Verzeichnis von xine "usr/lib/xine/plugins/1.1./" kopieren. Am einfachsten geht dies, indem man als root arbeitet. Dazu macht man nachdem man sich als root unter KDE eingeloggt hat einen File-Browser auf, und betreibt ihn mit zwei Fenstern. Ein Fenster zeigt auf "/usr/lib/xine/1.1.0/" das andere auf die eben erzeugte Bibliothek: also "/home/name/neue-xine-lib-bibliothek". Die gebrauchten Plugins liegen nun jeweils nach dem compilieren in "xine-lib-1.1.0/src/.../.lib/" Schon an den Endungen der Verzeichnisse kann man erahnen wo sie zu suchen ist und was wohl noch fehlt. Dabei sind die wichtigsten für mpeg, für dmux und audio.  Die Plugins heißen alle ausnahmslos "xineplug_*.so", sind also dynamische Bibliotheken.

Wenn man nun in den beiden Fenstern vergleicht, welche Plugins jeweils im Original (was man gerade compiliert hat) vorhanden sind und welche SuSE enthält, dann kopiert man einfach die Fehlenden mit rüberziehen in das Laufzeit-Verzeichnis. Zuviel kann hier wohl kaum Schaden anrichten.

Nach dieser Prozedur kann man schon einmal versuchen ob denn nun das in kaffeine eingebettete xine ohne meckern läuft. Wenn dies der Fall ist, und man xine nicht als eigenständiges Programm betreiben will, dann hat man es geschafft. Ansonsten muß man mit dem vorhergehende Verfahren die noch fehlenden Plugins in das xine-Verzeichnis kopieren, bis xine umstandslos läuft. Jedenfalls habe ich es unter SuSE 10.0 auf diese Weise zum Laufen bekommen.

Um mit xine als eigenständiges Programm DVB-T Kanäle ansehen zu können, bedarf es noch etwas mehr Aufwand. Das wichtigste dazu ist eine Datei 'channels.conf' die man in das $HOME/.xine Verzeichnis kopieren muss. 'channels.conf' ist auf den Seiten der www.linux.tv.org zu finden. Einfach dort auf der DVB-Wiki-Seite nach 'channels.conf' suchen. Das zweite ist ein rpm-Packet, "w32codec-0.52-1.i386.rpm" nach dem xine ständig fragt. Es ist unter der Adresse http://cambuca.ldhs.cetuc.puc-rio.br/xine zu erhalten und lässt sich recht einfach mit KPackage unter KDE installieren.

Als Lohn für all diese Umstände erhält man nun den Spaß, am Bildschim Fernsehen zu können, Schnappschüsse aufzunehmen und was einem sonst gefällt, abzuspeichern, soweit der Platz der Platte reicht.

 

(js)

Letzte Änderung: 16.Sep.2008