Logitech C920 ウェブカメラから 1080 @ 30FPS のビデオを録画しようとしています。簡単ですよね? でも、どうやらそうではないようです。
まず、Ubuntu に組み込まれている Cheese アプリケーションを使用して、16.04 を実行しているデスクトップで試してみました。プレビューは 30 FPS で問題なくストリーミングされますが、録画を開始するとすぐにフレーム レートが急激に低下し、おそらく約 15 FPS になります (Cheese には FPS メーターがないため、正確な値はわかりません)。
次に、16.04を実行しているデスクトップで を使って再度試してみましたguvcview
。残念ながら、16.04のデフォルトリポジトリのバージョンで2.02
ある には、バグこれにより、ビデオが 1 つの静止フレームとして録画されます。ああ... そこで、2.05
非公式の PPA からインストールしました。これにより、前述のバグは解決されましたが、ビデオを録画しようとすると (カメラのハードウェア エンコーダーから H.264 を使用)、ビデオの最初の 1 秒ほどは完璧に録画されますが、その後、フレーム レートが 3 ~ 5 FPS に低下します。
最後に、デスクトップだけの問題ではないことを確認するために、バージョン 18.04 を実行しているラップトップにguvcview
バージョン2.05
をインストールしましたが、再度、ビデオを録画しようとすると (カメラのハードウェア エンコーダーから H.264 を使用)、ビデオの最初の 1 秒ほどは完璧に録画されますが、その後、フレーム レートが 3 ~ 5 FPS に低下します。
一体何が起こっているのでしょうか? これはlibuvc
Logitech C920 との互換性の問題でしょうか? デスクトップには 6 コアの AMD CPU が搭載されており、ラップトップにはクアッドコアの第 3 世代 i7 が搭載されているため、ハードウェアの性能不足の問題ではないことはわかっています。
答え1
それを で動作させる方法がわかりましたguvcview
。
私は見つけたこの郵便受け問題はguvcview
カメラからのストリームを再エンコードすることだと言っていました。CPU 使用率が非常に低かったのに、なぜフレーム レートがひどく低下したのかは私には謎です...
とにかく、修正方法は、guvcview
カメラからの生のストリームを使用するように指示することです。
プログラムに再エンコードするように指示する形式 (または指示しない形式) は、カメラからストリーミングするように指示する形式とはまったく異なることに注意してください。
また、別の話ですが、 の膨大な数の H.264 パラメータを調整する方法がわからないguvcview
か、Logitech C920 のハードウェア H.264 エンコーダがあまり良くないようです。1080p30 クリップを MJPEG で録画し (データは約 60Mb/s)、Windows ボックスの Veags Pro を使用して 10Mb/s H.264 にトランスコードしましたが、結果は、同じく 10Mb/s で H.264 で直接 Web カメラからストリーミングするよりもはるかに優れていました。