2382268_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2382268_ja-JP

2382268_ja-JP

IMX8MPLUS - カメラからのH.264/2656エンコードビデオストリームのビットレート変動

こんにちは、

私はカメラモジュール製品としてNXP i.MX8Mplusを使っています。私は2台のカメラを使っています。1台はUSB接続、もう1台はMIPI-CSI2インターフェース接続です。データパスは次のようになります。

センサ -> MIPI-CSI -> ISP(バイパス、DMAのみ) -> GPU(OSD) -> VPU(白エンコーダー) -> イーサネット上のRTSPストリーム。

エンコードされたビデオストリームのビットレートを4Mbpsに設定しました。パイプラインの設定は次のようになります。

gst-launch-1.0-v \
v4l2src デバイス=/dev/video2 io-mode=dmabuf !\
video/x-raw、format=NV12、width=1920、height=1080、framerate=30/1 !\
vpuenc_hevc ビットレート=4000 gop-size=60 !\
h265parse config-interval=1 !\
fakesink sync=false

問題点:お客様の報告によると、ビットレートは大きく変動し、変動は+/-50%、時にはピークが100%に達することもあります。お客様の期待値の変動は最大20%に制限しなければなりません。

どうすればこれを実現できるのでしょうか?IMX8Mplusで使っているSDKではCBRがサポートされていないのを見ました。私はYocto SDKを使っています。古い『mikeldore』ブランチです:

Repo init -U https://github.com/nxp-imx/imx-manifest.git -b IMX-Linux-mickledore -m imx-6.1.55-2.2.0.xml


お知らせください:

変動幅を20%に抑えることが可能であれば、その方法を教えてください。


よろしくお願いします。

パンカジ


Re: IMX8MPLUS - Bit rate variations for H.264/2656 coded Video stream from Camera

i.MX95はH.264/H.265からV4L2までのエンコーダー定ビットレート制御をサポートしていますが、「定常ビットレート」は完全に固定された瞬時出力ではなくCBRターゲット制御として理解されるべきです。

Re: IMX8MPLUS - Bit rate variations for H.264/2656 coded Video stream from Camera

Yipingさん、ご返信ありがとうございます。今、これらの提案を試しています。もう一つ質問ですが、IMX95についてはどうでしょうか?IMX95のエンコーダは定常ビットレートをサポートしていますか?


よろしくお願いします。

パンカジ


Re: IMX8MPLUS - Bit rate variations for H.264/2656 coded Video stream from Camera

はい、ばらつきを減らすことはできますが、以下の通りです:

  • i.MX8MP VPUで±20%のビットレートを厳密に達成することは保証されません
  • 適切なチューニングを行うことで、±50〜100%→~±20〜40%に現実的にCAN減らせます
  • 真のCBRには以下が必要です。
    • v4l2ベースのエンコーダー(v4l2h264enc / v4l2h265enc)
    • 明示的な速度制御 + QP制約

 

ステップ1 — V4L2エンコーダへのスイッチ(クリティカル)

交換する:

vpuenc_hevc

説明:

v4l2h265enc

ステップ2 — リアルタイムレート制御とCBRモードを有効にする

gst-launch-1.0-v \

v4l2src デバイス=/dev/video2 io-mode=dmabuf !\

video/x-raw、format=NV12、width=1920、height=1080、framerate=30/1 !\

v4l2h265enc extra-controls="encode, \

frame_level_rate_control_enable=1, \

video_bitrate_mode=1, \

video_bitrate=4000000, \

h265_min_qp=20, \

h265_max_qp=30" !\

h265parse config-interval=1 !\

fakesink sync=false


ステップ3 — QP範囲の調整(最も重要)

設定

効果

ワイドQP(例:10-51)

ビットレートの大きな変動

狭いQP(例:20~30)

変動が少なければ品質も低く

非常に狭い(例:24~28)

近CBR挙動

要件:

  • 開始値:QP範囲=20~30
  • それでも20%を超える変動がある場合は、22~28に締め付ける。
  •  

ステップ4 — GOP / Iフレーム制御

あなたの現在の状況:

gop-size=60

問題:

  • Iフレームは大きなスパイク(ビットレートの2~5倍)を引き起こします。

gop-size=30(GOPが短い方が効果的)

緩和:

または(より良い):

  • イントラリフレッシュを有効にする(サポートされている場合)
  • IDRの大幅な急増を避ける

ステップ5 — オプションの平滑化(ネットワークレベル)

エンコーダーの調整後でも、短いバーストノイズが残る場合があります。

次を追加します

  • キュー + rtpjitterbuffer
  • ORソケットバッファシェーピング

これにより、エンコーダーが変動しても、ネットワークビットレートが安定します。

标记 (1)
无评分
版本历史
最后更新:
4 小时之前
更新人: