スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 後は作るだけだが | トップページ | AGM動画の出力も可能に »

静止画出力は可能に

今は、Ubuntu向けのWebカメラレコーダーを開発中で、今日の時点で、Webカメラからの映像を静止画出力する事は可能になった。動画出力については、TiDesktopRecorder用のコードを、ほぼそのまま利用できるので、明日には、動画出力も、一応は、可能になっている筈だ。

数日前に書いたように、Ubuntu用のWebカメラレコーダーは、Webカメラからの映像取得用に、V4L2というAPIを利用しているのだが、このAPIでは、Webカメラのネイティブデータしか取得できない。

つまり、WebカメラがYUV形式でデータを出力してくれば、その形式でデータを受けとる事になるし、MJPG形式で出力してくれば、その形式で受け取らなければならないのだが、静止画出力だとかAGM形式動画出力する為には、映像データは、基本的には、RGB32形式にしなければならない。

まあ、AGM形式用の処理コードの中には、YUV形式を受け取れる様にしているものもあるのだが、より自由にデータの加工等を行いたい場合、データは、やはり、RGB32形式になっていた方が扱いやすい訳だ。

で、冒頭に書いたように、今日の時点で、Webカメラからの映像を静止画出力する事が可能になったのだが、Webカメラから取得したデータはRGB24形式に変換してからファイル出力している。

より正確に書くと、PPM形式で出力しているのだが、この形式は、先頭に単純な文字列ヘッダを付け、後はRGBのバイナリをそのまま書き込むだけで良いので、出力が楽で、かつ、Ubuntu環境では、出力したPPMファイルをダブルクリックすれば、画像ビューアーが立ち上がって画像を表示してくれるので、テスト用には、この形式が便利だった訳だ。

と、言うことで、今日の時点で、Webカメラからの出力映像をRGB形式に変換して出力したPPMファイルの画像が正しい事まで確認できたので、既に、Webカメラがサポートしているフォーマットだとか解像度情報の取り込みも出来ているので、Webカメラレコーダーとしての主要コードは実装できた、という事になる。

もっとも、前述の様に、V4L2では、Webカメラから出力されてきたデータのデコードはアプリ側で行わなければならないのだが、巷のWebカメラレコーダーには、色々な出力フォーマットがある訳だ。

なので、全ての形式に対応するのは大変なので、開発中のWebカメラレコーダーでは、最も一般的なYUYVとMJPG形式のみをサポートするつもりなのだが、今日の時点で、双方のデータをRGB形式に変換する事が可能になっている。

と、言うことで、Webカメラレコーダーとしての新しい処理コードについては、問題なく動作する所まで確認できたのだが、まだ、映像のプレビューだとか動画としての録画機能なんかは実装していないので、明日は、そういった部分の実装を行うことになる筈だ。

ちなみに、V4L2の仕様を色々と調べたりしていると、API的には、Webカメラの映像取得時には、ピクセルフォーマットと解像度以外に、フレームレートの指定も可能な様なのだが、フレームレートについては、最高レートに固定する事にする。

これは、作者の手持ちWebカメラの中では、複数のフレームレートに対応している感じなのはMacBook Proに内蔵されているWebカメラのみで、USB接続の他のWebカメラでは、フレームレートは固定だから、という事もあるのだが、UbuntuにプレインストールされているWebカメラ録画ツールである所のCheeseでも、解像度の指定は出来ても、フレームレートの指定は出来ないからだ。

逆に、Cheeseでは、画像の明るさ/コントラスト/鮮やかさ/色相の調整が可能なのだが、開発中のWebカメラでは、まだ、そういった調整機能は実装していないので、こちらについては、こちら側にも、実装する事になる筈だ。

« 後は作るだけだが | トップページ | AGM動画の出力も可能に »

2019年9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google