-
Notifications
You must be signed in to change notification settings - Fork 56
Stereoscopic 3D Video Settings
There are multiple options to capture/display stereoscopic 3D. Most straightforward is to use separate SDI for both left and right eye. Another possibility is to use both eyes packed in HDMI (see here), which can be sometimes transmitted also 3D agnostic (eg. side-by-side packing).
UltraGrid supports multiple modes and there are two options to capture (provided that you have separate cables) - using single or multiple cards. Of course those can be combined - eg. captured with DeckLink 4K and displayed with two cards.
This expects a card that is aware of 3D and has either multiple inputs (SDI) or properly packed stereoscopic HDMI. Currently supported cards are DeckLink only, eg. 8K Pro. Usage:
# 8K Pro
uv -t decklink:3D:profile=1dfd <receiver_address>
uv -d decklink:3D:profile=1dfd
# 4K Extreme
uv -t decklink:3D <receiver_address>
uv -d decklink:3D
If using UltraGrid newer than 1.8.x, you don't need to specify 3D
[1] and neither profile
[2]
uv -t decklink[:full-duplex] <receiver_address>
uv -d decklink
[1] provided that the signal identifies itself as 3D (see also here)
[2] for capture on 8K pro, the 1-subdevice-full-hd profile still needs to be enabled for autocofiguration to work, it can be done in Desktop Video Setup: ☰ → <selected_card> → Connetors → "SDI 1 & 2 In, SDI 3 & 4 Out"
If using HDMI output, also packing can be specified:
uv -d decklink:3D:HDMI3DPacking=SideBySideHalfLineByLine
uv -d decklink:fullhelp # to see full list of packings
Testcard can be used in aggregate mode to send the 3D signal, eg.:
uv -t aggregate -t testcard:size=1920x1080:fps=24 -t testcard:1920x1080:fps24 <recv>
DeckLink driver is special because it can handle multiple independent cards (but of same type) in a 3D, examples:
uv -t decklink:<card_indices>:<mode>:<pixel_format> -m 8500 <receiverIP> # (all values can be obtained with '-t decklink:help')
# eg.:
uv -t decklink:0,1:6:UYVY -m 8500 <receiverIP>
If none DeckLink is not available, you can use aggregate pseudocapture as already mentioned in the section for testcard. Basically you'll let pick the signal from multiple sources and put it together. It is almost necessary for the sources to have the same signal. Example:
uv -t aggregate -t aja:device=0 -t aja:device=1
Receiving is mostly analogous to sending/capture, possible modes are:
-
side by side video - SDL/GL
uv -M 3D -d sdl/gl
Note: It is recommended to use SDL for Linux and GL display on Mac X OS, because these 2 combinations can span across all displays (which is perhaps needed - left display left eye, right display right). On Mac, click to uv->Preferences and select 'Use Extended Desktop' option. Then, you can press 'f' to toggle fullscreen (both systems). On Linux, you should have properly set Xinerama (in many cases, it shouldn't require any action from you).
-
dual-head HW - DeckLink Quad or 2x Intensity HDMI
uv -d decklink:0,1 -M 3D <senderIP>
(supposing 0 and 1 are indices of Quad's output ports or Intensities' indices)
-
dual-head HW - DeckLink HD Extreme 3D
uv -d decklink:0:3D -M 3D <senderIP
(0 is index of DeckLink HD Extreme 3D card)
-
interlaced scanline video using GL (scaling is not currently supported). SDL (or another device) should be analogous:
uv -d gl -M 3D -p 3d-interlaced
Same usage as above for capture.
If you have any technical or non-technical question or suggestion please feel free to contact us at