ELECOM UCAM-C0220Fを使う

Pocket

ふと思うところがあって、安価なUSBカメラを購入しました。エレコムの200万画素で安価(1000円程度)なモデルです。

最終的な目的の用途とは異なるのですが、とりあえず自宅の様子をストリーミングさせてみました。かつてはgstreamerを使っていろいろと余計な苦労をする羽目になったのですが(Google Slideの資料9ページ目参照)、いまどきはffmpeg/libavを使ってVorbis/TheoraやWebMにエンコードし、icecastに配送させるのが簡単だと思います。

このデバイスは映像入力をUVCクラス、音声(マイク)入力をAudioクラスとした複合デバイスに見えます。

 % lsusb
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 8564:1000
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 004: ID 056e:7016 Elecom Co., Ltd
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 % arecord -L
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=UCAMC0220F
    UCAM-C0220F, USB Audio
    Default Audio Device
sysdefault:CARD=UCAMC0220F
    UCAM-C0220F, USB Audio
    Default Audio Device
front:CARD=UCAMC0220F,DEV=0
    UCAM-C0220F, USB Audio
    Front speakers
surround40:CARD=UCAMC0220F,DEV=0
    UCAM-C0220F, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=UCAMC0220F,DEV=0
    UCAM-C0220F, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=UCAMC0220F,DEV=0
    UCAM-C0220F, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=UCAMC0220F,DEV=0
    UCAM-C0220F, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=UCAMC0220F,DEV=0
    UCAM-C0220F, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=UCAMC0220F,DEV=0
    UCAM-C0220F, USB Audio
    IEC958 (S/PDIF) Digital Audio Output

ffmpegでalsaデバイスとしてこのオーディオデバイスを使うと、定期的に”[alsa @ 0x15fcc00] ALSA buffer xrun.”というエラーが出ます。どうもUSB audioとしての動作が何かおかしいようです。この状態でoggfwdを続けていると、icecast側から接続を切られてしまいます。まあ自分の主目的は映像をとることなのでその用途には十分使えそうです。