Использование ffmpeg для потоковой передачи на карту Blackmagic Decklink Card или с нее

Я хочу использовать карты blackmagic с ffmpeg для потоковой передачи их ввода, но есть проблема.

Когда я использую кодировщик «H264 Pro» в качестве ввода «decklink» или «dshow», я вижу эту ошибку в выводе командной строки ffmpeg. Устройство в порядке, и я могу использовать его с другими приложениями, такими как MXPTiny или MXLight.

Вот команда и вывод:

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

и когда я использую «Decklink Audio Capture», чтобы определить его параметры, вот результат:

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
Какой бинарник вы используете?
Вы пробовали это с UUID? ffmpeg -f dshow -list_options true -i video=@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{44A8B5C7-13B6-4211-BD40-35B629D9E6DF} Кроме того, вы уверены, что установили драйверы blackmagic?
@Mulvya Я использовал статические сборки, которые можно загрузить по ссылке . @ Gergely Lukacsy Я попробовал UUID устройств, и результат тот же. Я также установил диски Blackmagic, потому что я могу использовать их с помощью MXPTiny, как я уже упоминал в своем вопросе!

Ответы (2)

Я знаю, что это довольно старая версия, НО насколько я знаю ffmpeg и Blackmagic Gear, вам нужно будет установить параметры ввода в соответствии с потоком, который он получает от кодировщика H-264.

Поэтому вам нужно сообщить ffmpeg, что он получает видео в кодировке H-264 и аудио в кодировке AAC — тогда все должно работать.

Это не проблема с картами DeckLink, поскольку они выводят необработанные видеоданные. Вы могли бы дать ему шанс ...

Насколько мне известно, прямой поддержки BM H264Pro в устройстве ввода ffmpeg "decklink" нет. Они просто поддерживают PCI-карты Decklink с необработанным видеопроизводством. Сначала я должен каким-то образом получить вывод H264 и передать его в ffmpeg для обработки и перекодирования.

Кажется, у Ffmpeg есть специальный механизм ввода для устройств с деклинком, может быть, попробовать?

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

Звучит так, как будто может потребоваться перекомпилировать Ffmpeg с поддержкой Decklink.

Также см. эту ветку, где кто-то упоминает, что вам нужно дополнительно указать точный формат ввода, поскольку он, похоже, не определяется автоматически: ffmpeg.zeranoe.com/forum/viewtopic.php?t=1126
Я попытаюсь скомпилировать последнюю версию ffmpeg с поддержкой Decklink, но все текущие статические версии теперь имеют (поддерживают) эту опцию. Я также попробовал упомянутую вами ссылку, и здесь была скомпилированная версия , но результат такой же, как и раньше.