Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

replay: capture audio from devices other than DeckLink #10

Open
asquared opened this issue Oct 22, 2014 · 4 comments
Open

replay: capture audio from devices other than DeckLink #10

asquared opened this issue Oct 22, 2014 · 4 comments

Comments

@asquared
Copy link
Member

It'd be nice to be able to capture from USB audio interfaces, mixers, etc., freeing up SDI capture cards for video use.

@asquared asquared self-assigned this Oct 22, 2014
@kench
Copy link
Contributor

kench commented Jan 14, 2017

Support for "class compliant" USB devices would be nice (Linux has built-in support). I can suggest some test hardware.

For USB audio interfaces, the Focusrite Scarlett comes highly recommended (I use the 2i4 personally - it has very low latency).

For USB mixers, I have a friend that uses (and recommends) the Yamaha MG10XU (it has an effects processor that he loves to use).

@kench
Copy link
Contributor

kench commented Jan 14, 2017

I'm also looking at acquiring this specific HDMI capture device: http://www.magewell.com/usb-capture-hdmi

It should work with the Linux kernel's drivers for UVC (USB video class) and UAC (USB audio class) - I'm thinking about pairing it with a Zotac PC to broadcast Nintendo Switch (or any mobile device with an HDMI port) gameplay on the go.

I recall they were used for Concerto at some point in the past.

@asquared
Copy link
Member Author

Hava a look at the V4L2UpscaledInputAdapter class. It shouldn't be too hard to create a version that doesn't do any scaling, but captures in 1920x1080. The input adapter interface is also used for audio-only devices. It would be helpful to have one that can talk to any ALSA device.

For a quick start, you may want to build an input adapter class that reads raw audio samples from a (unix) pipe, packages it up into IOAudioPackets, and sends them down the audio_output_pipe. Your class would need to instantiate a Pipe<IOAudioPacket *>, implement audio_output_pipe() (which would just return the Pipe), launch an arecord child process with stdout going to a unix pipe, and start a thread.

The thread would be a loop to create IOAudioPackets, fill them by reading from the unix pipe, then send them to the rest of the program by writing to the Pipe.

@asquared asquared removed their assignment Jan 14, 2017
@kench
Copy link
Contributor

kench commented Jan 14, 2017

Thanks, Andrew!

What's the audio sample rate that's being used here? It's not obvious to me and it's not configurable.

Is there an example configuration for the keyer that would allow me to listen to what's coming out of the keyer? I'm not well-versed in the keyer configuration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants