Linuxでは、video4linux2とffmpegを使用して/ dev/video0からデータを読み取り、Webカメラからビデオを取得できることがわかりました。 ffmpegは、制限された長さのビデオファイルにデータを出力します。私の質問は:
ビデオストリームをリモートビューアとローカルプログラムの両方にパイプして、ストリームデータをリアルタイムで処理し続けることができますか?
ありがとう。
私は このリンク から答えを見つけました(ライブラリを使用して)ビデオの入力としてウェブカメラを取得します。関数avformat_open_input()でパラメーターを定義する必要があります。
まず、デバイス登録はインポートです。
avdevice_register_all();
次に、入力形式を定義します。
AVInputFormat *inputFormat =av_find_input_format("v4l2");
他のオプションを設定することが可能:
_AVDictionary *options = NULL;
_
av_dict_set(&options, "framerate", "25", 0);
最後に:
avformat_open_input(&pFormatCtx, "/dev/video0", inputFormat, &options);
その後、入力ソースから読み取られてデコードされたフレームごとに、ディスプレイまたはその他のカスタマイズされた関数に渡すことができます。
これが他の人に役立つことを願っています。