From 920e0a98714c65053890c87ba152786988c5eded Mon Sep 17 00:00:00 2001 From: nicoboy Date: Tue, 9 Jun 2026 18:18:40 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20pipeline=20hw=20=E2=80=94=20supprime=20v?= =?UTF-8?q?ideo-bitrate/extra-controls=20invalides=20sur=20v4l2h264enc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- CLAUDE.md | 7 ++++--- camera_server.py | 4 +--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index f07d79c..1c3c047 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -17,6 +17,7 @@ - omxh264enc : non disponible sur Bookworm 64-bit (OpenMAX supprimé) - Transport : RTP H264 pt=96 UDP - Flask : API légère port 5000 (health + settings uniquement, pas de MJPEG local) +- h264parse requis : `sudo apt install gstreamer1.0-plugins-bad -y` ## Réseau - Dev Freebox : 192.168.1.132 → Jetson 192.168.1.84:5600 @@ -26,12 +27,12 @@ ### Hardware (v4l2h264enc) — défaut gst-launch-1.0 libcamerasrc ! \ - video/x-raw,width=640,height=480,format=NV12,framerate=15/1 ! \ + video/x-raw,width=1280,height=720,format=NV12,framerate=15/1 ! \ v4l2convert ! \ - v4l2h264enc video-bitrate=1000000 extra-controls="controls,repeat_sequence_header=1" ! \ + v4l2h264enc ! \ video/x-h264,level=(string)3.2 ! \ h264parse ! \ - rtph264pay config-interval=1 pt=96 ! \ + rtph264pay config-interval=1 pt=96 ! queue ! \ udpsink host=192.168.1.84 port=5600 ### Software (x264enc) — fallback diff --git a/camera_server.py b/camera_server.py index 8bf737b..0917364 100644 --- a/camera_server.py +++ b/camera_server.py @@ -117,13 +117,11 @@ def _build_pipeline(cfg: dict, encoder: str) -> str: sink = f"rtph264pay config-interval=1 pt=96 ! queue ! udpsink host={host} port={port}" if encoder == "hw": - bitrate_bps = cfg["bitrate_kbps"] * 1000 return ( f"libcamerasrc ! " f"video/x-raw,width={w},height={h},format=NV12,framerate={fps}/1 ! " f"v4l2convert ! " - f"v4l2h264enc video-bitrate={bitrate_bps} " - f'extra-controls="controls,repeat_sequence_header=1" ! ' + f"v4l2h264enc ! " f"video/x-h264,level=(string){level} ! " f"h264parse ! " f"{sink}"