Skip to content

en_TestingYourCaptureDevice

Takeshi HASEGAWA edited this page May 3, 2016 · 7 revisions

Testing your capture device with IkaLog

IkaLog needs HDMI capture devices to handle Splatoon video in realtime. This article describes how to test your capture device as IkaLog input.

  • This article does not apply to WinIkaLog (binary distribution).

See also:

DirectShow (Windows)

DirectShow capture, built on Theodore Watson's videoInput code, is avaliable on Windows. It supports video capturing through DirectShow supported devices.

  • Needs DirectShow driver for Capture Device that compatible with your Python binary.
  • The DirectShow must be compatible with your python binary. If you are running 64bit version of Python.exe, your driver must be compatible with 64bit applications.

Tested with:

  • BlackMagic Design Intensity Shuttle USB3.0
  • SKNet MonsterX U3.0R
(Windows)
P:\IkaLog> SET PYTHONPATH=.
P:\IkaLog>python ikalog\inputs\win\directshow.py

***** VIDEOINPUT LIBRARY - 0.2000 - TFW2013 *****

0: b'FaceRig Virtual Camera'
1: b'7160 HD Capture'
2: b'7160 HD Capture (Path 1)'
3: b'MonsterX U3.0R Capture 0'
4: b'Blackmagic WDM Capture'
5: b'AmaRec Desktop Capture'
6: b'AmaRec Video Capture'
7: b'Decklink Video Capture'
8: b'Dxtory Video 1'
9: b'Dxtory Video 2'
10: b'Dxtory Video 3'
11: b'Dxtory Video 4'
Please input number (or name) of capture device: 7
<__main__.DirectShow object at 0x02AA0F70>: initalizing capture device 7
init_capture enter
SETUP: Setting up device 7
SETUP: Decklink Video Capture
SETUP: Couldn't find preview pin using SmartTee
SETUP: Default Format is set to 720 by 486
SETUP: trying requested format RGB24 @ 1280 by 720
SETUP: trying format RGB24 @ 1280 by 720
SETUP: trying format RGB32 @ 1280 by 720
SETUP: trying format RGB555 @ 1280 by 720
SETUP: trying format RGB565 @ 1280 by 720
SETUP: trying format YUY2 @ 1280 by 720
SETUP: trying format YVYU @ 1280 by 720
SETUP: trying format YUYV @ 1280 by 720
SETUP: trying format IYUV @ 1280 by 720
SETUP: trying format UYVY @ 1280 by 720
SETUP: Capture callback set
SETUP: Device is setup and ready to capture.

To configure the device in IkaConfig.py:

INPUT_SOURCE = 'DirectShow'
INPUT_ARGS['DirectShow'] = {'device': 7}

AVFoundationCapture (for MacOS X)

AVFoudationCapture is available for MacOS X environment. This captures video through AVFoundation framework.

Tested with:

  • BlackMagic Design UltraMini Studio Recorder
  • BlackMagic Design UltraMini Intensity Shuttle (USB3.0 Version)

Procedure:

  • Power Wii U and make sure HDMI out is active.
  • Configure WiiU to output 720p (1280x720).
  • Connect your Capture Device to Wii U.
  • Connect the device to your Mac.
  • Follow the instructions below.
$ cd IkaLog/
$ export PYTHONPATH=.
$ python3 ikalog/inputs/osx/avfoundation_capture.py
2015-10-22 16:56:05.402 Python[4652:460945] Device[0]: FaceTime HD Camera
2015-10-22 16:56:05.402 Python[4652:460945] Device[1]: Blackmagic UltraStudio Mini Recorder
Please input number of capture device: 1 *(Type the device number)*
<__main__.AVFoundationCapture object at 0x10f0b4b38>: initializing capture device 1
2015-10-22 16:56:12.291 Python[4652:460945] Seleted capture device: Blackmagic UltraStudio Mini Recorder | uniqueID:(snip) | modelID:UltraStudio Mini Recorder
*(Preview window should show up)*

To configure the device in IkaConfig.py:

INPUT_SOURCE = 'AVFoundationCapture'
INPUT_ARGS['AVFoundationCapture'] = {'device': 1}

GStreamer Capture

To configure BMD decklink device in IkaConfig.py:

INPUT_SOURCE = 'GStreamer'
INPUT_ARGS['GStreamer'] = {'source': 'videotestsrc ! videoconvert ! appsink'}vice-number=0 ! videoconvert ! appsink")

CVCapture (Windows, Mac, and Linux)

CVCapture is typical video capture method based on OpenCV VideoCapture feature. Since the capture method has some limitations, it is going to be altered with DirectShow and AVFoundationCapture.

  • Needs DirectShow driver for Capture Device that compatible with your Python binary.
  • The DirectShow must be compatible with your python binary. If you are running 64bit version of Python.exe, your driver must be compatible with 64bit applications.
  • We found OpenCV VideoCapture feature is incompatible with some drivers. It means CVCapture cannot handle all of video capture devices.

Tested with:

  • AVerMedia AVT-C825 (needs StreamEngine software)
(Windows)
> SET PYTHONPATH=.
> python3 ikalog/inputs/opencv_videocapture.py
(MacOS X)
dhcp44-82:IkaLog hasegaw$ export PYTHONPATH=.
dhcp44-82:IkaLog hasegaw$ python3 ikalog/inputs/opencv_videocapture.py
0: Input source 1 *(Windows only - You should see list of capture devices here)*
1: Input source 2
2: Input source 3
3: Input source 4
4: Input source 5
5: Input source 6
6: Input source 7
7: Input source 8
8: Input source 9
9: Input source 10
Please input number (or name) of capture device: 0
<__main__.CVCapture object at 0x10e588518>: initalizing capture device 0
*(Preview window should show up)*

To configure the device in IkaConfig.py:

    source = inputs.CVCapture()
    source.select_source(index=1)     # Specify your device number