• スポンサードリンク

Webカメラからh264動画を取得した〜い〜その1〜

Android Camera USB

あっ、どんなWebカメラからでもh264動画を取得できるわけではないからね。
最近のWebカメラであれば殆どはMJPEGには対応してるけど、一部はYUV2にしか対応してません。
そしてh264対応となると高価な極少数のWebカメラしか対応してません。

自分が調べた範囲内ではUSB接続のUVC規格対応でh264のハードウエアエンコード対応なのは

  • ロジクール C930e
    これは自分も持ってます。高かったぁ↓↓ 1.5万円ぐらいでした。
  • ロジクールC920t
    誰かプレゼントしてくださいm(_ _)m
    末尾のアルファベットはぼちぼち変わりますね。
    詳しくは次回以降として、C930eとはh264対応の仕方が違うらしいので2016年になったら買うかも(^^)
  • ロジクールC920-C
    これはCisco認定モデルっぽいですね。
  • バッファロー BSW50KM01Hシリーズ
    バッファローのHPだと在庫限りとなってます。
    誰かプレゼントしてくださいm(_ _)m
  • バッファロー BSW50KM02Hシリーズ
    これはマニュアルフォーカスみたい。しかもh264は1280×720のみ対応(´・ω・`) ってことは対応するのはなんか色々面倒くさそうなヨ・カ・ン(´・ω・`) 誰かお年玉代わりにくださいm(_ _)m
  • クリエイティブ LIVE! CAM CONNECT HD
    誰かプレゼントしてくださ〜いm(_ _)m

ぐらいなのかなぁ。まぁ探せばまだ他にもあるかもしれないけど。でも安物だと1000円しないWebカメラの中にあってどれも1万円超えの高級品(@@)
USB/UVCに限定しなければネットワークカメラでh264ハードウェアエンコード対応なのはぽちぽちありますね。

で、h264対応なら何が嬉しいかと言うと、カメラ側で重たいh264エンコード処理を行ってくれるので、使う側の負荷が下がる…あとはMJPEGはフレーム毎に圧縮しているだけなのに対してh264では複数フレーム間に渡って圧縮処理を行うので1フレームあたりのデータ量が少なくてすみます。平均的にはMJPEGの数分の1ぐらいかな。

もっともプレビュー表示するならデコードしないといけないので結局一緒やんという意見も^^;。後は複数フレーム間に渡って圧縮されているので何らかの理由で1フレームでも飛んでしまうと次のI-Frameが来るまで映像がかなり乱れてしまうとか、圧縮率画像の内容等によってはブロックノイズがよく見えたりとかまぁ世の中いいことだけではないですけど。

はてさてカメラ自体の話は置いといて、h264ハードウエアエンコードできるWebカメラが存在する&自分はAndroidにUSB経由でWebカメラを接続して表示するライブラリとかアプリを公開してる、ってことは…じゃんじゃかじゃんじゃん。Webカメラからh264動画を取得した〜い(^o^)/

そう思って自分がc930eを買ったのは去年のことでした。でもWebカメラからh264動画を取得する方法について調べてみると…ネット上には殆ど情報はありません(´・ω・`) USB.orgにある規格(英語)がほぼ唯一と言っていい情報源ですね。
しかもですねぇ、あれを読んだことがある人にはわかると思いますが色々と一筋縄ではいかないのです。
_| ̄|○ il||li YUV2(やMJPEG)ならチョイチョイって感じなのに。

でもやりましたよぉ〜\(^o^)/ 少なくともc930eのh264動画に関しては。詳しくは次回以降に書くつもりですが、UVC規格のh264対応のごく極一部にしか対応してないので他のカメラだとどうなんやろって感じでまだまだ改善の余地がありますが。
しか〜も残念ながら?現時点ではオレオレライブラリでのみ対応でlibusb/libuvcではh264関連のディスクリプタの解析すらできません。

ということで今回は前振りだけでm(_ _)m 年末だし忙しいんだもん。明日も仕事の打ち合わせが–;
今年もお疲れ様でした。

« »

  • スポンサードリンク