Ich versuche, einen Knoten zu erstellen (eine Sammlung von Knoten ist auch in Ordnung), die viele Streams und einen Index aufnimmt und einen Stream durch den Index angegeben. Grundsätzlich möchte ich einen Mux Knoten zu erstellen, so etwas wie:FFmpeg Filter zur Auswahl von Video/Audio-Streams
Node : Stream ... Number -> Stream
FFmpegs Filtergraph API zwei Filter zu haben scheint zu tun, dass: streamselect
(für Video) und astreamselect
(für Audio). Und zum größten Teil, scheinen sie zu tun, was ich will:
[in0][in1][in2]streamselect=inputs=3:map=1[out]
Dieser Strom nimmt in drei Video-Streams und gibt die zweiten in1
.
Sie können einen ähnlichen Filter für Audio-Streams verwenden:
[in0][in1]astreamselect=inputs=2:map=0[out]
, die in zwei Strömen und Ausgang der ersten in0
nehmen.
Die Frage ist, kann ich einen Filter erstellen, der eine Liste von Audio- und Video-Streams aufnimmt und den Stream nur basierend auf dem Stream-Index ausgibt? So etwas wie:
[v0][v1][a0][a1][a2]avstreamselect=inputs=5:map=3[out]
Welche a1
zu out
Karten?
Wenn es hilft, verwende ich die libavfilter C API anstelle der Befehlszeilenschnittstelle.