問題タブ [video4linux]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Video4Linux の場合、Linux で mmap() 関数の FileDescriptor のメモリ アドレスを取得する方法
こんにちは、
Linux の IO_METHOD_MMAP のビデオによって割り当てられたバッファの物理メモリの場所を特定しようとしています。
mmap 関数に目を通すと、
buf.m.offset が 0 で、各プレーンの buf.length 値だけインクリメントすることがわかります。
私が探しているのは、/dev/video0 デバイスによって作成されたファイル記述子 (fd) のメモリ内の物理アドレスです。
これは Im6 にあります。
これの目的は、その物理アドレスを GPU に渡すことです。
ありがとう、
timestamp - キャプチャされたフレームの GStreamer タイムスタンプ (PTS) が単調に増加しない
GStreamer 1.0 (PyGST) を使用して Web カメラからフレームをキャプチャするコードをいくつか書きました。捕獲の正確な時間を知ることは私にとって重要です。このために、v4l2src プロパティ do-timestamp を設定し、appsink を使用してバッファー PTS をテキスト ファイルに書き込みます。
ただし、タイムスタンプは単調に増加していません。たとえば、フレーム 16 のタイムスタンプは 0.88199 秒で、フレーム 17 のタイムスタンプは 0.77462 秒です。つまり、前のフレームより 0.10737 秒早くなります。(私は問題を示す図を持っていますが、それを投稿するのに必要な評判がありません。)
キャプチャされた GstBuffers の PTS が常に単調に増加するとは限らないのは正しいですか? これが正常な動作ではない場合、私が何を台無しにしたか誰か知っていますか?
Logitech c920 ウェブカメラを使用しています。フレームはカメラで h.264 エンコードされます。コードはおおよそ次のようになります。
webcam - h264 でエンコードされたビデオを Web カメラからディスプレイとファイルの両方にストリーミングできるのに、生のビデオにはストリーミングできないのはなぜですか?
Logitech C920 ウェブカメラから未加工のビデオをストリーミングし、GStreamer 1.0 を使用してビデオの表示とファイルへの保存の両方を行いたいと考えています。
これは、カメラから h264 でエンコードされたビデオをストリーミングすると機能しますが (カメラはハードウェアでエンコードされた h264 を提供します)、カメラから未加工のビデオをストリーミングすると失敗します。ただし、表示するだけ、またはファイルに保存するだけの場合、生のビデオのストリーミングは機能します。
h264 ビデオ ストリームでは機能するのに、生のビデオ ストリームでは機能しないのはなぜですか?
カメラからディスプレイとファイルの両方へのh264でエンコードされたビデオストリーム(WORKS):
カメラからディスプレイのみへの raw ビデオ ストリーム (WORKS):
カメラからファイルのみへの raw ビデオ ストリーム (WORKS):
カメラからディスプレイとファイルの両方への raw ビデオ ストリーム (失敗):
最後のコマンド (ディスプレイとファイルの両方への生のビデオ) は、警告やエラーなしで失敗します。gst-launch 端末の出力は、ファイルへの書き込みのみの場合とまったく同じです。xvimage ウィンドウが表示され、カメラからの画像が表示されますが、画像は変化しません (つまり、フリーズします)。ゼロ バイトのファイルも表示されます。
上記のコマンドの複数のバージョンを試しましたが、それらは問題を再現できる最小限のコマンドだと思います。
誰かが私が間違っていることを理解していますか?
ffmpeg - ffmpeg で h264 をキャプチャする方法
h264 を ffmpeg でキャプチャして仮想デバイスに送信しようとしています。YUYV をキャプチャして、次のコマンドで送信できます。
次に、YUYV の代わりに h264 をキャプチャするためにこれを試しました。
次に、ffmpeg はエラー ステートメントを返します。
V4l2 出力デバイスは、単一の生ビデオ ストリームのみをサポートします
誰かが正しいコマンドを知っていますか、それとも何が問題なのですか?
gcc - gspca コンパイル エラー / ラズベリー パイ ラズビアン
私はウェブカメラ Veo Stingray を持っています
- Ox545:8333 (ベンダーと製品 ID)
私はRaspberry Piモデルを持っています uname -r = Linux raspberrypi 4.1.15+ #830 Tue Dec 15 16:58:28 GMT 2015 armv6l GNU/Linux
http://mxhaard.free.fr/spca5xx.htmlの gspca ドライバーは、この Web カメラに互換性があるとリストしているので、「やった」と言います wget と xzf tarball rpi-source をダウンロードします rpi-update をダウンロードします
sudo rpi-update を実行する
rpi-update の詳細については、https://github.com/Hexxeh/rpi-updateを参照してください。次のステップを実行するには、最新のファームウェアと関連するカーネルを使用する必要があります。
rpi-source をインストールして実行し、実行中の最新のカーネルを構築したソース コードをインストールします。これにより、実行中のカーネルの正しいエントリが /lib/modules に作成されます。注: これを実行するために root である必要はありませんが、スクリプトは sudo を使用して特定のタスクを実行し、スクリプトの実行中に root パスワードが要求されます。
次に、rpi-source を実行すると、コンパイラーが異なるというエラーが発生するため (1 つのカーネルで使用したものとコンパイルされたもの)、代替をインストールして同じコンパイラーを使用するようにします。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc 4.x
次に、gspcav1 フォルダーに cd し、ルートとして ./gspca_build を実行します。
エラーは言う:
簡単な答えは互換性のあるロジクールカムを入手することだとわかっていますが、明らかに難しい答えが欲しいです。ありがとう!
raspberry-pi - Janus Gateway ICE エラーを伴う RPI WebRTC の UV4L
RPI カメラから webrtc を使用して Janus ルームにストリーミングする必要があります。PI に UV4L をインストールし、ゲートウェイ URL https://janus.conf.meetecho.comでデモを試してみました。
サーバーに janus-gateway をインストールしました (デモはこちら: https://janus.kizbat.com )。ゲートウェイの URL は次のとおりです: janus.kizbat.com:8089しかし、pi で uv4L に接続しようとすると、janus ログに次のエラーが表示されます。
STUN/TURN サーバーをセットアップしようとしましたが、同じエラーが発生します。
アイデアはありますか?