Verwenden von ffmpeg zum Streamen zu oder von der Blackmagic Decklink Card

Ich möchte Blackmagic-Karten mit ffmpeg verwenden, um ihre Eingabe zu streamen, aber es gibt ein Problem.

Wenn ich den „H264 Pro“-Encoder als „decklink“- oder „dshow“-Eingabe verwende, sehe ich diesen Fehler in der Befehlszeilenausgabe von ffmpeg. Das Gerät ist in Ordnung und ich kann es mit anderen Anwendungen wie MXPTiny oder MXLight verwenden.

Hier ist der Befehl und die Ausgabe:

ffmpeg -f dshow -list_devices true -i dummy -hide_banner
[dshow @ 0000000004efa5a0] DirectShow video devices (some may be both video and audio devices)
[dshow @ 0000000004efa5a0]  "Integrated Webcam"
[dshow @ 0000000004efa5a0]     Alternative name "@device_pnp_\\?\usb#vid_0c45&pid_641d&mi_00#7&11c87d18&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"
[dshow @ 0000000004efa5a0]  "Decklink Video Capture"
[dshow @ 0000000004efa5a0]     Alternative name "@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{44A8B5C7-13B6-4211-BD40-35B629D9E6DF}"
[dshow @ 0000000004efa5a0] DirectShow audio devices
[dshow @ 0000000004efa5a0]  "Microphone (2- High Definition Audio Device)"
[dshow @ 0000000004efa5a0]     Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{11A03288-DE6D-4A21-A66E-DC9303E838FA}"
[dshow @ 0000000004efa5a0]  "Decklink Audio Capture"
[dshow @ 0000000004efa5a0]     Alternative name "@device_sw_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\{AAA22F7E-5AA0-49D9-8C8D-B52B1AA92EB7}"
dummy: Immediate exit requested

und wenn ich "Decklink Audio Capture" verwende, um seine Optionen zu identifizieren, ist hier die Ausgabe:

ffmpeg -f dshow -list_options true -i video="Decklink Video Capture" -hide_banner
[dshow @ 000000000388a660] Unable to BindToObject for Decklink Video Capture
[dshow @ 000000000388a660] Could not find video device with name [Decklink Video Capture] among source devices of type video.
video=Decklink Video Capture: Input/output error
Welche Binärdatei verwendest du?
Hast du es mit der UUID probiert? ffmpeg -f dshow -list_options true -i video=@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{44A8B5C7-13B6-4211-BD40-35B629D9E6DF} Sind Sie außerdem sicher, dass Sie die Blackmagic-Treiber installiert haben?
@Mulvya Ich habe statische Builds verwendet, die unter Link heruntergeladen werden können . @ Gergely Lukacsy Ich habe die UUID von Geräten ausprobiert und das Ergebnis ist dasselbe. Ich habe auch Blackmagic-Laufwerke installiert, weil ich es von MXPTiny verwenden kann, wie ich in meiner Frage erwähnt habe!

Antworten (2)

Ich weiß, das ist ziemlich alt, ABER soweit ich ffmpeg und Blackmagic Gear kenne, müssen Sie Ihre Eingabeoptionen entsprechend dem Stream einstellen, den es vom H-264-Encoder erhält.

Sie müssen also ffmpeg mitteilen, dass es H-264-codiertes Video und AAC-codiertes Audio erhält - dann sollte es funktionieren.

Dies ist bei den DeckLink-Karten kein Problem, da sie rohe Videodaten ausgeben. Du könntest es versuchen...

Soweit ich weiß, gibt es keine direkte Unterstützung für BM H264Pro im ffmpeg "Decklink" -Eingabegerät. Sie unterstützen nur Decklink-PCI-Karten mit roher Videoproduktion. Ich sollte zuerst die H264-Ausgabe auf irgendeine Weise abrufen und sie zur Verarbeitung und Transcodierung an ffmpeg weiterleiten.

Es scheint, dass Ffmpeg einen dedizierten Eingabemechanismus für Decklink-Geräte hat, vielleicht probieren Sie das aus?

https://www.ffmpeg.org/ffmpeg-devices.html#decklink

Klingt jedoch so, als ob es notwendig sein könnte, Ffmpeg mit Decklink-Unterstützung neu zu kompilieren.

Siehe auch diesen Thread, in dem jemand erwähnt, dass Sie zusätzlich das genaue Eingabeformat angeben müssen, da es anscheinend nicht automatisch erkannt wird: ffmpeg.zeranoe.com/forum/viewtopic.php?t=1126
Ich werde versuchen, die letzte ffmpeg-Version mit Decklink-Unterstützung zu kompilieren, aber alle aktuellen statischen Versionen haben (unterstützen) diese Option jetzt. Ich habe auch den von Ihnen erwähnten Link ausprobiert und es gab hier eine kompilierte Version , aber das Ergebnis ist dasselbe wie zuvor.