DirectShow-Capture-Quelle und FFMPEG
Habe ich eine AJA-Capture-Karte. Der installierte Treiber mit der Karte auch einige DirectShow filter. Wenn ich pop der filter in GraphEdit ich sehen:
und wenn ich den ffmpeg-Befehl
ffmpeg -f dshow -list_options true -i video="AJA Capture Source"
Sehe ich
[dshow @ 0034eec0] DirectShow video device options
[dshow @ 0034eec0] Pin "Video"
[dshow @ 0034eec0] pixel_format=yuyv422 min s=720x486 fps=27.2604 max s=1024x
486 fps=29.985
...
[dshow @ 0034eec0] Pin "Audio 1-2"
[dshow @ 0034eec0] Pin "Line21"
video=AJA Capture Source: Immediate exit requested
So sehe ich die Video-und Audio-pins, die ich brauche. Aber wenn ich versuchen, eine ffmpeg-Befehl zu erfassen, beide kann ich nur herausfinden, wie der video-Teil. Wie kann ich Haken in das audio-pin? Es scheint, alle Beispiele und Dokumentationen zeigen, um mit Hilfe eines separaten audio-Gerät, und nichts über das Einhängen in die Stifte. Bei mir läuft es aus einer batch-Datei nun so aus und ich benutze die ^ auf den Bruch der Linie
ffmpeg.exe ^
-y ^
-rtbufsize 100M ^
-f dshow ^
-i video="AJA Capture Source" ^
-t 00:00:10 ^
-aspect 16:9 ^
-c:v libx264 ^
"C:\VCS_AUD_SAMPLE.mp4"
Wieder, der Befehl oben wird mir einige schöne Videos, aber ich kann nicht herausfinden, den audio-Teil. Ist dies auch unterstützt ffmpeg-oder ich bin gehen zu müssen, ändern Sie die ffmpeg-dshow-code?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin der Entwickler dieser filter.
Eigentlich das gleiche Gerät ist, sowohl für audio-und video-streams. Außerdem werden die Daten für beide streams sind das Ergebnis einer Funktion. Division durch separate audio-und video-Filter auch in anderen Karten (Beispiel - DeckLink) künstlich (Sie müssen intern miteinander verbunden). Möglicher Grund für die Teilung - ein Versuch zur Vereinfachung des Graphen. Dies kann jedoch zu anderen Problemen führen (mit streams von verschiedenen Geräten).
Warum ffmpeg kann nicht mit pins von den gleichen filter - mir nicht klar. Dieses problem der ffmpeg-Entwickler.
Nur über eine Instanz zugreifen - sehr alte version von AJA-Capture-Quelle-filter verwendet. Eine neuere version der filter können Sie erstellen mehrere Instanzen gleichzeitig (aber nur eine Instanz kann im "Play" - Zustand). Bitte überprüfen Sie die AJA-Website zum herunterladen der neuesten Versionen der Filter. Wenn Sie prüfen möchten, neuesten beta-Versionen von AJA-Filter, bitte schreiben Sie mich an [email protected]
Also nach Verfolgung durch source-code von FFmpeg, es war als könnte es nicht Haken Sie bis zu mehrere pins auf ein dshow Quelle, so dass statt einer änderung der FFmpeg-Quellcode, wir paspelierten, die die AJA-source-pins durch zwei virtuelle capture-Quellen das gewünschte Ergebnis zu erzielen.
Support OK war (hoffentlich) kurzem in FFmpeg dshow, können Sie angeben
ffmpeg -f dshow -i video="AJA Capture Source":audio="AJA Capture Source"
jetzt und es funktioniert.Gibt es auch neue Parameter für die Auswahl der pin, die Sie verwenden möchten, wenn Sie Sie brauchen. https://www.ffmpeg.org/ffmpeg-devices.html#dshow
Wenn es nicht funktioniert für jemanden/jemand bitte lassen Sie mich wissen, [email protected] oder einen Kommentar hier.
Vom http://ffmpeg.org/trac/ffmpeg/wiki/DirectShow
So versuchen