kazu_2012
2014年5月9日 9時54分
http://armadillo.atmark-techno.com/opencv_display
上記を参考に動画によるopencv動作を行っています。
添付ファイルでコンパイルは通りました。
動作させてみたいのですが、どのように実行コマンドを渡していいか悩んでいる状況です。
コメントいただけないでしょうか
[root@armadillo810-0 (pts/0) ~]# mjpg_streamer -i "/usr/lib/mjpg_streamer/input_
uvc.so -d /dev/video1 -yuv -r 640x480 --fps 5" -o "/usr/lib/mjpg_streamer/output
_http.so -w /usr/lib/mjpg_streamer/www"&
[root@armadillo810-0 (pts/0) ~]# MJPG Streamer Version.: 2.0
i: Using V4L2 device.: /dev/video1
i: Desired Resolution: 640 x 480
i: Frames Per Second.: 5
i: Format............: YUV
i: JPEG Quality......: 80
o: www-folder-path...: /usr/lib/mjpg_streamer/www/
o: HTTP TCP port.....: 8080
o: username:password.: disabled
o: commands..........: enabled
[root@armadillo810-0 (pts/0) ~]# opencv_sample 1
libv4l2: error setting pixformat: Device or resource busy
HIGHGUI ERROR: libv4l unable to ioctl S_FMT
libv4l2: error setting pixformat: Device or resource busy
libv4l1: error setting pixformat: Device or resource busy
HIGHGUI ERROR: libv4l unable to ioctl VIDIOCSPICT
(Capture:3146): Gtk-WARNING **: cannot open display:
[root@armadillo810-0 (pts/0) ~]#
ファイル | ファイルの説明 |
---|---|
opencv_sample.c | |
Makefile.txt |
コメント
kazu_2012
kensaku
2014年5月9日 15時34分
kensakuと申します。
外部の人間ですが、丁度mjpg-streamerを勉強(改修)している所ですのでいくつかコメントさせて頂きます。
まず「動画表示先」が何処によるかで使い方は変わります。
他PC等からブラウザ上で動画再生するのであれば下記サイトを御確認下さい。
http://armadillo.atmark-techno.com/opencv_display
上記サイトの動きとしては
・OpenCVプログラムで取得したカメラ画像をJPEGエンコードしてファイルシステムに格納
・mjpg-streamerが格納したファイルを拾い上げ、指定したポート(8080or8081)経由で動画ストリーミングを配信する
になります。
810ですと、上記サイトの記載にあるとおり、
「標準ではディスプレイ環境が備わっていないため、PCでの開発時のようにOpenCVのcvShowImage関数等を利用して処理結果を逐次確認する事が出来ません。」
になります。
※但しUSBのディスプレイを繋ぐといった荒業もありますが、基本構成環境にはありません
mjpg-streamerの起動指定方法について
> [root@armadillo810-0 (pts/0) ~]# mjpg_streamer -i "/usr/lib/mjpg_streamer/input_
> uvc.so -d /dev/video1 -yuv -r 640x480 --fps 5" -o "/usr/lib/mjpg_streamer/output
> _http.so -w /usr/lib/mjpg_streamer/www"&
mjpg-streamer自身(input_uvc.so)が自分でカメラ画像を取得、jpegエンコードして
8080ポートにmjpeg動画を流す動きになってしまいます。
input_uvcではなく、input_fileを使用しましょう。
また添付されたサンプルソースに関しても上記サイトのサンプルソースと比較して頂く事で
何処が悪いかはすぐ分かります。
cvShowImage()ではなく、cvSaveImage()でファイル保存させましょう。
以上。
> http://armadillo.atmark-techno.com/opencv_display
>
> 上記を参考に動画によるopencv動作を行っています。
> 添付ファイルでコンパイルは通りました。
> 動作させてみたいのですが、どのように実行コマンドを渡していいか悩んでいる状況です。
> コメントいただけないでしょうか
>
> [root@armadillo810-0 (pts/0) ~]# mjpg_streamer -i "/usr/lib/mjpg_streamer/input_
> uvc.so -d /dev/video1 -yuv -r 640x480 --fps 5" -o "/usr/lib/mjpg_streamer/output
> _http.so -w /usr/lib/mjpg_streamer/www"&
> [root@armadillo810-0 (pts/0) ~]# MJPG Streamer Version.: 2.0
> i: Using V4L2 device.: /dev/video1
> i: Desired Resolution: 640 x 480
> i: Frames Per Second.: 5
> i: Format............: YUV
> i: JPEG Quality......: 80
> o: www-folder-path...: /usr/lib/mjpg_streamer/www/
> o: HTTP TCP port.....: 8080
> o: username:password.: disabled
> o: commands..........: enabled
>
>
> [root@armadillo810-0 (pts/0) ~]# opencv_sample 1
> libv4l2: error setting pixformat: Device or resource busy
> HIGHGUI ERROR: libv4l unable to ioctl S_FMT
> libv4l2: error setting pixformat: Device or resource busy
> libv4l1: error setting pixformat: Device or resource busy
> HIGHGUI ERROR: libv4l unable to ioctl VIDIOCSPICT
>
>
> (Capture:3146): Gtk-WARNING **: cannot open display:
> [root@armadillo810-0 (pts/0) ~]#