DeckLink video capt...
 
Notifications
Clear all

DeckLink video capture and playback cards and software

6 Posts
2 Users
0 Likes
6,513 Views
0
Topic starter

Finally I'm retired - one year later than first planned. The coming months I will bring back to life life my planned video hobby. This includes to continue recording my PAL analog S-video from Hi8 tapes and HDV from miniDV tapes to preferably YUV 4:2:2 digital archive and backup, before editing family videos with Cinelerra-GG next.

I have used some standalone, now discontinued and unsupported devices; Blackmagic Hyperdeck Shuttle 2 SSD recorder and a Analog to SDI miniconverter, Datavideo DN-300 A/D DV converter and HDV disk recorder, Videonics MX-1 mixer with a digital TBC and a Video Tech Design VCC3010 Video Corrector.

 

As many knows, Blackmagic Design's DeckLink family of video capture and playback PCIe cards and software utilities (Desktop Video) have been supported on Windows, Mac and Linux for quite some time. My understanding is that the Media Express should support video capture and playback on Linux, and that a free Desktop Video developer kit SDK can be used for custom solutions and applications.

 

My question is if DeckLink is something that possibly might be used for and utilized from Cinelerra-GG ?

urls for reference:

https://www.blackmagicdesign.com/developer/product/capture-and-playback
https://www.blackmagicdesign.com/no/products/decklink/workflow
https://www.blackmagicdesign.com/products/decklink/software
https://www.blackmagicdesign.com/products/decklink/mediaexpress

https://www.blackmagicdesign.com/products/decklink
https://www.blackmagicdesign.com/products/decklink/techspecs/W-DLK-36

--------
Terje

 

 

5 Answers
0

This looks like some real high-end professional stuff.  But in reading some of the references it does look like "DeckLink captures and plays back DPX, DVI and QuickTime files".  At least QuickTime files can be handled by CinGG.

0
Topic starter

Card models for SD and HD video seems to be Mini Recorder and Mini Monitor, while Studio 4k also handles analog I/O.

There are some ffmpeg docs for decklink devices, and some related topics for Ubuntu and Arch Linux.

Could possibly ffmpeg work as a 'gateway' between Cinelerra-GG and DeckLink? And which benefits could this 'online' connection  offer?

 

 

 

0

Amazingly ffmpeg handles just about anything.  I will see if GG can look at this url:

   https://www.blackmagicdesign.com/products/decklink/techspecs/W-DLK-36

that you quoted and provide some intelligent feedback.

0
Topic starter

Fine. Possibly the last mentioned allround model Studio 4k

https://www.blackmagicdesign.com/products/decklink/techspecs/W-DLK-12

 

And here the ffmpeg doc

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

(sorry for my somewhat primitive phone typing 🤒 )

 

 

 

PhyllisSmith 03/08/2020 5:47 pm

@terje

Saw your note this morning - we use Fedora as our O/S but I have been unable to get GG to look into this and as noted earlier, it is way beyond me.  Hopefully, someone will stop by and add to this.

0
Topic starter

To get more information about the Decklink software, I downloaded the Desktop Video 11.6 and its SDK for Linux from the developer page https://www.blackmagicdesign.com/developer/product/capture-and-playback

The rpm packages are for Fedora/CentOS, but as a test I got them installed and opened on Leap 15.2. Without any Decklink capture or playback card (device) installed yet, the applications Desktop Video Setup and Media Express cannot be used for something useful.

 

By the way, below follows an overview (somewhat edited) over what will be installed:

Directories:

ls -1d */

Blackmagic_DeckLink_SDK_11.6/
Blackmagic_Desktop_Video_Linux_11.6/
Blackmagic_Video_Capture and Playback/

 

Some useful documents and manuals:

ls -d1R */*.pdf */*.txt

Blackmagic_DeckLink_SDK_11.6/Blackmagic DeckLink SDK.pdf
Blackmagic_DeckLink_SDK_11.6/End User License Agreement.pdf
Blackmagic_Desktop_Video_Linux_11.6/License.txt
Blackmagic_Desktop_Video_Linux_11.6/ReadMe.txt
Blackmagic_Video_Capture and Playback/Blackmagic Video Capture and Playback.pdf
Blackmagic_Video_Capture and Playback/CMakeLists.txt

 

A tree listing of all files:

tree */

Blackmagic_DeckLink_SDK_11.6/
├── Blackmagic DeckLink SDK.pdf
├── End User License Agreement.pdf
├── Examples
│   ├── AutomaticModeDetection.cpp
│   ├── DeviceNotification.cpp
│   ├── Examples.sln
│   ├── Examples.xcodeproj
│   │   └── project.pbxproj
│   ├── Linux
│   │   ├── bin
│   │   │   ├── i386
│   │   │   │   ├── AutomaticModeDetection
│   │   │   │   ├── DeviceNotification
│   │   │   │   ├── lib
│   │   │   │   │   ├── libc++abi.so.1
│   │   │   │   │   ├── libc++.so.1
│   │   │   │   │   └── libgcc_s.so.1
│   │   │   │   ├── RP188VitcOutput
│   │   │   │   ├── StatusMonitor
│   │   │   │   ├── SynchronizedCapture
│   │   │   │   ├── SynchronizedPlayback
│   │   │   │   ├── VancCapture
│   │   │   │   └── VancOutput
│   │   │   └── x86_64
│   │   │   ├── AutomaticModeDetection
│   │   │   ├── DeviceNotification
│   │   │   ├── lib
│   │   │   │   ├── libc++abi.so.1
│   │   │   │   ├── libc++.so.1
│   │   │   │   └── libgcc_s.so.1
│   │   │   ├── RP188VitcOutput
│   │   │   ├── StatusMonitor
│   │   │   ├── SynchronizedCapture
│   │   │   ├── SynchronizedPlayback
│   │   │   ├── VancCapture
│   │   │   └── VancOutput
│   │   ├── platform.cpp
│   │   └── platform.h
│   ├── Mac
│   │   ├── Binaries.dmg
│   │   ├── platform.cpp
│   │   └── platform.h
│   ├── Makefile
│   ├── platform.h
│   ├── RP188VitcOutput.cpp
│   ├── StatusMonitor.cpp
│   ├── SynchronizedCapture.cpp
│   ├── SynchronizedPlayback.cpp
│   ├── VancCapture.cpp
│   ├── VancOutput.cpp
│   └── Win
│   ├── AutomaticModeDetection.vcxproj
│   ├── AutomaticModeDetection.vcxproj.filters
│   ├── bin
│   │   ├── AutomaticModeDetection.exe
│   │   ├── DeviceNotification.exe
│   │   ├── RP188VitcOutput.exe
│   │   ├── StatusMonitor.exe
│   │   ├── SynchronizedCapture.exe
│   │   ├── SynchronizedPlayback.exe
│   │   ├── VancCapture.exe
│   │   └── VancOutput.exe
│   ├── DeviceNotification.vcxproj
│   ├── DeviceNotification.vcxproj.filters
│   ├── platform.cpp
│   ├── platform.h
│   ├── RP188VitcOutput.vcxproj
│   ├── RP188VitcOutput.vcxproj.filters
│   ├── StatusMonitor.vcxproj
│   ├── StatusMonitor.vcxproj.filters
│   ├── SynchronizedCapture.vcxproj
│   ├── SynchronizedCapture.vcxproj.filters
│   ├── SynchronizedPlayback.vcxproj
│   ├── SynchronizedPlayback.vcxproj.filters
│   ├── VancCapture.vcxproj
│   ├── VancCapture.vcxproj.filters
│   ├── VancOutput.vcxproj
│   └── VancOutput.vcxproj.filters
└── Linux
├── include
│   ├── DeckLinkAPIConfiguration.h
│   ├── DeckLinkAPIConfiguration_v10_11.h
│   ├── DeckLinkAPIConfiguration_v10_2.h
│   ├── DeckLinkAPIConfiguration_v10_4.h
│   ├── DeckLinkAPIConfiguration_v10_5.h
│   ├── DeckLinkAPIConfiguration_v10_9.h
│   ├── DeckLinkAPIDeckControl.h
│   ├── DeckLinkAPIDiscovery.h
│   ├── DeckLinkAPIDispatch.cpp
│   ├── DeckLinkAPIDispatch_v10_11.cpp
│   ├── DeckLinkAPIDispatch_v10_8.cpp
│   ├── DeckLinkAPIDispatch_v7_6.cpp
│   ├── DeckLinkAPIDispatch_v8_0.cpp
│   ├── DeckLinkAPI.h
│   ├── DeckLinkAPIModes.h
│   ├── DeckLinkAPITypes.h
│   ├── DeckLinkAPI_v10_11.h
│   ├── DeckLinkAPI_v10_2.h
│   ├── DeckLinkAPI_v10_4.h
│   ├── DeckLinkAPI_v10_5.h
│   ├── DeckLinkAPI_v10_6.h
│   ├── DeckLinkAPI_v10_9.h
│   ├── DeckLinkAPI_v11_5_1.h
│   ├── DeckLinkAPI_v11_5.h
│   ├── DeckLinkAPI_v7_1.h
│   ├── DeckLinkAPI_v7_3.h
│   ├── DeckLinkAPI_v7_6.h
│   ├── DeckLinkAPI_v7_9.h
│   ├── DeckLinkAPI_v8_0.h
│   ├── DeckLinkAPI_v8_1.h
│   ├── DeckLinkAPI_v9_2.h
│   ├── DeckLinkAPI_v9_9.h
│   ├── DeckLinkAPIVersion.h
│   ├── DeckLinkAPIVideoEncoderInput_v10_11.h
│   ├── DeckLinkAPIVideoInput_v10_11.h
│   ├── DeckLinkAPIVideoInput_v11_4.h
│   ├── DeckLinkAPIVideoInput_v11_5_1.h
│   ├── DeckLinkAPIVideoOutput_v10_11.h
│   ├── DeckLinkAPIVideoOutput_v11_4.h
│   └── LinuxCOM.h
└── Samples
├── ActivateProfile
│   ├── ActivateProfile.cpp
│   ├── Makefile
│   ├── platform.cpp
│   └── platform.h
├── bin
│   ├── i386
│   │   ├── ActivateProfile
│   │   ├── Capture
│   │   ├── CapturePreview
│   │   ├── CaptureStills
│   │   ├── ClosedCaptions
│   │   ├── DeviceConfigure
│   │   ├── DeviceList
│   │   ├── DeviceStatus
│   │   ├── H265TestEncoder
│   │   ├── InputLoopThrough
│   │   ├── lib
│   │   │   ├── libc++abi.so.1
│   │   │   ├── libc++.so.1
│   │   │   ├── libdvp.so
│   │   │   ├── libgcc_s.so.1
│   │   │   ├── libQt5Core.so.5
│   │   │   ├── libQt5DBus.so.5
│   │   │   ├── libQt5Gui.so.5
│   │   │   ├── libQt5OpenGL.so.5
│   │   │   ├── libQt5Widgets.so.5
│   │   │   ├── libQt5XcbQpa.so.5
│   │   │   ├── libxcb-glx.so.0
│   │   │   ├── libxcb.so.1
│   │   │   └── plugins
│   │   │   ├── imageformats
│   │   │   │   ├── libqgif.so
│   │   │   │   ├── libqjpeg.so
│   │   │   │   ├── libqtiff.so
│   │   │   │   └── libqwbmp.so
│   │   │   ├── platforms
│   │   │   │   └── libqxcb.so
│   │   │   └── xcbglintegrations
│   │   │   ├── libqxcb-egl-integration.so
│   │   │   └── libqxcb-glx-integration.so
│   │   ├── LoopThroughWithOpenGLCompositing
│   │   ├── OpenGLOutput
│   │   ├── PlaybackStills
│   │   ├── qt.conf
│   │   ├── QuadPreview
│   │   ├── SignalGenerator
│   │   ├── SignalGenHDR
│   │   └── TestPattern
│   └── x86_64
│   ├── ActivateProfile
│   ├── Capture
│   ├── CapturePreview
│   ├── CaptureStills
│   ├── ClosedCaptions
│   ├── DeviceConfigure
│   ├── DeviceList
│   ├── DeviceStatus
│   ├── H265TestEncoder
│   ├── InputLoopThrough
│   ├── lib
│   │   ├── libc++abi.so.1
│   │   ├── libc++.so.1
│   │   ├── libdvp.so
│   │   ├── libgcc_s.so.1
│   │   ├── libQt5Core.so.5
│   │   ├── libQt5DBus.so.5
│   │   ├── libQt5Gui.so.5
│   │   ├── libQt5OpenGL.so.5
│   │   ├── libQt5Widgets.so.5
│   │   ├── libQt5XcbQpa.so.5
│   │   ├── libxcb-glx.so.0
│   │   ├── libxcb.so.1
│   │   └── plugins
│   │   ├── imageformats
│   │   │   ├── libqgif.so
│   │   │   ├── libqjpeg.so
│   │   │   ├── libqtiff.so
│   │   │   └── libqwbmp.so
│   │   ├── platforms
│   │   │   └── libqxcb.so
│   │   └── xcbglintegrations
│   │   ├── libqxcb-egl-integration.so
│   │   └── libqxcb-glx-integration.so
│   ├── LoopThroughWithOpenGLCompositing
│   ├── OpenGLOutput
│   ├── PlaybackStills
│   ├── qt.conf
│   ├── QuadPreview
│   ├── SignalGenerator
│   ├── SignalGenHDR
│   └── TestPattern
├── Capture
│   ├── Capture.cpp
│   ├── Capture.h
│   ├── Config.cpp
│   ├── Config.h
│   └── Makefile
├── CapturePreview
│   ├── AncillaryDataTable.cpp
│   ├── AncillaryDataTable.h
│   ├── build.sh
│   ├── CapturePreview.cpp
│   ├── CapturePreviewEvents.h
│   ├── CapturePreview.h
│   ├── CapturePreview.pro
│   ├── CapturePreview.ui
│   ├── com_ptr.h
│   ├── DeckLinkDeviceDiscovery.cpp
│   ├── DeckLinkDeviceDiscovery.h
│   ├── DeckLinkInputDevice.cpp
│   ├── DeckLinkInputDevice.h
│   ├── DeckLinkOpenGLWidget.cpp
│   ├── DeckLinkOpenGLWidget.h
│   ├── main.cpp
│   ├── ProfileCallback.cpp
│   └── ProfileCallback.h
├── CaptureStills
│   ├── Bgra32VideoFrame.cpp
│   ├── Bgra32VideoFrame.h
│   ├── CaptureStills.cpp
│   ├── DeckLinkInputDevice.cpp
│   ├── DeckLinkInputDevice.h
│   ├── ImageWriter.h
│   ├── ImageWriterLinux.cpp
│   ├── Makefile
│   ├── platform.cpp
│   └── platform.h
├── ClosedCaptions
│   ├── CEA708_Commands.cpp
│   ├── CEA708_Commands.h
│   ├── CEA708_Encoder.cpp
│   ├── CEA708_Encoder.h
│   ├── CEA708_Types.h
│   ├── main.cpp
│   └── Makefile
├── DeviceConfigure
│   ├── DeviceConfigure.cpp
│   ├── Makefile
│   ├── platform.cpp
│   └── platform.h
├── DeviceList
│   ├── main.cpp
│   ├── Makefile
│   ├── platform.cpp
│   └── platform.h
├── DeviceStatus
│   ├── com_ptr.h
│   ├── DeckLinkDeviceListModel.cpp
│   ├── DeckLinkDeviceListModel.h
│   ├── DeckLinkProfileCallback.cpp
│   ├── DeckLinkProfileCallback.h
│   ├── DeckLinkStatusDataTableModel.cpp
│   ├── DeckLinkStatusDataTableModel.h
│   ├── DeviceStatus.cpp
│   ├── DeviceStatus.h
│   ├── DeviceStatus.pro
│   ├── DeviceStatus.ui
│   ├── main.cpp
│   ├── platform.cpp
│   └── platform.h
├── H265TestEncoder
│   ├── Encoder_icon.icns
│   ├── Fonts
│   │   ├── gotham-xlight.otf
│   │   ├── OpenSans-Light.ttf
│   │   └── OpenSans-Semibold.ttf
│   ├── H265TestEncoder.pro
│   ├── H265TestEncoder.qrc
│   ├── H265TestEncoder.qss
│   ├── Images
│   │   ├── logo.png
│   │   ├── Record_default.png
│   │   ├── Record_stop.png
│   │   ├── slider_handle_focus.png
│   │   ├── slider_handle.png
│   │   └── UltraStudio4K_12G.png
│   └── src
│   ├── ColourPalette.cpp
│   ├── ColourPalette.h
│   ├── CommonGui.cpp
│   ├── CommonGui.h
│   ├── CommonWidgets.cpp
│   ├── CommonWidgets.h
│   ├── ControllerImp.cpp
│   ├── ControllerImp.h
│   ├── ControllerWidget.cpp
│   ├── ControllerWidget.h
│   ├── DeckLinkDevice.cpp
│   ├── DeckLinkDevice.h
│   ├── main.cpp
│   ├── MainWindow.cpp
│   ├── MainWindow.h
│   ├── VideoWriter.cpp
│   └── VideoWriter.h
├── InputLoopThrough
│   ├── com_ptr.h
│   ├── DeckLinkInputDevice.cpp
│   ├── DeckLinkInputDevice.h
│   ├── DeckLinkOutputDevice.cpp
│   ├── DeckLinkOutputDevice.h
│   ├── DispatchQueue.h
│   ├── InputLoopThrough.cpp
│   ├── LatencyStatistics.cpp
│   ├── LatencyStatistics.h
│   ├── LoopThroughAudioPacket.h
│   ├── LoopThroughVideoFrame.h
│   ├── Makefile
│   ├── platform.cpp
│   ├── platform.h
│   └── SampleQueue.h
├── LoopThroughWithOpenGLCompositing
│   ├── build.sh
│   ├── GLExtensions.cpp
│   ├── GLExtensions.h
│   ├── LoopThroughWithOpenGLCompositing.cpp
│   ├── LoopThroughWithOpenGLCompositing.h
│   ├── LoopThroughWithOpenGLCompositing.pro
│   ├── LoopThroughWithOpenGLCompositing.ui
│   ├── main.cpp
│   ├── OpenGLComposite.cpp
│   ├── OpenGLComposite.h
│   ├── VideoFrameTransfer.cpp
│   └── VideoFrameTransfer.h
├── Makefile
├── NVIDIA_GPUDirect
│   ├── i386
│   │   └── libdvp.so
│   ├── include
│   │   ├── dvpapi_cuda.h
│   │   ├── dvpapi_gl.h
│   │   └── DVPAPI.h
│   └── x86_64
│   └── libdvp.so
├── OpenGLOutput
│   ├── BMDOpenGLOutput.cpp
│   ├── BMDOpenGLOutput.h
│   ├── build.sh
│   ├── CDeckLinkGLWidget.cpp
│   ├── CDeckLinkGLWidget.h
│   ├── GLExtensions.cpp
│   ├── GLExtensions.h
│   ├── GLScene.cpp
│   ├── GLScene.h
│   ├── main.cpp
│   ├── OpenGLOutput.cpp
│   ├── OpenGLOutput.h
│   ├── OpenGLOutput.pro
│   └── OpenGLOutput.ui
├── PlaybackStills
│   ├── ImageLoader.h
│   ├── ImageLoaderLinux.cpp
│   ├── Makefile
│   ├── platform.cpp
│   ├── platform.h
│   └── PlaybackStills.cpp
├── QuadPreview
│   ├── com_ptr.h
│   ├── DeckLinkDeviceDiscovery.cpp
│   ├── DeckLinkDeviceDiscovery.h
│   ├── DeckLinkInputDevice.cpp
│   ├── DeckLinkInputDevice.h
│   ├── DeckLinkInputPage.cpp
│   ├── DeckLinkInputPage.h
│   ├── DeckLinkOpenGLWidget.cpp
│   ├── DeckLinkOpenGLWidget.h
│   ├── main.cpp
│   ├── platform.cpp
│   ├── platform.h
│   ├── ProfileCallback.cpp
│   ├── ProfileCallback.h
│   ├── QuadPreview.cpp
│   ├── QuadPreviewEvents.h
│   ├── QuadPreview.h
│   ├── QuadPreview.pro
│   └── QuadPreview.ui
├── SignalGenerator
│   ├── build.sh
│   ├── com_ptr.h
│   ├── DeckLinkDeviceDiscovery.cpp
│   ├── DeckLinkDeviceDiscovery.h
│   ├── DeckLinkOpenGLWidget.cpp
│   ├── DeckLinkOpenGLWidget.h
│   ├── DeckLinkOutputDevice.cpp
│   ├── DeckLinkOutputDevice.h
│   ├── main.cpp
│   ├── ProfileCallback.cpp
│   ├── ProfileCallback.h
│   ├── SignalGenerator.cpp
│   ├── SignalGeneratorEvents.h
│   ├── SignalGenerator.h
│   ├── SignalGenerator.pro
│   └── SignalGenerator.ui
├── SignalGenHDR
│   ├── build.sh
│   ├── ColorBars.cpp
│   ├── ColorBars.h
│   ├── com_ptr.h
│   ├── DeckLinkDeviceDiscovery.cpp
│   ├── DeckLinkDeviceDiscovery.h
│   ├── DeckLinkOpenGLWidget.cpp
│   ├── DeckLinkOpenGLWidget.h
│   ├── HDRVideoFrame.cpp
│   ├── HDRVideoFrame.h
│   ├── main.cpp
│   ├── SignalGenHDR.cpp
│   ├── SignalGenHDR.h
│   ├── SignalGenHDR.pro
│   └── SignalGenHDR.ui
└── TestPattern
├── Config.cpp
├── Config.h
├── Makefile
├── TestPattern.cpp
├── TestPattern.h
├── VideoFrame3D.cpp
└── VideoFrame3D.h

Blackmagic_Desktop_Video_Linux_11.6/
├── License.txt
├── ReadMe.txt
└── rpm
└── x86_64
├── desktopvideo-11.6a26.x86_64.rpm
├── desktopvideo-gui-11.6a26.x86_64.rpm
└── mediaexpress-3.6.1a24.x86_64.rpm

Blackmagic_Video_Capture and Playback/
├── Blackmagic Video Capture and Playback.pdf
├── BuildLinux.sh
├── CMakeLists.txt
├── DeckLinkCapture
│   ├── App.config
│   ├── DeckLinkInputDevice.cs
│   ├── Program.cs
│   └── Properties
│   └── AssemblyInfo.cs
├── DeckLinkDiscovery
│   ├── App.config
│   ├── Program.cs
│   └── Properties
│   └── AssemblyInfo.cs
├── DeckLinkIterator
│   └── main.cpp
├── Linux
│   ├── platform.cpp
│   └── platform.h
├── README.md
└── ScheduledPlayback
└── main.cpp

60 directories, 407 files

 

 

 

Share: