Was ist Pipen (piping) ist eine Umleitung.
Wenn ich z.b am CMD Prompt (Powershell) cd C:\ eingebe so ändert sich das Prompt in PS C:\>
Wenn ich hier jetzt ein dir C:\ >list.txt eingebe so finde ich im C:\ Verzeichnis eine list.txt vor, in der jetzt die gefundenen Ordner und Dateien drinstehen.
Das könnte ich auch mit Clipboard machen. die Eingabe am Prompt dir C:\ |clip würde hier ein Piping über Clipboard herstellen. das heisst alles steht jetzt in der Zwischenablage und kann mit den Einfügen Befehl in jedes Text oder ä. Dokument übernommen werden.
Wie sieht es aber aus wenn ich in Windows von einem laufenden Programm in ein anderes laufendes Programm pipen will.
Da das Pipen in Windows von Programm zu Programm schon sehr aufwendig ist, habe ich mal daran gesetzt und eine batch geschrieben, die mit gewissen Änderungen entsprechend benutzt werden kann.
In meiner speziellen batch wird ffmpeg aufgerufen um eine Datei zu "Remuxen" und in Pfad der batch.datei eine "Ausgabe.mkv" schreiben. Als nächstes wird diese Datei jetzt mit Vlc zur Betrachtung, Aufnahme und Multicast Streaming benutzt.
Lets go:
Display Spoiler
@echo off
color 0E
REM Startet FFmpeg im Hintergrund und verschiebt es ihn in den Hintergrund
start /B "" ffmpeg -v error -hide_banner -thread_queue_size 1024 -i "input.mp4" -c:v libx264 -c:a aac -strict experimental "Ausgabe.mkv"
REM Überprüfen ob die Ausgabedatei von FFmpeg existiert und wartet, bis sie vorhanden ist
:waitforoutput
if not exist "Ausgabe.mkv" goto waitforoutput
timeout /t 5
REM VLC im Hintergrund starten und verschieben in den Hintergrund
start /B "" vlc file:///C:/FFmpeg/bin/Ausgabe.mkv :sout=#transcode{scodec=none}:duplicate{dst=udp{mux=mkv,dst=239.0.0.1:1234},dst=file{dst=C:\\\\FFmpeg\\\\bin\\\\versuch21.08.mkv,no-overwrite},dst=display} :no-sout-all :sout-keep
cls
color 1E
echo.
echo.
echo. FFmpeg erstellt eine Ausgabedatei ("Ausgabe.mkv") von einer Eingangsdatei gleichzeitig wird diese Datei
echo. ueber udp://@239.0.0.1:1234 gestreamt.
echo. Eine Instanz von VLC wurde gestartet, die diese von FFmpeg erstellte Datei darstellt und wieder in (Versuch21.08.mkv)
echo. ins eingestellte Verzeichnis speichert.
echo.
echo. Mit einer weiteren bzw. mehreren VLC Instanzen kann jetzt auf die Unicast-Adresse udp://@239.0.0.1 zugegriffen werden.
echo. Auch an anderen Netzwerkteilnehmern.
echo.
echo.
echo.
echo. Die Batch-Datei muss durch den Benutzer beendet werden.
Display More
In meiner batch gehe ich davon aus, das globale Parameter für ffmpeg und VLC gesetzt sind außerdem in der Firewall entsprechende Ports freigegeben sind, sowie Rechte zu Erstellung von Dateien und Ordnern vorhanden sind.