I'm using Kinect v2 in Ubuntu 14.04 and trying to get a way to use it as a microphone using C++ as the programming language. I already have an application in C++ and Qt where the application redirects the audio streams from different audio input devices to some audio output devices.
In that application, it is possible to get a list of available audio input devices for that PC. Currently, the application already lists Xbox NUI Sensor Analog 4-channel Input as one of the audio input devices, as does ubuntu sound settings application. I have also checked if the Kinect Input audio device supports audio format of 44100 Hz sampling rate, sampling size of 16 bit, audio/pcm codec and 2 channel counts and apparently it does support.
The problem is that, in my application, I cannot hear any sound on the output when I use kinect xbox as the microphone, whereas in case of other audio input devices I can hear the sound just fine. I'm not sure what the solution could be.
I didn't find much about the microphone in libfreenect2 pages either. I know that libfreenect2 lists "audio transfer" as one of it's missing features, but on the other hand in the documentation it is also written in the Issues and Future Work section.
Audio. There is basic access to Kinect v2's audio via ALSA (Linux). However, this is directional audio with intricate calibration, which is probably beyond the scope of this image processing library.
Does this mean that it's still possible to get access to the audio stream from Kinect V2 microphone via ALSA in ubuntu 14.04 or only the fact, at most, that the Ubunut system can only detect Kinect v2 as an audio input device but cannot be used for actual recording purposes?
If it is the first case, could you suggest me how I can get an access to the audio stream of the Kinect microphone(I cannot find anything regarding the audio or the microphone in any of the docs of libfreenect2)? Do you have any other way to get kinect v2 microphone running apart from using libfreenect2?
Related
I have no experience in audio programming and I want to start with an audio player (C++, Qt, MacOS), that plays multi channel track on a multi channel audio card, multiplexing all input channels on all output.
Things, I need from a framework are:
Decode popular audio formats (FLAC) and get PCM streams for each channel
Query OS about currently installed audio cards and their capabilities (channel count)
Actually mix and transfer sound between these entities
VU Meter
Better cross-platform
From what I've learned, VLC is a powerful media framework. But I haven't found info neither if it is sufficient for my task nor any good tutorial about it.
Alternatively, I consider using Phonon (it's default media framework in Qt) or Apple CoreAudio API. What suits better for this task? Is there any good tutorials on audio programming in general and using VLC and other frameworks in particular?
I am doing a project regarding image processing and multiple person counting and was wondering, how exactly can I plug my ION AIR PRO PLUS video recording device (similar to a goPro), and use it as my 'webcam'? Basically, I want to plug it in and then access it via a live feed using Microsoft Visual Studio 2010 and OpenCV, and then do real time tracking of people walking.
What I am struggling with is accessing the external camera from my program. Anyone know how to do this?
The video camera has no wifi, only an hdmi output, RGB cable output and a USB.
Attach the USB cable and instantiate cv::VideoCaputre(0). In Linux local cameras have number indices I think in Windows should be the same.
Peter, In the past I have worked on camera products on Windows XP & 7. On windows usb cameras can be accessed using directshow.
You can implement a directshow filter for people tracking algorithm and fit it in the direct show pipeline soon after your camera plugin.
Here is a link to an application stack that may suit your use case(to give you an idea):
http://www.e-consystems.com/blog/camera/?p=1302
The recent windows operating systems that run WinRT, use a latest framework called MediaFoundation. As its very new there are some limitations we found when we tried to build similar applications.
To quickly see a preview out of your camera, pls google for "graphedit" and install it on a Windows 7 pc. Its a fairly simple tool. You can drag and drop your camera, if directshow is supported, then render its output pin and play for preview.
I do not think this is a standard webcam, it appears to work only as a mass storage device. One thing you can try is removing the micro sd card and connect it to the computer. This works on some cameras.
Assuming this does not work, one option would be to purchase an HDMI capture card. The YK762H PCI-E card costs around $40, and will allow you to use the camera with OpenCV, the videoInput library, or DirectShow.
The other option is to use the WiFi live preview. You would have to figure out the commands sent to the camera. This has already been done with the SJCam wifi cameras, the GoPro models, and Sony cameras such as the QX-10 and HDR-AS100V.
I have a library to decode some audio data into PCM and it works fine with Alsa.
I chose SDL to abstract the audio output because SDL is platform-independent. I rewrote it to use SDL to output the audio and it works. However, I want to output multiple sounds simultaneously and SDL only supports one sound per time.
What should I do?
I can use other audio library if it is free, lightweight and supports Linux, Windows XP and Android 2.3.
EDIT: Instead of decoding the entire audio data and filling the audio buffer, I have to fill the buffer partially on each iteration. Loops or callback functions are the solution to fill the next audio frame to play.
SDL_Mixer is the way to go if you're using SDL. It can play multiple sounds at a time, although only one music.
You can download SDL_Mixer, and get documentation, at http://www.libsdl.org/projects/SDL_mixer/ (or google SDL_Mixer).
I have been trying to access my analog camera via a EasyCap video capture device. Any code I try only picks the usb webcam or internal webcam. I guess that since video capture device is a video controller, opencv doesnt recognize it as a imaging device.
Can anyone conform if you cannot access analog cameras with opencv via a video capture device.
If so, then what other method can be used.
i struggled with the same problem (in my case within python instead of C++, although I am certain it will be the same root cause) and hope it helps!
the original thread + ANSWER
also relevant XKCD
Even for digital devices, OpenCV isn't good at reading them, it is good at processing them. The library has supply for generic webcams, of course; however it does not supply most of the commercial or industrial cameras.
In short, to decode, you should try using "video for linux" or "video for windows" libraries; or the device SDK itself. Since you are using a video2usb converter, you shouldn't have any problem accessing the analog camera through these software.
i want to built a 3D view of my scene with inputs from at least 3 webcams...presently i am using OpenCV (with C/C++) on Windows 7 32 bit platform and it gives me a maximum of 2 webcam views parallely...i have generated a 3D view with 2 webcams but that is not up to the mark...so i have the following questions...
if i use 3 webcams (2.0) in a USB hub is it possible to access the USB video frames without OpenCV?if yes then how?to keep it simple i can skip the USB hub because my laptop has 3 USB ports...is it then possible?
i have read about LIBUSB library...yet not used it...is it possible to access webcam video frames with this kind of usb library?
how safe is the LIBUSB library?i have read in some forums that if not configured and used correctly the blue screen pops up very frequently...it also runs a chance to damage the usb driver...? is there any other usb library i can use safely?
anyone who have worked on similar usb multiple webcam access stuff or has any idea on this please guide me...any suggestion is welcome...
You can run as many webcams as USB bandwidth allows
If USB bandwidth limit is hit, you are unlikely to resolve this by using certain software library
It might be helpful to lower resolution or start using on-camera compression if such option exists since both reduce USB traffic
More links on USB bandwidth constraint: 2 usb cameras not working with opencv