ウェブカメラからのビデオストリームで画像処理を実行できる必要があるアプリ(ARM Ubuntuで実行)で実行)を作成しています。データを取得する最も簡単な方法は、出力を使用することです。プロセスでストリーミングするので、子プロセスをホストし、コマンドを実行して、出力を消費することを計画しています。現在の計画はFFMPEGを使用することですが、ARMで動作する任意のコマンドラインツールを使用できます。実際には2つあります。私の質問の一部:
どんな情報でもいただければ幸いです!
FFmpegとvideo4linux2
を使用すると、 ほぼすべてのWebカメラ入力を取得 できます。 ダウンロードページ または 自分でコンパイル の最新バージョンのffmpeg
を使用してください。カメラのフレームサイズとフレームレートは、次の方法で確認できます。
v4l2-ctl --list-formats-ext
たとえば、Webカメラが提供するフレームレートと画像サイズがわかった場合:
ffmpeg -f video4linux2 -r 25 -s 640x480 -i /dev/video0 \
-c:v rawvideo -f rawvideo -pix_fmt yuv420p -
これにより、/dev/video0
のカメラから640×480ピクセルで25fpsのビデオがキャプチャされ、YUV 4:2:0平面ピクセル形式でエンコードされた生のYUVフレームがstdoutに出力されます。 rawvideo
エンコーダーとフォーマットがそれを処理します。ヘッダーはありません。
ここで変更できるもの:
別のフレームレートまたはサイズを設定します。
ここで、最後の-
はデータをstdoutに送信しますが、必要に応じてファイルを選択することもできます。
使用可能な他のピクセル形式を確認するには、ffmpeg -pix_fmts
を実行します。それらのバイト順序は fourcc.org で説明されています。 RGBデータが本当に必要な場合(これがカメラ出力のデフォルトであるとは思えませんが)、たとえば-pix_fmt rgb24
を使用できます。