Studienarbeit Realisierung einer "Online-Preview"-Komponente für die Videoproduktion in Breitbandnetzen Inhaltsverzeichnis 1 Einführung 1 1.1 Allgemeines 1 1.2 Konzeption und Zielsetzung 1 2 Wahl eines Digitalvideoformates 3 2.1 Überblick 3 2.1.1 Klassifizierung von Bildmaterial 3 2.1.2 Kompressionsverfahren 3 2.1.3 Digitalvideoformate 5 2.2 Entscheidungsfindung 6 2.2.1 Kriterien 6 2.2.2 Entscheidungsmatrix 8 2.2.3 Ergebnis 9 3 MPEG-1 11 3.1 Eigenschaften der Kodierung 11 3.1.1 Interframekodierung 11 3.1.2 Abhängigkeit vom Bildmaterial 12 3.1.3 Bildkodierung 12 3.1.4 Macroblöcke 13 3.1.5 Bewertung 13 3.2 MPEG-1 Parameter 13 3.2.1 Constrained Parameters 13 3.2.2 Bildformate 14 3.2.3 Speicherplatzbedarf / Bilddatenvolumen 14 3.2.4 Datenrate und Kompression 15 3.2.5 Bildraten 16 3.3 MPEG-1 Encoder 16 4 Berkeley MPEG-1 Video Encoder 18 4.1 Eigenschaften des Encoders 18 4.2 Eingabebilddaten 18 4.3 Programmablauf 18 4.3.1 Parallelisierung 19 4.3.2 Inkrementelle Herstellung von MPEGs 19 4.4 Parameterfile 19 4.4.1 Kompression 19 4.4.2 Anordnung der Frames 20 4.4.3 Eingabebilddaten 20 4.4.4 Sonstige Parameter 20 4.4.5 Beispiel für ein Parameterfile 21 4.5 Ausgabe des Encoders 22 4.6 Performance 23 5 MPEG-1 Video Dekoder 24 5.1 Beschreibung einiger MPEG-1 Software-Dekoder 24 5.1.1 MPEG-Play 1.0 24 5.1.2 MPEG-Play 2.0.x 24 5.1.3 VMPEG 25 5.1.4 Movie Player 25 5.2 Performance von Software-Videoplayern 26 5.2.1 Wiedergabe typischer MPEGs auf verschiedenen Dekodern 26 5.2.2 MPEG-Kompression und Dithering-Modi 28 5.2.3 Fazit 30 5.3 Hardware MPEG-Dekoder 31 5.4 Ergebnis 32 6 Videoverfilmung am RRZN/RTB 34 6.1 Ablauf einer Videoverfilmung aus Benutzersicht 34 6.2 Implementierung des Videoservers 35 6.2.1 Transfer der Benutzerdateien 35 6.2.2 Vorverarbeitung 35 6.2.3 Erstellung des Videos 35 7 Implementierung 37 7.1 Unterschiede zur Videoverfilmung 37 7.2 Leistungsmerkmale des Preview-Services 37 7.3 Entwurf der Implementierung 38 7.3.1 Ergänzungen in der Steuerdatei 38 7.3.2 Erforderliche Datenstrukturen 38 7.3.3 Erforderliche Programme 39 7.3.4 Überlegungen zur Verwendung des MPEG-Encoders 39 7.4 Vorbereitung 40 7.4.1 Definition der Schlüsselwörter für die Steuerdatei 40 7.4.2 Definition der Datenbank 41 7.4.3 Testinstallation 42 7.5 lp-Shellscript "video_preview" 43 7.5.1 Definitionen 43 7.5.2 Herausfiltern der Benutzerangaben 44 7.5.3 Erzeugen der Schnittliste 45 7.5.4 Generieren des Parameterfiles für den MPEG-Encoder 45 7.5.5 Herstellen der Bilddateien im Encoder-YUV-Format 45 7.5.6 MPEG-Kodierung 46 7.5.7 Erzeugen eines Bildes im GIF-Format 46 7.5.8 Einfügen des Previews in die Datenbank und Cleanup 47 7.5.9 Übersicht 48 7.6 Steuerdatei-Parser "psagi" 49 7.6.1 Funktionen 49 7.6.2 Syntax 49 7.6.3 Beschreibung 49 7.6.4 Fehlercodes 51 7.6.5 Beispiele 51 7.7 MPEG-Parameterfile-Generierung mit "pfgen" 53 7.7.1 Funktion 53 7.7.2 Syntax 53 7.7.3 Beschreibung 54 7.7.4 Die Betacam-Schnittliste 54 7.7.5 Umsetzung Schnittliste - Bildliste 55 7.7.6 Fehlercodes 56 7.7.7 Beispiele 56 7.8 Konvertierung Abekas-YUV zu UCB-YUV mit "yuv2eyuv" 58 7.8.1 Funktion 58 7.8.2 Syntax 58 7.8.3 Beschreibung 59 7.8.4 YUV-Formate: Abekas und UCB 59 7.8.5 Test 61 7.9 GIF-Bild-Erzeugung für den Suchindex 62 7.9.1 Konverter eyuv zu PPM "eyuv2ppm" 62 7.9.2 Halbierung des Bildformates mit "eyuvhalf" 62 7.9.3 Beispiele 63 7.10 WWW-Zugriffsmechanismus 63 7.10.1 Zugriffsschutz und Interaktion 63 7.10.2 Der Video-Preview-Suchindex 64 7.10.3 CGI-Übergabemechanismen 66 7.10.4 Das Suchergebnis 67 7.10.5 Digitalvideo-Playout 69 7.10.6 Preview-Datenbankzugriff über CGI mit "vp_resp" 69 8 Erfahrungen aus dem Testbetrieb 72 8.1 Zeit- und Speicherplatzbedarf 72 8.2 Qualität der erzeugten MPEGs 74 8.3 Benutzerschnittstelle 75 8.4 WWW-Zugriff 75 8.5 Fazit 75 9 Zusammenfassung und Ausblick 77 9.1 Zusammenfassung 77 9.2 Ausblick 78 Literaturverzeichnis 80