Die nächsten Kapitel befassen sich mit dem optischen Anteil der Aufgabenstellung: Zunächst müssen die Videostreams mit geeigneter Hardware eingefangen werden, dann die verschiedenen Streams zu dem gewünschten Ergebnis zusammengesetzt und schließlich in sinnvoller Form abgespeichert werden.


Capture-Card als Input

Bearbeiten

Ein Videostream bezeichnet dabei einen Strom von Bildinformationen, die bei geeigneter Decodierung ein bewegtes Bild erzeugen können. Schließlich ist ein Video nichts anderes als eine entsprechend schnell abgespielte Folge zusammenhängender Bilder.

ffmpeg akzeptiert nahezu alles als Eingabe, wenn es in irgendeiner Form einem Audio/Video-Signal oder einer Bilddatei ähnelt. Dazu zählen natürlich auch Datenströme von anderen Prozessen mittels Pipes, was hier einen wesentlichen Vorteil bringt. So muss man die (noch?) fehlende Schnittstelle von ffmpeg zu den BlackmagicDesign-Capture-Cards nicht beweinen und kann stattdessen einfach ein anderes Programm verwenden, dass diese Karten ansprechen kann. Namentlich ist dieses Kommandozeilen-Programm bmdcapture (Bestandteil von bmdtools), welches genau dies leistet. Mittels Prozess-Substitution (...) und IO-Umlenkung < wird bmdcapture als ffmpeg-Input gestartet und mit & in den Hintergrund geschickt:

-i <(bmdcapture -m 10 -V 3 -C 0 -v -F nut -f pipe:1 &)

Diese Funktionalitäten sind grundlegend für diese Aufzeichnungslösung und man kann so theoretisch beliebig viele Capture-Karten in den ffmpeg-Input leiten. Für die Praxis stellt die Rechnerleistung - und natürlich die vorhandenen PCIe-Slots - eine Beschränkung dar.

Es folgt ein ffmpeg-Aufruf, welcher zwei Video-Streams gleichzeitig als Input aufnimmt:

 ffmpeg -i (bmdcapture -m 10 -V 3 -C 0 -v -F nut -f pipe:1 &)
        -i (bmdcapture -m 10 -V 3 -C 1 -v -F nut -f pipe:2 &)
        ...
        output.avi

Erfahrungen mit verschiedenen Videoquellen ToDo

Bearbeiten

Wie bereits erwähnt, können die vorgestellten Capture-Karten nur bestimmte Videosignale verarbeiten, wobei jedoch die geläufigsten unterstützt werden.

Alle Kameras, die von mir bei Testaufnahmen mit diesen Capture-Karten benutzt wurden, gaben ein 1080 i 50Hz Signal aus dem HDMI Type C Ausgang (Mini-HDMI) aus. Diese Filmkameras waren eine Canon Legria HR46, eine Profi-Filmkamera von Sony (+5000€) und eine Sony-Kamera im niederen Preissegment. Deshalb kann man davon ausgehen, dass alle gängigen Filmkameras, welche einen HMDI-Ausgang verbaut haben, dieses Format benutzen.

IntensityPro-Karten und Full-HD-Auflösung mit 60 Hz

Bearbeiten

Da die IntensityPro-Karte (und auch der Decklink-MiniRecorder) ein solches Signal (1920x1080 Auflösung, progressive, 60 Hz) nicht unterstützt, kann man den Umweg über einen Video-Scaler gehen. Solch ein Video-Scaler kann den Videostream einer Quelle (z. B. Beamer) in seiner Auflösung und Bildwiederholungsrate modifizieren. Es hat sich herausgestellt, dass der Preis des zusätzlichen Scalers weit unter dem einer entsprechenden Capture-Karte liegt, die ein solches Signal unterstützt.

Um nun den 1080 p 60 Hz Stream für die IntensityPro-Karte anzupassen, wird der Scaler so eingestellt, dass er ein 1080 i 50 Hz ausgibt. Damit haben die zwei aufzunehmenden Streams die gleiche Bildfrequenz und können im Zeilensprungverfahren (interlaced) dennoch mit einer Full-HD-Auflösung von der IntensityPro aufgenommen werden.

Getestet wurde der Video-Scaler XHDMI von SPATZ und erwies sich als leistungsstark und zuverlässig für seinen Zweck. Da dieser mit HDMI-Schnittstellen ausgestattet ist, lässt er sich leicht in den Aufnahmeaufbau integrieren.

Ein Nachteil dieses Scalers ist allerdings die ausschließliche Bedienmöglichkeit über ein Bildschirm-Overlay-Menü. Weil der Bildschirm für die Anzeige dieses Menüs das Output-Signal des Scalers aufnimmt, muss dieser auch dieses Signal unterstützen. Ein handelsüblicher Computer-Monitor kann bspw. keine interlaced Signale anzeigen. So müsste man für nachträgliche Änderungen blind durch das Menü navigieren, würde man einen solchen Bildschirm benutzen und den Scaler auf interlaced-Format umstellen.

Eine Recht einfache Lösung für dieses Problem ist die Verwendung eines Full-HD-Fernsehers. Diese sind günstig zu beschaffen, meistens mit ausreichend Eingängen ausgestattet und können Vollbild- sowie Halbbildformate darstellen.

ToDo.: verwendetes Modell raussuchen