Linux でウェブカメラと VLC を使用して高解像度でストリーミングすると、画質が悪くなり、CPU 使用率が高くなります。

Linux でウェブカメラと VLC を使用して高解像度でストリーミングすると、画質が悪くなり、CPU 使用率が高くなります。

ウェブカメラでストリーミングを試みていますが、今のところ結果は良くありません。320x240 でストリーミングするとすべて良好に見えますが、より高い解像度を選択するとすぐに画質が悪くなり、CPU 使用率が急上昇します。

私は、HD 対応と謳われ、ネイティブ解像度が 1280x720 の Logitech C525 カメラを使用しています。

1280x720 がネイティブ解像度であるなら、なぜ品質がこんなにひどいのか不思議です。

ストリーミングには VLC を使用しており、次の vlm 構成ファイルを使用しています。

new camNumber2 broadcast enabled
setup camNumber2 input v4l2:///dev/video2:width:320:heigth:240
setup camNumber2 output #transcode{vcodec=mpeg4,acodec=none,vb=1000}:standard{access=http,mux=ogg,dst=0.0.0.0:8080}
control camNumber2 play

先ほど言ったように、解像度をこれ以上上げると、画質が落ちて大きなブロック状の乱雑な画像になってしまいます。

ビデオ入力設定に何か問題があるのではないかと思います。VLC は、要求された解像度で画像を取得するのではなく、要求された解像度に画像を拡大しようとしているだけだと思います。

答え1

いくつかの意見と提案があります。あなたのコマンドに必ずしも問題があるとは思いませんが、解決策を見つけてみましょう。

  1. mpeg4を使っているようですが、以下をご覧になることをお勧めします。これサポートされている VLC コーデックのリスト。h265 または mp4v を試すことをお勧めします。よく調べてみると、リストに mpeg4 がないので、それが問題である可能性があります。
  2. 使用している CPU は何ですか? システムが 1280x720 をストリーミングするのに十分な性能を持っていない可能性があります。使用しているコンピューターが何であるかは記載されていませんが、Raspberry Pi などでこれを試みていないことを確認したいだけです。
  3. GUI を使用して動作させてみます。GUI が最終的な解決策ではないことは承知していますが、GUI で動作させることができれば、それが可能であることがわかり、CLI 引数を続行できます。
  4. 別の OS とコンピューターで試してください。Windows と Linux で動作させることができますか? どちらかの方がうまく動作しますか? 繰り返しますが、これにより、問題がどこにあるのかに関するいくつかの変数を排除するのに役立ちます。
  5. 可能性は低いですが、USB バスが飽和状態になっているか、ポートが USB 1 のみであるか、同じバス上にすべての帯域幅を占有している外付け HDD がある可能性があります。

上記のオプションのいくつかを試して、解決方法がわかったら、どの解決策が有効だったかを投稿してください。それでも問題が解決しない場合は、発見したことを投稿してください。

関連情報