ふと思うところがあって、安価な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側から接続を切られてしまいます。まあ自分の主目的は映像をとることなのでその用途には十分使えそうです。