From 88d5e8d22b9374192345d7746e4fec06456af397 Mon Sep 17 00:00:00 2001 From: rationalsa Date: Thu, 9 Jan 2025 15:33:01 +0000 Subject: [PATCH 1/4] pipelines/jetson: fix libuvch264_1080p60, and add 1440p60 version --- pipeline/jetson/h265_libuvch264_1080p60 | 2 +- pipeline/jetson/h265_libuvch264_1440p60 | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 pipeline/jetson/h265_libuvch264_1440p60 diff --git a/pipeline/jetson/h265_libuvch264_1080p60 b/pipeline/jetson/h265_libuvch264_1080p60 index 9914dd9..8c505a7 100644 --- a/pipeline/jetson/h265_libuvch264_1080p60 +++ b/pipeline/jetson/h265_libuvch264_1080p60 @@ -1,6 +1,6 @@ libuvch264src ! video/x-h264,framerate=60/1 ! queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! nvv4l2decoder ! nvvidconv interpolation-method=5 ! -video/x-raw(memory:NVMM),width=1920,height=1080 ! +video/x-raw,width=1920,height=1080 ! identity name=v_delay signal-handoffs=TRUE ! textoverlay text='' valignment=top halignment=right font-desc="Monospace, 5" name=overlay ! queue ! nvvidconv interpolation-method=5 ! diff --git a/pipeline/jetson/h265_libuvch264_1440p60 b/pipeline/jetson/h265_libuvch264_1440p60 new file mode 100644 index 0000000..bd31d5d --- /dev/null +++ b/pipeline/jetson/h265_libuvch264_1440p60 @@ -0,0 +1,12 @@ +libuvch264src ! video/x-h264,framerate=60/1 ! +queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! nvv4l2decoder ! nvvidconv interpolation-method=5 ! +video/x-raw,width=2560,height=1440 ! +identity name=v_delay signal-handoffs=TRUE ! +textoverlay text='' valignment=top halignment=right font-desc="Monospace, 5" name=overlay ! queue ! +nvvidconv interpolation-method=5 ! +nvv4l2h265enc control-rate=1 qp-range="28,50:0,38:0,50" iframeinterval=60 preset-level=4 maxperf-enable=true EnableTwopassCBR=true insert-sps-pps=true name=venc_bps ! +h265parse config-interval=-1 ! queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mux. +alsasrc device=hw:2 ! identity name=a_delay signal-handoffs=TRUE ! volume volume=1.0 ! +audioconvert ! voaacenc bitrate=128000 ! aacparse ! queue max-size-time=10000000000 max-size-buffers=1000 ! mux. +mpegtsmux name=mux ! +appsink name=appsink From 7be460e7710cac8f7fd91df529c12b175407d5f4 Mon Sep 17 00:00:00 2001 From: rationalsa Date: Thu, 9 Jan 2025 15:37:50 +0000 Subject: [PATCH 2/4] pipelines: add libuvch264_4k_2160p30 on both platforms --- pipeline/jetson/h265_libuvch264_4k_2160p30 | 11 +++++++++++ pipeline/rk3588/h265_libuvch264_4k_2160p30 | 10 ++++++++++ 2 files changed, 21 insertions(+) create mode 100644 pipeline/jetson/h265_libuvch264_4k_2160p30 create mode 100644 pipeline/rk3588/h265_libuvch264_4k_2160p30 diff --git a/pipeline/jetson/h265_libuvch264_4k_2160p30 b/pipeline/jetson/h265_libuvch264_4k_2160p30 new file mode 100644 index 0000000..9cb4d00 --- /dev/null +++ b/pipeline/jetson/h265_libuvch264_4k_2160p30 @@ -0,0 +1,11 @@ +libuvch264src ! video/x-h264,width=3840,height=2160,framerate=30/1 ! +queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! nvv4l2decoder ! nvvidconv interpolation-method=5 ! +identity name=v_delay signal-handoffs=TRUE ! +textoverlay text='' valignment=top halignment=right font-desc="Monospace, 5" name=overlay ! queue ! +nvvidconv interpolation-method=5 ! +nvv4l2h265enc control-rate=1 qp-range="28,50:0,38:0,50" iframeinterval=60 preset-level=4 maxperf-enable=true EnableTwopassCBR=true insert-sps-pps=true name=venc_bps ! +h265parse config-interval=-1 ! queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mux. +alsasrc device=hw:2 ! identity name=a_delay signal-handoffs=TRUE ! volume volume=1.0 ! +audioconvert ! voaacenc bitrate=128000 ! aacparse ! queue max-size-time=10000000000 max-size-buffers=1000 ! mux. +mpegtsmux name=mux ! +appsink name=appsink diff --git a/pipeline/rk3588/h265_libuvch264_4k_2160p30 b/pipeline/rk3588/h265_libuvch264_4k_2160p30 new file mode 100644 index 0000000..f3e39f1 --- /dev/null +++ b/pipeline/rk3588/h265_libuvch264_4k_2160p30 @@ -0,0 +1,10 @@ +libuvch264src index=0 ! video/x-h264,width=3840,height=2160,framerate=30/1 ! +queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=3 ! +identity name=v_delay signal-handoffs=TRUE ! +textoverlay text='' valignment=top halignment=right font-desc="Monospace, 5" name=overlay ! queue ! +mpph265enc zero-copy-pkt=0 qp-max=51 gop=60 name=venc_bps ! +h265parse config-interval=-1 ! queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mux. +alsasrc device=hw:5 ! identity name=a_delay signal-handoffs=TRUE ! volume volume=1.0 ! +audioconvert ! voaacenc bitrate=128000 ! aacparse ! queue max-size-time=10000000000 max-size-buffers=1000 ! mux. +mpegtsmux name=mux ! +appsink name=appsink From c8fa3a26e288518fb42fdf59b48c91a582f0d070 Mon Sep 17 00:00:00 2001 From: rationalsa Date: Thu, 9 Jan 2025 15:40:02 +0000 Subject: [PATCH 3/4] pipelines/rk3588: add libuvch264_1440p60 pipeline --- pipeline/rk3588/h265_libuvch264_1440p60 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 pipeline/rk3588/h265_libuvch264_1440p60 diff --git a/pipeline/rk3588/h265_libuvch264_1440p60 b/pipeline/rk3588/h265_libuvch264_1440p60 new file mode 100644 index 0000000..18149e6 --- /dev/null +++ b/pipeline/rk3588/h265_libuvch264_1440p60 @@ -0,0 +1,10 @@ +libuvch264src index=0 ! video/x-h264,framerate=60/1 ! +queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec width=2560 height=1440 format=3 ! +identity name=v_delay signal-handoffs=TRUE ! +textoverlay text='' valignment=top halignment=right font-desc="Monospace, 5" name=overlay ! queue ! +mpph265enc zero-copy-pkt=0 qp-max=51 gop=60 name=venc_bps ! +h265parse config-interval=-1 ! queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mux. +alsasrc device=hw:5 ! identity name=a_delay signal-handoffs=TRUE ! volume volume=1.0 ! +audioconvert ! voaacenc bitrate=128000 ! aacparse ! queue max-size-time=10000000000 max-size-buffers=1000 ! mux. +mpegtsmux name=mux ! +appsink name=appsink From 94ca129a56afefccfaeff5ec4bd1832ae5d0b700 Mon Sep 17 00:00:00 2001 From: rationalsa Date: Sat, 11 Jan 2025 13:38:11 +0000 Subject: [PATCH 4/4] pipelines/rk3588/libuvch264*: change decoder format to RGBA for better performance --- pipeline/rk3588/h265_libuvch264 | 2 +- pipeline/rk3588/h265_libuvch264_1080p | 2 +- pipeline/rk3588/h265_libuvch264_1080p25 | 2 +- pipeline/rk3588/h265_libuvch264_1080p30 | 2 +- pipeline/rk3588/h265_libuvch264_1080p60 | 2 +- pipeline/rk3588/h265_libuvch264_1440p60 | 2 +- pipeline/rk3588/h265_libuvch264_4k_2160p30 | 2 +- pipeline/rk3588/h265_libuvch264_720p | 2 +- pipeline/rk3588/h265_libuvch264_720p25 | 2 +- pipeline/rk3588/h265_libuvch264_720p30 | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/pipeline/rk3588/h265_libuvch264 b/pipeline/rk3588/h265_libuvch264 index f4c5020..d397c70 100644 --- a/pipeline/rk3588/h265_libuvch264 +++ b/pipeline/rk3588/h265_libuvch264 @@ -1,5 +1,5 @@ libuvch264src index=0 ! -queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=3 ! +queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=11 ! identity name=v_delay signal-handoffs=TRUE ! textoverlay text='' valignment=top halignment=right font-desc="Monospace, 5" name=overlay ! queue ! mpph265enc zero-copy-pkt=0 qp-max=51 gop=60 name=venc_bps ! diff --git a/pipeline/rk3588/h265_libuvch264_1080p b/pipeline/rk3588/h265_libuvch264_1080p index dcff0a5..ed13f80 100644 --- a/pipeline/rk3588/h265_libuvch264_1080p +++ b/pipeline/rk3588/h265_libuvch264_1080p @@ -1,5 +1,5 @@ libuvch264src index=0 ! video/x-h264,width=1920,height=1080 ! -queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=3 ! +queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=11 ! identity name=v_delay signal-handoffs=TRUE ! textoverlay text='' valignment=top halignment=right font-desc="Monospace, 5" name=overlay ! queue ! mpph265enc zero-copy-pkt=0 qp-max=51 gop=60 name=venc_bps ! diff --git a/pipeline/rk3588/h265_libuvch264_1080p25 b/pipeline/rk3588/h265_libuvch264_1080p25 index df52ee8..446a949 100644 --- a/pipeline/rk3588/h265_libuvch264_1080p25 +++ b/pipeline/rk3588/h265_libuvch264_1080p25 @@ -1,5 +1,5 @@ libuvch264src index=0 ! video/x-h264,width=1920,height=1080,framerate=25/1 ! -queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=3 ! +queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=11 ! identity name=v_delay signal-handoffs=TRUE ! textoverlay text='' valignment=top halignment=right font-desc="Monospace, 5" name=overlay ! queue ! mpph265enc zero-copy-pkt=0 qp-max=51 gop=50 name=venc_bps ! diff --git a/pipeline/rk3588/h265_libuvch264_1080p30 b/pipeline/rk3588/h265_libuvch264_1080p30 index 7eb5564..750be67 100644 --- a/pipeline/rk3588/h265_libuvch264_1080p30 +++ b/pipeline/rk3588/h265_libuvch264_1080p30 @@ -1,5 +1,5 @@ libuvch264src index=0 ! video/x-h264,width=1920,height=1080,framerate=30/1 ! -queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=3 ! +queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=11 ! identity name=v_delay signal-handoffs=TRUE ! textoverlay text='' valignment=top halignment=right font-desc="Monospace, 5" name=overlay ! queue ! mpph265enc zero-copy-pkt=0 qp-max=51 gop=60 name=venc_bps ! diff --git a/pipeline/rk3588/h265_libuvch264_1080p60 b/pipeline/rk3588/h265_libuvch264_1080p60 index 8b21c5f..3b1e27b 100644 --- a/pipeline/rk3588/h265_libuvch264_1080p60 +++ b/pipeline/rk3588/h265_libuvch264_1080p60 @@ -1,5 +1,5 @@ libuvch264src index=0 ! video/x-h264,framerate=60/1 ! -queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec width=1920 height=1080 format=3 ! +queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec width=1920 height=1080 format=11 ! identity name=v_delay signal-handoffs=TRUE ! textoverlay text='' valignment=top halignment=right font-desc="Monospace, 5" name=overlay ! queue ! mpph265enc zero-copy-pkt=0 qp-max=51 gop=60 name=venc_bps ! diff --git a/pipeline/rk3588/h265_libuvch264_1440p60 b/pipeline/rk3588/h265_libuvch264_1440p60 index 18149e6..274ff75 100644 --- a/pipeline/rk3588/h265_libuvch264_1440p60 +++ b/pipeline/rk3588/h265_libuvch264_1440p60 @@ -1,5 +1,5 @@ libuvch264src index=0 ! video/x-h264,framerate=60/1 ! -queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec width=2560 height=1440 format=3 ! +queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec width=2560 height=1440 format=11 ! identity name=v_delay signal-handoffs=TRUE ! textoverlay text='' valignment=top halignment=right font-desc="Monospace, 5" name=overlay ! queue ! mpph265enc zero-copy-pkt=0 qp-max=51 gop=60 name=venc_bps ! diff --git a/pipeline/rk3588/h265_libuvch264_4k_2160p30 b/pipeline/rk3588/h265_libuvch264_4k_2160p30 index f3e39f1..7cfe1e8 100644 --- a/pipeline/rk3588/h265_libuvch264_4k_2160p30 +++ b/pipeline/rk3588/h265_libuvch264_4k_2160p30 @@ -1,5 +1,5 @@ libuvch264src index=0 ! video/x-h264,width=3840,height=2160,framerate=30/1 ! -queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=3 ! +queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=11 ! identity name=v_delay signal-handoffs=TRUE ! textoverlay text='' valignment=top halignment=right font-desc="Monospace, 5" name=overlay ! queue ! mpph265enc zero-copy-pkt=0 qp-max=51 gop=60 name=venc_bps ! diff --git a/pipeline/rk3588/h265_libuvch264_720p b/pipeline/rk3588/h265_libuvch264_720p index 8c6da59..3e916f3 100644 --- a/pipeline/rk3588/h265_libuvch264_720p +++ b/pipeline/rk3588/h265_libuvch264_720p @@ -1,5 +1,5 @@ libuvch264src index=0 ! video/x-h264,width=1280,height=720 ! -queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=3 ! +queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=11 ! identity name=v_delay signal-handoffs=TRUE ! textoverlay text='' valignment=top halignment=right font-desc="Monospace, 5" name=overlay ! queue ! mpph265enc zero-copy-pkt=0 qp-max=51 gop=60 name=venc_bps ! diff --git a/pipeline/rk3588/h265_libuvch264_720p25 b/pipeline/rk3588/h265_libuvch264_720p25 index fb47753..5af6638 100644 --- a/pipeline/rk3588/h265_libuvch264_720p25 +++ b/pipeline/rk3588/h265_libuvch264_720p25 @@ -1,5 +1,5 @@ libuvch264src index=0 ! video/x-h264,width=1280,height=720,framerate=25/1 ! -queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=3 ! +queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=11 ! identity name=v_delay signal-handoffs=TRUE ! textoverlay text='' valignment=top halignment=right font-desc="Monospace, 5" name=overlay ! queue ! mpph265enc zero-copy-pkt=0 qp-max=51 gop=50 name=venc_bps ! diff --git a/pipeline/rk3588/h265_libuvch264_720p30 b/pipeline/rk3588/h265_libuvch264_720p30 index 0fd0514..4b0a408 100644 --- a/pipeline/rk3588/h265_libuvch264_720p30 +++ b/pipeline/rk3588/h265_libuvch264_720p30 @@ -1,5 +1,5 @@ libuvch264src index=0 ! video/x-h264,width=1280,height=720,framerate=30/1 ! -queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=3 ! +queue max-size-time=10000000000 max-size-buffers=1000 max-size-bytes=41943040 ! mppvideodec format=11 ! identity name=v_delay signal-handoffs=TRUE ! textoverlay text='' valignment=top halignment=right font-desc="Monospace, 5" name=overlay ! queue ! mpph265enc zero-copy-pkt=0 qp-max=51 gop=60 name=venc_bps !