You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
3.6 KiB
101 lines
3.6 KiB
4 years ago
|
|
||
|
Audio capture with transcode using ALSA
|
||
|
======================================================================
|
||
|
Francesco Romani <fromani at gmail dot com> 12 May 2007
|
||
|
|
||
|
|
||
|
*********************************************************************
|
||
|
*** WARNING: ***
|
||
|
*** import_alsa module is still EXPERIMENTAL! ***
|
||
|
*** It may DON'T work for you or it can deliver BROKEN samples! ***
|
||
|
*** If you experiences strange (= not explained here) behaviour, ***
|
||
|
*** PLEASE drop a note on transcode-devel@exit1.org explaining ***
|
||
|
*** your issue. Thanks! ***
|
||
|
*********************************************************************
|
||
|
|
||
|
1. What is this?
|
||
|
----------------
|
||
|
|
||
|
This module allow the user to capture audio streams from an ALSA
|
||
|
device, that is the new default sound architecture for Linux 2.6.x
|
||
|
and beyond. Former OSS API is officially deprecated.
|
||
|
While ALSA API/drivers generally offers some OSS API emulation,
|
||
|
is generally preferable to stay on touch with state of the art and
|
||
|
use the new API directly.
|
||
|
|
||
|
Audio capture is useful for doing screencasts (see import_x11 or
|
||
|
import_vnc modules), or to analog video capture (see import_v4l(2)),
|
||
|
or to record separate audio tracks, or to do whatever you want.
|
||
|
|
||
|
|
||
|
2. Basic usage (gotchas, quirks, limitations)
|
||
|
---------------------------------------------
|
||
|
|
||
|
From an user point of view, usage of import_alsa should be
|
||
|
straightforwarded compared with import_oss. Just select the import
|
||
|
module (-x SOMETHING,alsa) setup import audio stream parameters using
|
||
|
-e and have fun.
|
||
|
|
||
|
A tricky step can be selecting the appropriate audio device to capture.
|
||
|
import_alsa by default reads audio from "default" ALSA card (see ALSA
|
||
|
documentation and/or your local configuration).
|
||
|
|
||
|
You can specify the card to use using the "device" option of import_alsa:
|
||
|
|
||
|
$ transcode -x SOMETHING,alsa=device=DEVICE
|
||
|
|
||
|
You can use the `arecord' program from alsa-utils to list the recognized
|
||
|
capture devices:
|
||
|
|
||
|
$ arecord -l
|
||
|
|
||
|
ALSA API strongly encourages applications to access audio through alsalib,
|
||
|
not accessing the device directly. Usage of device file is not really
|
||
|
supported (AFAIK), so import_alsa DOES NOT honours -i nor -p transcode
|
||
|
options. Those values are just ignored, so the only way to change
|
||
|
capture card is to use `device' option as outlined above.
|
||
|
|
||
|
|
||
|
3. Known issues
|
||
|
---------------
|
||
|
|
||
|
* first and foremost, PLEASE NOTE that some audio capture device DOES NOT
|
||
|
properly report the supported sample rate (and maybe others audio parameters
|
||
|
too). They simply accept everything but without be able to fullfill
|
||
|
the effective requests. SAA7134 devices is a known example of this
|
||
|
behaviour, not being able to deliver sampling rate > 32000Hz.
|
||
|
|
||
|
This is not a limitation of transcode, nor an easy way exists to
|
||
|
recognize those situations. Please pay attention to this and try
|
||
|
some different audio stream settings.
|
||
|
|
||
|
* ALSA transparent resampling is not yet supported.
|
||
|
|
||
|
* probing of audio device is not yet supported
|
||
|
(require transcode core changes).
|
||
|
|
||
|
* subdevice specification is not yet supported due to a transcode core
|
||
|
limitation.
|
||
|
|
||
|
* audio resync is still primitive.
|
||
|
|
||
|
* almost no optimizations (see module version number :) )
|
||
|
|
||
|
|
||
|
4. Internals
|
||
|
------------
|
||
|
|
||
|
See technical documentation in docs/tech/html/* and/or the comments
|
||
|
on source code for details.
|
||
|
|
||
|
|
||
|
5. Future plans
|
||
|
---------------
|
||
|
|
||
|
import_oss will NOT be deprecated in any foreseeable future.
|
||
|
import_alsa will be improved in further versions to address
|
||
|
all known issues above issues.
|
||
|
During next releases, import_alsa will be pushed as preferred
|
||
|
audio capture module over import_oss on Linux platforms.
|
||
|
|