Files
nvgstapps/nvgstapps_src/nvgst_sample_apps/nvgstcapture-1.0/nvgstcapture-1.0_README.txt
svcmobrel-release f851378099 Updating prebuilts and/or headers
9b47978b5f3b6672dd4d6ad5ebe80c9b945a7eba - nvgstapps_src/nvgst_sample_apps/nvgstplayer-1.0/nvgst_x11_common.c
33a285339d714d5546cddb92a710e418853470aa - nvgstapps_src/nvgst_sample_apps/nvgstplayer-1.0/nvgst_asound_common.c
6bafa48f47ad43d33ee446cf86f2b1da134f7868 - nvgstapps_src/nvgst_sample_apps/nvgstplayer-1.0/nvgst_asound_common.h
599544266262509705c60ca9e8d2c8ade3bdfc30 - nvgstapps_src/nvgst_sample_apps/nvgstplayer-1.0/nvgstplayer.c
aaafd7fd4c0214a52bf73dd2a0ba0af08c675b85 - nvgstapps_src/nvgst_sample_apps/nvgstplayer-1.0/nvgst_x11_common.h
c028fa403772288daf002520356e8e18cce5cb06 - nvgstapps_src/nvgst_sample_apps/nvgstplayer-1.0/nvgstplayer.h
a5bdf6935960973677a005d9d28a04c023f5ec6f - nvgstapps_src/nvgst_sample_apps/nvgstcapture-1.0/nvgst_x11_common.c
39d7bace9939d38f221edd9f87dc8e8dab2c2365 - nvgstapps_src/nvgst_sample_apps/nvgstcapture-1.0/nvgstcapture.c
87556b6e7da0ec3865546f10b7a58959cd8c6bfc - nvgstapps_src/nvgst_sample_apps/nvgstcapture-1.0/nvgst_x11_common.h
8531d3b2fb38ae84efeaadf6cc177e1e2b07a90b - nvgstapps_src/nvgst_sample_apps/nvgstcapture-1.0/nvgstcapture.h

Change-Id: I3f530cebe9621b158ebd81afd203e6225008c876
2023-08-03 21:10:45 -07:00

292 lines
13 KiB
Plaintext

/*
* Copyright (c) 2014-2021, NVIDIA CORPORATION. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
=> PRE-REQUISITES :
1. You must install GStreamer-1.0 on the target board using apt-get, as follows:
sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
2. To check the running gstreamer version, use the following command before you start using the nvgstcapture application:
gst-inspect-1.0 --version
3. Execute the following commands on the target board's Ubuntu command line:
export DISPLAY=:0
=> NvGstCapture Usage:
* The nvgstcapture application can capture video data and encapsulate encoded data in a container file.
* The nvgstcapture application supports both command-line and runtime options.
=> NvGstCapture Application Options:
Usage: ./nvgstcapture-1.0 --help
* Command-line options for NvArgusCamera:
--prev-res Preview width & height.Range: 2 to 12 (5632x4224) e.g., --prev-res=3
--cus-prev-res Custom Preview width & height e.g., --cus-prev-res=1920x1080
--image-res Image width & height. Range: 2 to 12 (5632x4224) e.g., --image-res=3
--video-res Video width & height. Range: 2 to 9 (3896x2192) e.g., --video-res=3
--camsrc Camera Source to use (0=v4l2, 1=csi[default], 2=videotest, 3=eglstream)
-m, --mode Capture mode value (1=still 2=video)
-v, --video-enc Video encoder type (0=h264[HW] 1=vp8[HW] 2=h265[HW] 3=vp9[HW])
-p, --hw-enc-path Frame Work type (1=V4L2[Default])
-b, --enc-bitrate Video encoding Bit-rate(in bytes) e.g., --enc-bitrate=4000000
--enc-controlrate Video encoding Bit-rate control method 0 = Disable, 1 = variable(Default), 2 = constant e.g., --enc-controlrate=1
--enc-EnableTwopassCBR Enable two pass CBR while encoding 0 = Disable, 1 = Enable e.g., --enc-EnableTwopassCBR=1
--enc-profile Video encoder profile For H.264: 0=Baseline, 1=Main, 2=High
-J, --image-enc Image encoder type (0=jpeg_SW[jpegenc] 1=jpeg_HW[nvjpegenc])
-k, --file-type Container file type (0=mp4 1=3gp 2=mkv)
--file-name Captured file name. nvcamtest is used by default
--color-format Color format to use (0=I420,1=NV12[For CSI only and default for CSI], 2=YUY2[For V4L2 only, default for v4l2])
--enable-meta Enable Sensor MetaData reporting
--app-profile Enable KPI profiling
--kpi-numbers Enable KPI measurement
--cap-dev-node Video capture device node (0=/dev/video0[default], 1=/dev/video1, 2=/dev/video2) e.g., --cap-dev-node=0
--svs [For USB] (=) chain for video Preview. [For CSI only] use "nveglglessink"
--eglConfig EGL window Coordinates (x_pos y_pos) in that order e.g., --eglConfig="50 100"
--orientation Camera sensor orientation value
-w, --whitebalance Capture whitebalance value
--timeout Capture timeout value
--saturation Camera Saturation value
--sensor-id Camera Sensor ID value
--exposuretimerange Property to adjust exposure time range in nanoseconds e.g., --exposuretimerange="34000 358733000"
--gainrange Property to adjust gain range e.g., --gainrange="1 16"
--ispdigitalgainrange Property to adjust digital gain range e.g., --ispdigitalgainrange="1 8"
--aelock Enable AE Lock, default is disabled
--awblock Enable AWB Lock, default is disabled
--exposurecompensation Property to adjust exposure compensation e.g., --exposurecompensation=0.5
--aeantibanding Property to set the auto exposure antibanding mode e.g., --aeantibanding=2
--tnr-mode Property to select temporal noise reduction mode e.g., --tnr-mode=2
--tnr-strength Property to adjust temporal noise reduction strength e.g., --tnr-strength=0.5
--ee-mode Property to select edge enhancement mode e.g., --ee-mode=2
--ee-strength Property to adjust edge enhancement strength e.g., --ee-strength=0.5
--overlayConfig Overlay Configuration Options index and coordinates in (index, x_pos, y_pos, width, height) order e.g. --overlayConfig="0, 0, 0, 1280, 720"
-A, --automate Run application in automation mode
-S, --start-time Start capture after specified time in seconds. Default = 5 sec (use with --automate or -A only)
-Q, --quit-after Quit application once automation is done after specified time in seconds. Default = 0 sec (use with --automate or -A only)
-C, --count Number of iterations of automation testcase. Default = 1 (use with --automate or -A only)
-N, --num-sensors Number of sensors (use with --automate or -A only)
--capture-gap Number of milliseconds between successive image/video capture. Default = 250 msec (use with --automate and --capture-auto only)
--capture-time Capture video for specified time in seconds. Default = 10 sec (use with --automate and --capture-auto only)
--toggle-mode Toggle between still and video capture modes for count number of times (use with --automate or -A only)
--capture-auto Do image/video capture in automation mode for count number of times(use with --automate or -A only)
--toggle-sensor Toggle between num_sensors if given otherwise between sensor-id 0 and 1 (use with --automate or -A only)
--enum-wb Enumerate all white-balance modes for count number of times (use with --automate or -A only)
--enum-st Enumerate saturation value through 0 to 2 by a step of 0.1 for count number of times (use with --automate or -A only)
Supported resolutions in case of NvArgusCamera
(2) : 640x480
(3) : 1280x720
(4) : 1920x1080
(5) : 2104x1560
(6) : 2592x1944
(7) : 2616x1472
(8) : 3840x2160
(9) : 3896x2192
(10): 4208x3120
(11): 5632x3168
(12): 5632x4224
* Runtime options for NvArgusCamera:
Help : 'h'
Quit : 'q'
Set Capture Mode:
mo:<val>
(1): image
(2): video
Get Capture Mode:
gmo
Set sensor orientation:
so:<val>
(0): none
(1): Rotate counter-clockwise 90 degrees
(2): Rotate 180 degrees
(3): Rotate clockwise 90 degrees
Get sensor orientation:
gso
Set Whitebalance Mode:
wb:<val>
(0): off
(1): auto
(2): incandescent
(3): fluorescent
(4): warm-fluorescent
(5): daylight
(6): cloudy-daylight
(7): twilight
(8): shade
(9): manual
Get Whitebalance Mode:
gwb
Set Saturation (0 to 2):
st:<val> e.g., st:1.25
Get Saturation:
gst
Set Exposure Compensation (-2 to 2):
ec:<val> e.g., ec:-2
Get Exposure Compensation:
gec
Set Auto Whitebalance Lock:
awbl:<val> e.g., awbl:0
Get Auto Whitebalance Lock:
awbl
Set Auto Exposure Lock:
ael:<val> e.g., ael:0
Get Auto Exposure Lock:
gael
Set TNR Mode:
tnrm:<val> e.g., tnrm:1
(0): DENOISE_MODE_OFF
(1): DENOISE_MODE_FAST
(2): DENOISE_MODE_HIGH_QUALITY
Get TNR Mode:
gtnrm
Set TNR Strength (-1 to 1):
tnrs:<val> e.g., tnrs:0.5
Get TNR Strength:
gtnrs
Set EE Mode:
eem:<val> e.g., eem:1
(0): EDGE_ENHANCE_MODE_OFF
(1): EDGE_ENHANCE_MODE_FAST
(2): EDGE_ENHANCE_MODE_HIGH_QUALITY
Get EE Mode:
geem
Set EE Strength (-1 to 1):
ees:<val> e.g., ees:0.5
Get EE Strength:
gees
Set Auto Exposure Anti-Banding (0 to 3):
aeab:<val> e.g., aeab:2
(0): AE_ANTIBANDING_MODE_OFF
(1): AE_ANTIBANDING_MODE_AUTO
(2): AE_ANTIBANDING_MODE_50HZ
(3): AE_ANTIBANDING_MODE_60HZ
Get Auto Exposure Anti-Banding:
gaeab
Set Gain Range:
gr:<val><space><val> e.g., gr:1 16
Get Gain Range:
ggr
Set Exposure Time Range:
etr:<val><space><val> e.g., etr:34000 35000
Get Exposure Time Range:
getr
Set ISP Digital Gain Range:
dgr:<val><space><val> e.g., dgr:2 152
Get ISP Digital Gain Range:
gdgr
Capture: enter 'j' OR
followed by a timer (e.g., jx5000, capture after 5 seconds) OR
followed by multishot count (e.g., j:6, capture 6 images)
timer/multihot values are optional, capture defaults to single shot with timer=0s
Start Recording : enter '1'
Stop Recording : enter '0'
Video snapshot : enter '2' (While recording video)
Get Preview Resolution:
gpcr
Get Image Capture Resolution:
gicr
Get Video Capture Resolution:
gvcr
Runtime encoder configuration options:
Set Encoding Bit-rate(in bytes):
br:<val> e.g., br:4000000
Get Encoding Bit-rate(in bytes):
gbr
Set Encoding Profile(only for H.264):
ep:<val> e.g., ep:1
(0): Baseline
(1): Main
(2): High
Get Encoding Profile(only for H.264):
gep
Force IDR Frame on video Encoder(only for H.264):
Enter 'f'
Runtime encoder configuration options:
Set Encoding Bit-rate(in bytes):
br:<val> e.g., br:4000000
Get Encoding Bit-rate(in bytes):
gbr
Set Encoding Profile(only for H.264):
ep:<val> e.g., ep:1
(0): Baseline
(1): Main
(2): High
Get Encoding Profile(only for H.264):
gep
Force IDR Frame on video Encoder(only for H.264):
Enter 'f'
NOTES:
1. The nvgstcapture application generates image and video output files in the same directory as the application itself.
2. Filenames for image and video content are in the formats "nvcamtest_<pid>_s<sensor-id>_<capture-count>.jpg" and
"nvcamtest_<pid>_s<sensor-id>_<capture-count>.mp4" respectively.
where,
<pid> is process id,
<sensor-id> is camera sensor id
<capture-count> is a counter starting from 0 every time you run the application.
Rename or move files between runs to avoid overwriting results you want to save.
3. The nvgstcapture application default supports native capture (video only) mode.
4. Advanced features, like setting zoom, brightness, exposure, and whitebalance, are not supported with USB-Camera.
5. The nvgstcapture application sets nvjpegenc[HW] by default for Image encoding.
6. User can specify a sensor supported custom preview resolution. A CSI camera will output at the custom resolution
but visible preview will be capped at 1080p max. Command:
./nvgstcapture-1.0 --prev-res=2 --cus-prev-res=1280x960
7. nvgstcapture-1.0 supports automation. Details of the commands can be found in help. Here are example command lines
for a few use cases:
i) Capture 50 images with 1080p resolutions:
./nvgstcapture-1.0 -A -C 50 --capture-auto --image-res=4
ii) Capture 5 720p videos, each of length 60 seconds, with a gap of 2 seconds between recordings
and quit application 10 seconds after that:
./nvgstcapture-1.0 -A -C 5 --capture-auto --video-res=3 --capture-time=60 --mode=2 --capture-gap=2000 --quit-after=10
8. nvhdmioverlaysink and nvoverlaysnk has been deprecated.
9. For a USB camera use "--cap-dev-node" command line option along with "--camsrc=0" to specify the capture node.
10. Hardware encoder support depends on the Jetson platform. Please refer to the following section in Accelerated GStreamer User Guide for supported codecs for your platform:
Gstreamer-1.0 Installation and Setup > Gstreamer-1.0 Plugin Reference > gst-omx video encoders
11. The nvgstcapture application uses gst-v4l2 encoders by default.