HDMI Capture??

2012-05-09
2013-04-25
  • Mike Palmer
    Mike Palmer
    2012-05-09

    Hi Guys,

    Firstly thanks for all your work on this amazing software… really cool!

    We have been playing around with INGEX as a possible solution for super low budget sport event recording…   We are using BMD Intensity Pro cards to capture from Canon HV20 camcorders via HDMI (the Camcorders are mounted on a 6m high pole to get a good angle… can't bring myself to put expensive cameras up there with HD SDI output)

    We have been able to change a few settings in the recorder file and we are able to get the HDMI video signal into INGEX on the screen… when we go to record  it seems that if the MXF container format breaks, and if that doesn't the encoder will.

    Just wondering if what we are trying to do is at all possible?

    Thanks again

    Mike Palmer

     
  • John Fletcher
    John Fletcher
    2012-05-09

    What image format (dimensions, interlaced/progressive, frame rate, pixel format) are you getting from HDMI capture?

     
  • Mike Palmer
    Mike Palmer
    2012-05-09

    The signal in is 1920 x 1080 50i… From the hv20 Not sure of the pixel format.. (or what that is) 

    I can see video and audio in the input monitor….  We can seem to record from the command line directly using the Blackmagic API commands…

    Thanks 4 the super fast response…

     
  • Ben
    Ben
    2012-05-10

    Hello,
    I'm working on this project with aircooled76. The capture format we're using (as reported by bmd_sdi) is 1920x1080i25, and I have tried pixel formats YUV Planar 4:2:2 and UYVY 4:2:2. I'm using the SYS timecode provider because there isn't any timecode signal coming in through HDMI. In the Ingex GUI we can see a live stream from the camera, so the capture appears to be working. I had to change a line of code in bmd_sdi.cpp to get the DeckLink API to use the HDMI input instead of SDI, but other than that everything worked as expected.

    I configured the recorder to record to "Uncompressed YUVY" (just to see if the recorder works), and as soon as I press Record I receive a "Capture format(s) not suitable for Uncompressed UYVY" message in the logfile.

    It seems like regardless of which recording format I use, it almost always gives "Capture format(s) not suitable for (format)" error. If the format uses an MXF, this then causes an assertion to fail in the MXF writer, which crashes the recorder. For example, here's the result when using an uncompressed UYVY stream in an MXF container:

    15:32:38.188 IngexRecorderImpl::Start(), tc 15:32:38:03, pre-roll 10
    CopyManager failed to connect to xferserver.
    15:32:38.190 start_record_thread(input0 index 0, start_tc=15:32:37:18 Uncompressed UYVY MXF OP_ATOM)
    Capture format(s) not suitable for Uncompressed UYVY MXF OP_ATOM
    Warning: Tape source package edit rate (25/1) does not match clip edit rate (0/0)
    Recorder: MXFOPAtomWriter.cpp:377: void prodauto::MXFOPAtomWriter::CreatePackageDefinitions(): Assertion `descriptor->storedWidth == 1920' failed.
    Aborted
    

    Is there a way of finding why the selected capture format is unsuitable for recording?

     
  • John Fletcher
    John Fletcher
    2012-05-10

    What command line are you using for bmd_sdi?
    For "Uncompressed UYVY" recording you need to use "-f UYVY".
    For "VC3" you need "-f YUV422" which is the default setting.

    Could you share the code change you made for HDMI input, please?

     
  • Ben
    Ben
    2012-05-10

    The command line I was using for bmd_sdi while trying uncompressed UYVY recording:

    ./bmd_sdi -mode 1920x1080i25 -f UYVY -tt SYS
    

    When I tried recording to uncompressed UYVY (not in an MXF) with bmd_sdi running as above, it again said "Capture format(s) not suitable for Uncompressed UYVY".

    Here's the patch I made to make bmd_sdi use the HDMI input instead:

    --- a/ingex-studio-src-1.0.0/studio/capture/bmd_sdi.cpp
    +++ b/ingex-studio-src-1.0.0/studio/capture/bmd_sdi.cpp
    @@ -1204,7 +1204,7 @@ int BmdSetupBoards(int channel, BMDDisplayMode displayMode)
                 {
                     if (bmd_pBmdConfigArray[i] != NULL)
                     {
    -                    hr = bmd_pBmdConfigArray[i]->SetInt(bmdDeckLinkConfigVideoInputConnection, bmdVideoConnectionSDI);
    +                    hr = bmd_pBmdConfigArray[i]->SetInt(bmdDeckLinkConfigVideoInputConnection, bmdVideoConnectionHDMI);
                         hr = bmd_pBmdConfigArray[i]->SetInt(bmdDeckLinkConfigAudioInputConnection, bmdAudioConnectionEmbedded);
                         hr = bmd_pBmdConfigArray[i]->SetFlag(bmdDeckLinkConfig444SDIVideoOutput, false);
                         hr = bmd_pBmdConfigArray[i]->SetFlag(bmdDeckLinkConfig3GBpsVideoOutput, false);
    

    Is there anything else I should have changed in bmd_sdi.cpp to capture from HDMI, other than setting the input connection?

     
  • John Fletcher
    John Fletcher
    2012-05-14

    The problem with capture format is a bug in the release 1.0.0 code.
    If you use the current CVS, it should be fine.

     
  • John Fletcher
    John Fletcher
    2012-05-14

    And for HDMI input you can use the option "-bmd_video HDMI"

     
  • Ben
    Ben
    2012-05-15

    Okay, I'll give that a try… thanks for your help!

     
  • Mike Palmer
    Mike Palmer
    2012-05-28

    Just wanted to report back that we have this fully working and capturing via HDMI using a Blackmagic Design Intensity Pro card.  SWEET!!!