Accelerated GStreamer User Guide Release 24.2.1
User Manual:
Open the PDF directly: View PDF .
Page Count: 40
Download | |
Open PDF In Browser | View PDF |
ACCELERATED GSTREAMER USER GUIDE DA_07303-3.2 | January 12, 2017 Advance Information | Subject to Change Release 24.2.1 DOCUMENT CHANGE HISTORY DA_07303 Version Date Authors Description of Change v1.0 01 May 2015 mzensius Initial release. v1.1 30 Jun 2015 mzensius Added rotation and scaling commands, other new content. v1.2 03 Nov 2015 emilyh Changes for 23.1 v1.3 19 Nov 2015 mzensius Added note for display export. v1.4 17 Dec 2015 hlang Updated gst-nvivafilter sample pipelines. Updated steps to build gstreamer manually. v1.5 08 Jan 2016 kstone Added nvvidconv interpolation method. v1.5 29 Jan 2016 hlang Additional syntax changes for 23.2 release v2.0 11 May 2016 mzensius Minor change to nvgstcapture options. v3.0 11 Aug 2016 mzensius Versioned for 24.2 release. Gstreamer-0.10 content removed. Also Adds Video Cropping example, interpolation methods for video scaling, EGLStream producer example, and an EGL Image transform example. v3.1 06 Oct 2016 mzensius Minor updates to video encoder features. v3.1.1 21 Nov 2016 mzensius Changed title of document. V3.2 12 Jan 2017 mzensius Adds H.264/H.265 encoder documentation. Also corrects the Gstreamer-1.0 installation procedure. Accelerated GStreamer User Guide DA_07303 | ii TABLE OF CONTENTS Accelerated GStreamer User Guide ...................................................1 Gstreamer-1.0 Installation and Setup ........................................................ 2 Decode Examples ............................................................................... 3 Audio Decode Examples Using gst-launch-1.0............................................ 4 Video Decode Examples Using gst-launch-1.0............................................ 4 Encode Examples................................................................................ 5 Audio Encode Examples Using gst-launch-1.0 ............................................ 5 Video Encode Examples Using gst-launch-1.0 ............................................ 6 Supported H.264/H.265 Encoder Features with Gstreamer-1.0 ....................... 7 Camera Capture with Gstreamer-1.0 ....................................................... 10 Video Playback with Gstreamer-1.0 ......................................................... 11 Video Format Conversion with Gstreamer-1.0 ............................................. 11 raw-yuv Input Formats ..................................................................... 11 raw-gray Input Formats .................................................................... 12 raw-yuv Output Formats ................................................................... 12 raw-gray Output Formats .................................................................. 12 Video Scaling with Gstreamer-1.0 ........................................................... 12 raw-yuv Input Formats ..................................................................... 13 raw-gray Input Formats .................................................................... 13 raw-yuv Output Formats ................................................................... 13 raw-gray Output Formats .................................................................. 13 NVIDIA Input and Output Formats ........................................................ 14 Video Cropping with Gstreamer-1.0 ......................................................... 14 Video Transcode with Gstreamer-1.0 ....................................................... 15 CUDA Video Post-Processing with GStreamer-1.0 ......................................... 17 gst-videocuda ................................................................................ 17 gst-nvivafilter ................................................................................ 17 Video Rotation with Gstreamer-1.0 ......................................................... 18 Interpolation Methods for Video Scaling .................................................... 19 EGLStream Producer Example................................................................ 20 EGL Image Transform Example............................................................... 20 GStreamer Build Instructions ......................................................... 21 Nvgstcapture-1.0 Option Reference ................................................ 24 Nvgstcapture Application Options ........................................................... 24 CSI Camera Supported Resolutions .......................................................... 26 CSI Camera Runtime Commands ............................................................. 27 Accelerated GStreamer User Guide DA_07303 | iii USB Camera Runtime Commands ............................................................ 29 Notes ............................................................................................. 30 Video Encoder Features ............................................................... 32 Supported Cameras ..................................................................... 33 CSI Cameras..................................................................................... 33 USB 2.0 Cameras ............................................................................... 33 Industrial Camera Details ..................................................................... 34 Accelerated GStreamer User Guide DA_07303 | iv ACCELERATED GSTREAMER USER GUIDE This document is a user guide for the Gstreamer version 1.0 based accelerated solution included in NVIDIA® Tegra® Linux Driver Package for Ubuntu Linux 16.04 on platforms including Tegra X1 devices. This document contains the following sections: Gstreamer-1.0 Installation and Setup Decode Examples Encode Examples Camera Capture with Gstreamer-1.0 Video Playback with Gstreamer-1.0 Video Format Conversion with Gstreamer-1.0 Video Scaling with Gstreamer-1.0 Video Cropping with Gstreamer-1.0 Video Transcode with Gstreamer-1.0 CUDA Video Post-Processing with Gstreamer-1.0 Video Rotation with Gstreamer-1.0 Interpolation Methods for Video Scaling EGLStream Producer Example EGL Image Transform Example Gstreamer Build Instructions Nvgstcapture-1.0 Option Reference Video Encoder Features Supported USB Camera Accelerated GStreamer User Guide DA_07303| 1 Accelerated GStreamer User Guide GSTREAMER-1.0 INSTALLATION AND SETUP This section describes how to install and configure Gstreamer. To install Gstreamer-1.0 Install Gstreamer-1.0 on the platform with the following commands: sudo add-apt-repository universe sudo add-apt-repository multiverse sudo apt-get update sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev To check the Gstreamer-1.0 version Check the Gstreamer-1.0 version with the following command: gst-inspect-1.0 –-version Gstreamer version 1.0 includes the following gst-omx video decoders: Video Decoder Description omxh265dec OpenMAX IL H.265 Video Decoder omxh264dec OpenMAX IL H.264 Video Decoder omxmpeg4videodec OpenMAX IL MPEG4 Video Decoder omxvp8dec OpenMAX IL VP8 Video Decoder omxvp9dec OpenMAX IL VP9 video decoder Gstreamer version 1.0 includes the following gst-omx video encoders: Video Encoders Description omxh264enc OpenMAX IL H.264/AVC video encoder omxh265enc OpenMAX IL H.265/AVC video encoder omxvp8enc OpenMAX IL VP8 video encoder Gstreamer version 1.0 includes the following gst-omx video sinks: Video Sink Description nvoverlaysink OpenMAX IL videosink element nvhdmioverlaysink (deprecated) OpenMAX IL HDMI videosink element Accelerated GStreamer User Guide DA_07303 | 2 Accelerated GStreamer User Guide Gstreamer version 1.0 includes the following egl image video sinks: Video Sink Description nveglglessink EGL/GLES videosink element Gstreamer version 1.0 includes the following proprietary NVIDIA plugins: Video Sink Description nvvidconv Video format conversion & scaling nveglstreamsrc Acts as Gstreamer Source Component, accepts EGLStream from EGLStream producer nvvideosink Video Sink Component. Accepts YUV-I420 format and produces EGLStream (RGBA) nvegltransform Video transform element for NVMM to EGLimage (supported with nveglglessink only) Gstreamer version 1.0 includes the following libjpeg based JPEG image video encode/decode plugins: Video Sink Description nvjpegenc JPEG encoder element nvjpegdec JPEG decoder element Note: Execute the following command on the target before starting the video decode pipeline using gst-launch or nvgstplayer. export DISPLAY=:0 Start the X server with xinit &, if it is not already running. DECODE EXAMPLES The examples in this section show how you can perform audio and video decode with Gstreamer. Note: Gstreamer version 0.10 support is deprecated in Linux for Tegra (L4T) Release 24.2. Use of Gstreamer version 1.0 is recommended for development. Accelerated GStreamer User Guide DA_07303 | 3 Accelerated GStreamer User Guide Audio Decode Examples Using gst-launch-1.0 The following examples show how you can perform audio decode using Gstreamer-1.0. AAC Decode (OSS software decode) gst-launch-1.0 filesrc location=! qtdemux name=demux demux.audio_0 ! queue ! avdec_aac ! audioconvert ! alsasink -e AMR-WB Decode (OSS software decode) gst-launch-1.0 filesrc location= ! qtdemux name=demux demux.audio_0 ! queue ! avdec_amrwb ! audioconvert ! alsasink -e AMR-NB Decode (OSS software decode) gst-launch-1.0 filesrc location= ! qtdemux name=demux demux.audio_0 ! queue ! avdec_amrnb ! audioconvert ! alsasink -e MP3 Decode (OSS software decode) gst-launch-1.0 filesrc location= ! mpegaudioparse ! avdec_mp3 ! audioconvert ! alsasink -e Note: To route audio over HDMI, set the alsasink property device to the following: hw:Tegra,3 Video Decode Examples Using gst-launch-1.0 The following examples show how you can perform video decode on Gstreamer-1.0. H.264 Decode (NVIDIA accelerated decode) gst-launch-1.0 filesrc location= ! qtdemux name=demux demux.video_0 ! queue ! h264parse ! omxh264dec ! nveglglessink -e H.265 Decode (NVIDIA accelerated decode) gst-launch-1.0 filesrc location= ! qtdemux name=demux demux.video_0 ! queue ! h265parse ! omxh265dec ! nvoverlaysink -e Note: Decoding H.265 streams requires Gstreamer version 1.4.x or later, including support for h265parse and qtdemux. See Gstreamer Build Instructions in this guide for details. Accelerated GStreamer User Guide DA_07303 | 4 Accelerated GStreamer User Guide VP8 Decode (NVIDIA accelerated decode) gst-launch-1.0 filesrc location= ! qtdemux name=demux demux.video_0 ! queue ! omxvp8dec ! nvoverlaysink -e Note: When you do not use the primary display to render video, use the display-id property of nvoverlaysink. For example, refer to the pipeline below. gst-launch-1.0 filesrc location= ! qtdemux name=demux demux.video_0 ! queue ! omxvp8dec ! nvoverlaysink display-id=1 -e MPEG-4 Decode (NVIDIA accelerated decode) gst-launch-1.0 filesrc location= ! qtdemux name=demux demux.video_0 ! queue ! mpeg4videoparse ! omxmpeg4videodec ! nveglglessink -e Image Decode gst-launch-1.0 filesrc location= ! nvjpegdec ! imagefreeze ! xvimagesink -e ENCODE EXAMPLES The examples in this section show how you can perform audio and video encode with Gstreamer. Audio Encode Examples Using gst-launch-1.0 The following examples show how you can perform audio encode on Gstreamer-1.0. AAC Encode (OSS software encode) gst-launch-1.0 audiotestsrc ! 'audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)2' ! voaacenc ! qtmux ! filesink location=test.mp4 -e AMR-WB Encode (OSS software encode) gst-launch-1.0 audiotestsrc ! 'audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)16000, channels=(int)1' ! voamrwbenc ! qtmux ! filesink location=test.mp4 -e Accelerated GStreamer User Guide DA_07303 | 5 Accelerated GStreamer User Guide Video Encode Examples Using gst-launch-1.0 The following examples show how you can perform video encode with Gstreamer-1.0. H.264 Encode (NVIDIA accelerated encode) gst-launch-1.0 videotestsrc ! 'video/x-raw, format=(string)I420, width=(int)640, height=(int)480' ! omxh264enc ! 'video/x-h264, streamformat=(string)byte-stream' ! h264parse ! qtmux ! filesink location=test.mp4 -e H.265 Encode (NVIDIA accelerated encode) gst-launch-1.0 videotestsrc ! 'video/x-raw, format=(string)I420, width=(int)640, height=(int)480' ! omxh265enc ! filesink location=test.h265 -e VP8 Encode (NVIDIA accelerated encode) gst-launch-1.0 videotestsrc ! 'video/x-raw, format=(string)I420, width=(int)640, height=(int)480' ! omxvp8enc ! qtmux ! filesink location=test.mp4 -e MPEG-4 Encode (OSS software encode) gst-launch-1.0 videotestsrc ! 'video/x-raw, format=(string)I420, width=(int)640, height=(int)480' ! avenc_mpeg4 ! qtmux ! filesink location=test.mp4 -e H.263 Encode (OSS software encode) gst-launch-1.0 videotestsrc ! 'video/x-raw, format=(string)I420, width=(int)704, height=(int)576' ! avenc_h263 ! qtmux ! filesink location=test.mp4 -e Image Encode gst-launch-1.0 videotestsrc num-buffers=1 ! 'video/x-raw, width=(int)640, height=(int)480, format=(string)I420' ! nvjpegenc ! filesink location=test.jpg -e Accelerated GStreamer User Guide DA_07303 | 6 Accelerated GStreamer User Guide Supported H.264/H.265 Encoder Features with Gstreamer-1.0 This section describes example gst-launch-1.0 usage for features supported by the NVIDIA accelerated H.264/H.265 encoder. Note: Display detailed information on omxh264enc or omxh265enc encoder properties with the gst-inspect-1.0 [omxh264enc | omxh265enc] command. Set I-frame interval gst-launch-1.0 videotestsrc num-buffers=200 ! 'video/x-raw, width=(int)1280, height=(int)720, format=(string)I420' ! omxh264enc iframeinterval=100 ! qtmux ! filesink location=test.mp4 -e Set temporal-tradeoff (the rate the encoder should drop frames) gst-launch-1.0 videotestsrc num-buffers=200 ! 'video/x-raw, width=(int)1280, height=(int)720, format=(string)I420' ! omxh264enc temporal-tradeoff=1 ! qtmux ! filesink location=test.mp4 -e Configuring temporal tradeoff causes the encoder to intentionally, periodically, drop input frames. The following modes are supported: Mode Description 0 Disable 1 Drop 1 in 5 frames 2 Drop 1 in 3 frames 3 Drop 1 in 2 frames 4 Drop 2 in 3 frames Set rate control mode gst-launch-1.0 videotestsrc num-buffers=200 ! 'video/x-raw, width=(int)1280, height=(int)720, format=(string)I420' ! omxh264enc control-rate=1 ! qtmux ! filesink location=test.mp4 -e The following modes are supported: Mode Description 0 Disable 1 Variable bit rate 2 Constant bit rate Accelerated GStreamer User Guide DA_07303 | 7 Accelerated GStreamer User Guide 3 Variable bit rate with frame skip. The encoder skips frames as necessary to meet the target bit rate. 4 Constant bit rate with frame skip Set quantization range for I, P and B frame The format for the range is the following: ” : : ” Where , and are each expressed as hyphenated values, as shown in the following example: gst-launch-1.0 videotestsrc num-buffers=200 ! 'video/x-raw, width=(int)1280, height=(int)720, format=(string)I420' ! omxh264enc qprange="10,30:10,35:10,35" ! qtmux ! filesink location=test.mp4 -e The range of B frames does not take effect if the number of B frames is 0. Set hardware preset level gst-launch-1.0 videotestsrc num-buffers=200 ! 'video/x-raw, width=(int)1280, height=(int)720, format=(string)I420' ! omxh264enc quality-level=0 ! qtmux ! filesink location=test.mp4 -e The following modes are supported: Mode Description 0 UltraFastPreset 1 FastPreset Only Integer Pixel (integer-pel) block motion is estimated. For I/P macroblock mode decision, only Intra 16 x 16 cost is compared with Inter modes costs. Supports Intra 16 x 16 and Intra 4 x 4 modes. 2 MediumPreset Supports up to Half Pixel (half-pel) block motion estimation. For an I/P macroblock mode decision, only Intra 16 x 16 cost is compared with Inter modes costs. Supports Intra 16 x 16 and Intra 4 x 4 modes. 3 SlowPreset Supports up to Quarter Pixel (Qpel) block motion estimation. For an I/P macroblock mode decision, Intra 4 x 4 as well as Intra 16 x 16 cost is compared with Inter modes costs. Supports Intra 16 x 16 and Intra 4 x 4 modes. Accelerated GStreamer User Guide DA_07303 | 8 Accelerated GStreamer User Guide Set profile gst-launch-1.0 videotestsrc num-buffers=200 ! 'video/x-raw, width=(int)1280, height=(int)720, format=(string)I420' ! omxh264enc profile=8 ! qtmux ! filesink location=test.mp4 -e From omxh264enc, the following profiles are supported: Profile Description 1 Baseline profile 2 Main profile 8 High profile Set number of B frames between two reference frames gst-launch-1.0 videotestsrc num-buffers=200 ! 'video/x-raw, width=(int)1280, height=(int)720, format=(string)I420' ! omxh264enc num-B-Frames=2 ! qtmux ! filesink location=test.mp4 –e Note: B-frame-encoding is not supported with omxh265enc. Insert SPS and PPS at IDR gst-launch-1.0 videotestsrc num-buffers=200 ! 'video/x-raw, width=(int)1280, height=(int)720, format=(string)I420' ! omxh264enc insert-sps-pps=1 ! qtmux ! filesink location=test.mp4 –e If enabled, a sequence parameter set (SPS) and a picture parameter set (PPS) are inserted before each IDR frame in the H.264/H.265 stream. Enable two-pass CBR gst-launch-1.0 videotestsrc num-buffers=200 ! 'video/x-raw, width=(int)1280, height=(int)720, format=(string)I420' ! omxh264enc EnableTwopassCBR=1 control-rate=2 ! qtmux ! filesink location=test.mp4 –e Two-pass CBR must be enabled along with constant bit rate (control-rate=2). Set virtual buffer size gst-launch-1.0 videotestsrc num-buffers=200 ! 'video/x-raw, width=(int)1280, height=(int)720, format=(string)I420' ! omxh264enc vbv-size=10 ! qtmux ! filesink location=test.mp4 –e Accelerated GStreamer User Guide DA_07303 | 9 Accelerated GStreamer User Guide If the buffer size of decoder or network bandwidth is limited, configuring virtual buffer size can cause video stream generation to correspond to the limitations according to the following formula: virtual buffer size = vbv-size * (bitrate/fps) Slice-header-spacing with spacing in terms of MB gst-launch-1.0 videotestsrc num-buffers=200 ! 'video/x-raw, width=(int)1280, height=(int)720, format=(string)I420' ! omxh264enc slice-header-spacing=200 bit-packetization=0 ! qtmux ! filesink location=test.mp4 –e The parameter bit-packetization=0 configures the network abstraction layer (NAL) packet as macroblock (MB)-based, and slice-header-spacing=200 configures each NAL packet as 200 MB at maximum. Slice header spacing with spacing in terms of number of bits gst-launch-1.0 videotestsrc num-buffers=200 ! 'video/x-raw, width=(int)1280, height=(int)720, format=(string)I420' ! omxh264enc slice-header-spacing=1024 bit-packetization=1 ! qtmux ! filesink location=test1.mp4 –e The parameter bit-packetization=1 configures the network abstraction layer (NAL) packet as size-based, and slice-header-spacing=1024 configures each NAL packet as 1024 bytes at maximum. CAMERA CAPTURE WITH GSTREAMER-1.0 For nvgstcapture-1.0 usage information enter the following command: nvgstcapture-1.0 --help The nvgstcapture-1.0 application uses the v4l2src plugin to capture still images and video. The following table shows USB camera support. USB Camera Support Feature Preview display YUV Image capture (VGA, 640 x 480) Video capture (480p, 720p, H.264/VP8 encode) Accelerated GStreamer User Guide DA_07303 | 10 Accelerated GStreamer User Guide raw-yuv Capture (I420 format) and preview display with xvimagesink gst-launch-1.0 v4l2src device="/dev/video0" ! "video/x-raw, width=640, height=480, format=(string)I420" ! xvimagesink -e VIDEO PLAYBACK WITH GSTREAMER-1.0 For nvgstplayer-1.0 usage information enter the following command: nvgstplayer-1.0 --help Video can be output to HD displays using the HDMI connector on the platform. The Gstreamer-1.0 application supports currently the following video sinks: Overlay Sink (Video playback on overlay in full-screen mode) gst-launch-1.0 filesrc location= ! qtdemux name=demux ! h264parse ! omxh264dec ! nvoverlaysink –e nveglglessink (Windowed video playback, NVIDIA EGL/GLES videosink) gst-launch-1.0 filesrc location= ! qtdemux name=demux ! h264parse ! omxh264dec ! nveglglessink –e This nvgstplayer-1.0 application supports specific window position and dimensions for windowed playback: nvgstplayer-1.0 –i --window-x=300 –window-y=300 –windowwidth=500 –window-height=500 VIDEO FORMAT CONVERSION WITH GSTREAMER-1.0 The NVIDIA proprietary nvvidconv Gstreamer-1.0 plug-in allows conversion between OSS (raw) video formats and NVIDIA video formats. The nvvidconv plug-in currently supports the format conversions described in this section raw-yuv Input Formats Currently nvvidconv supports the I420, UYVY, and NV12 raw-yuv input formats. gst-launch-1.0 videotestsrc ! 'video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)720' ! nvvidconv ! Accelerated GStreamer User Guide DA_07303 | 11 Accelerated GStreamer User Guide 'video/x-raw(memory:NVMM), format=(string)I420’ ! omxh264enc ! 'video/x-h264, stream-format=(string)byte-stream' ! h264parse ! qtmux ! filesink location=test.mp4 -e raw-gray Input Formats Currently nvvidconv supports the GRAY8 raw-gray input format. gst-launch-1.0 videotestsrc ! 'video/x-raw, format=(string)GRAY8, width=(int)1280, height=(int)720’ ! nvvidconv ! 'video/x-raw(memory:NVMM), format=(string)I420’ ! omxh264enc ! 'video/x-h264, stream-format=(string)byte-stream' ! h264parse ! qtmux ! filesink location=test.mp4 –e raw-yuv Output Formats Currently nvvidconv supports the I420 and UYVY the raw-yuv output formats. gst-launch-1.0 filesrc location=640x480_30p.mp4 ! qtdemux ! queue ! h264parse ! omxh264dec ! nvvidconv ! 'video/x-raw, format=(string)UYVY' ! xvimagesink –e raw-gray Output Formats Currently nvvidconv supports the GRAY8 raw-gray output format. gst-launch-1.0 filesrc location=640x480_30p.mp4 ! qtdemux ! queue ! h264parse ! omxh264dec ! nvvidconv ! 'video/x-raw, format=(string)GRAY8' ! videoconvert ! xvimagesink –e VIDEO SCALING WITH GSTREAMER-1.0 The NVIDIA proprietary nvvidconv Gstreamer-1.0 plug-in also allows you to perform video scaling. The nvvidconv plug-in currently supports scaling with the format conversions described in this section. Accelerated GStreamer User Guide DA_07303 | 12 Accelerated GStreamer User Guide raw-yuv Input Formats Currently nvvidconv supports the I420, UYVY, and NV12 raw-yuv input formats for scaling. gst-launch-1.0 videotestsrc ! 'video/x-raw, format=(string)I420, width=(int)1280, height=(int)720' ! nvvidconv ! 'video/x-raw(memory:NVMM), width=(int)640, height=(int)480, format=(string)I420' ! omxh264enc ! 'video/x-h264, streamformat=(string)byte-stream' ! h264parse ! qtmux ! filesink location=test.mp4 –e raw-gray Input Formats Currently nvvidconv supports the GRAY8 raw-gray input format for scaling. gst-launch-1.0 videotestsrc ! 'video/x-raw, format=(string)GRAY8, width=(int)1280, height=(int)720’! nvvidconv ! 'video/x-raw(memory:NVMM), width=(int)640, height=(int)480, format=(string)I420' ! omxh264enc ! 'video/x-h264, streamformat=(string)byte-stream' ! h264parse ! qtmux ! filesink location=test.mp4 –e raw-yuv Output Formats Currently nvvidconv supports the I420 and UYVY raw-yuv output formats for scaling. gst-launch-1.0 filesrc location=1280x720_30p.mp4 ! qtdemux ! queue ! h264parse ! omxh264dec ! nvvidconv ! 'video/x-raw, format=(string)I420, width=640, height=480' ! xvimagesink –e raw-gray Output Formats Currently nvvidconv supports the GRAY8 raw-gray output format for scaling. gst-launch-1.0 filesrc location=1280x720_30p.mp4 ! qtdemux ! queue ! h264parse ! omxh264dec ! nvvidconv ! 'video/x-raw, format=(string)GRAY8, width=640, height=480' ! videoconvert ! xvimagesink –e Accelerated GStreamer User Guide DA_07303 | 13 Accelerated GStreamer User Guide NVIDIA Input and Output Formats Currently nvvidconv supports the NVIDIA input and output formats for scaling described in the following table: Input Format Output Format NV12 NV12 I420 I420 RGBA To scale between NVIDIA formats Scale between NVIDIA Formats with the following commands: gst-launch-1.0 filesrc location=1280x720_30p.mp4 ! qtdemux ! h264parse ! omxh264dec ! nvvidconv ! 'video/x-raw(memory:NVMM), width=(int)640, height=(int)480, format=(string)I420' ! omxh264enc ! qtmux ! filesink location=test.mp4 –e gst-launch-1.0 filesrc location=1280x720_30p.mp4 ! qtdemux ! h264parse ! omxh264dec ! nvvidconv ! 'video/x-raw(memory:NVMM), width=(int)640, height=(int)480, format=(string)RGBA' ! nvoverlaysink –e gst-launch-1.0 nvcamerasrc fpsRange="30 30" ! 'video/xraw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)I420, framerate=(fraction)30/1' ! nvtee ! nvvidconv ! 'video/x-raw(memory:NVMM), width=(int)640, height=(int)480, format=(string)NV12’ ! omxh264enc ! qtmux ! filesink location=test.mp4 –e VIDEO CROPPING WITH GSTREAMER-1.0 The NVIDIA proprietary nvvidconv Gstreamer-1.0 plug-in also allows you to perform video cropping. To crop video Crop video with the following commands: gst-launch-1.0 filesrc location= ! qtdemux ! h264parse ! omxh264dec ! nvvidconv left=400 right=1520 top=200 bottom=880 ! nvoverlaysink display-id=1 –e Accelerated GStreamer User Guide DA_07303 | 14 Accelerated GStreamer User Guide VIDEO TRANSCODE WITH GSTREAMER-1.0 You can perform video transcoding between the following video formats. H.264 Decode to VP8 Encode (NVIDIA-accelerated decode to NVIDIAaccelerated encode) gst-launch-1.0 filesrc location= ! qtdemux name=demux demux.video_0 ! queue ! h264parse ! omxh264dec ! nvvidconv ! 'video/xraw(memory:NVMM), format=(string)I420’ ! omxvp8enc ! qtmux name=mux ! filesink location= demux.audio_0 ! queue ! aacparse ! mux.audio_0 -e VP8 Decode to H.264 Encode (NVIDIA-accelerated decode to NVIDIAaccelerated encode) gst-launch-1.0 filesrc location= ! qtdemux name=demux demux.video_0 ! queue ! omxvp8dec ! nvvidconv ! 'video/xraw(memory:NVMM), format=(string)I420’ ! omxh264enc ! qtmux name=mux ! filesink location= demux.audio_0 ! queue ! aacparse ! mux.audio_0 -e MPEG-4 Decode to VP8 Encode (NVIDIA-accelerated decode to NVIDIAaccelerated encode) gst-launch-1.0 filesrc location= ! qtdemux name=demux demux.video_0 ! queue ! mpeg4videoparse ! omxmpeg4videodec ! nvvidconv ! 'video/x-raw(memory:NVMM), format=(string)I420’ ! omxvp8enc ! qtmux name=mux ! filesink location= demux.audio_0 ! queue ! aacparse ! mux.audio_0 -e MPEG-4 Decode to H.264 Encode (NVIDIA-accelerated decode to NVIDIAaccelerated encode) gst-launch-1.0 filesrc location= ! qtdemux name=demux demux.video_0 ! queue ! mpeg4videoparse ! omxmpeg4videodec ! nvvidconv ! 'video/x-raw(memory:NVMM), format=(string)I420’ ! omxh264enc ! qtmux name=mux ! filesink location= demux.audio_0 ! queue ! aacparse ! mux.audio_0 -e H.264 Decode to MPEG-4 Encode (NVIDIA-accelerated decode to OSS software encode) gst-launch-1.0 filesrc location= ! qtdemux name=demux demux.video_0 ! queue ! h264parse ! omxh264dec ! nvvidconv ! Accelerated GStreamer User Guide DA_07303 | 15 Accelerated GStreamer User Guide avenc_mpeg4 ! qtmux name=mux ! filesink location= demux.audio_0 ! queue ! aacparse ! mux.audio_0 -e VP8 Decode to MPEG-4 Encode (NVIDIA-accelerated decode to OSS software encode) gst-launch-1.0 filesrc location= ! qtdemux name=demux demux.video_0 ! queue ! omxvp8dec ! nvvidconv ! avenc_mpeg4 ! qtmux name=mux ! filesink location= demux.audio_0 ! queue ! aacparse ! mux.audio_0 -e H.264 Decode to Theora Encode (NVIDIA-accelerated decode to OSS software encode) gst-launch-1.0 filesrc location= ! qtdemux name=demux demux.video_0 ! queue ! h264parse ! omxh264dec ! nvvidconv ! theoraenc ! oggmux name=mux ! filesink location= -e VP8 Decode to Theora Encode (NVIDIA-accelerated decode to OSS software encode) gst-launch-1.0 filesrc location= ! qtdemux name=demux demux.video_0 ! queue ! omxvp8dec ! nvvidconv ! theoraenc ! oggmux name=mux ! filesink location= -e MPEG-4 Decode to Theora Encode (NVIDIA-accelerated decode to OSS software encode) gst-launch-1.0 filesrc location= ! qtdemux name=demux demux.video_0 ! queue ! mpeg4videoparse ! omxmpeg4videodec ! nvvidconv ! theoraenc ! oggmux name=mux ! filesink location= -e Accelerated GStreamer User Guide DA_07303 | 16 Accelerated GStreamer User Guide CUDA VIDEO POST-PROCESSING WITH GSTREAMER1.0 This section describes Gstreamer-1.0 plug-ins for CUDA post-processing operations. gst-videocuda This GStreamer-1.0 plug-in performs CUDA post-processing operations on decoderprovided EGL images and render video using nveglglessink. The following are sample pipeline creation and application usage commands. Sample decode pipeline gst-launch-1.0 filesrc location= ! qtdemux name=demux ! h264parse ! omxh264dec ! videocuda ! nveglglessink maxlateness=-1 -e Sample decode command nvgstplayer-1.0 -i --svd="omxh264dec" -svc="videocuda" --svs="nveglglessink # max-lateness=-1" --disablevnative --no-audio --window-x=0 --window-y=0 --window-width=960 -window-height=540 gst-nvivafilter This NVIDIA proprietary GStreamer-1.0 plug-in performs pre/post and CUDA postprocessing operations on CSI camera captured or decoded frames, and renders video using overlay video sink or video encode. Sample decode pipeline gst-launch-1.0 filesrc location= ! qtdemux ! h264parse ! omxh264dec ! nvivafilter cuda-process=true customer-libname="libnvsample_cudaprocess.so" ! 'video/x-raw(memory:NVMM), format=(string)NV12' ! nvoverlaysink -e Sample CSI Camera pipeline gst-launch-1.0 nvcamerasrc fpsRange="30 30" ! 'video/xraw(memory:NVMM), width=(int)3840, height=(int)2160, format=(string)I420, framerate=(fraction)30/1' ! nvtee ! nvivafilter cuda-process=true customer-lib-name="libnvsample_cudaprocess.so" ! 'video/x-raw(memory:NVMM), format=(string)NV12' ! nvoverlaysink -e Accelerated GStreamer User Guide DA_07303 | 17 Accelerated GStreamer User Guide Note: See nvsample_cudaprocess_src.tbz2 package for the libnvsample_cudaprocess.so library sources. A Sample CUDA implementation of libnvsample_cudaprocess.so can be replaced by a custom CUDA implementation. VIDEO ROTATION WITH GSTREAMER-1.0 The NVIDIA proprietary nvvidconv Gstreamer-1.0 plug-in also allows you to perform video rotation operations. The following table shows the supported values for the nvvidconv flip-method property. Flip Method Property value identity - no rotation (default) 0 counterclockwise - 90 degrees 1 rotate - 180 degrees 2 clockwise - 90 degrees 3 horizontal flip 4 upper right diagonal flip 5 vertical flip 6 upper-left diagonal 7 Note: Get information on nvvidconv flip-method property with the gstinspect-1.0 nvvidconv command. To rotate video 90 degrees counterclockwise To rotate video 90 degrees in a counterclockwise direction, enter the following command. gst-launch-1.0 filesrc location= ! qtdemux name=demux ! h264parse ! omxh264dec ! nvvidconv flip-method=1 ! 'video/xraw(memory:NVMM), format=(string)I420' ! nvoverlaysink –e To rotate video 90 degrees clockwise To rotate video 90 degrees in a clockwise direction, enter the following command: gst-launch-1.0 filesrc location= ! qtdemux name=demux ! h264parse ! omxh264dec ! nvvidconv flip-method=3 ! 'video/xraw(memory:NVMM), format=(string)I420’ ! omxh264enc ! qtmux ! filesink location=test.mp4 –e Accelerated GStreamer User Guide DA_07303 | 18 Accelerated GStreamer User Guide Rotate 180 degrees To rotate video 180 degrees, enter the following command: gst-launch-1.0 nvcamerasrc fpsRange="30.0 30.0" ! 'video/xraw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)I420, framerate=(fraction)30/1' ! nvtee ! nvvidconv flip-method=2 ! 'video/x-raw(memory:NVMM), format=(string)I420' ! nvoverlaysink -e To scale and rotate video 90 degrees counterclockwise To scale and rotate video 90 degrees counterclockwise, enter the following command: gst-launch-1.0 filesrc location= ! qtdemux ! h264parse ! omxh264dec ! nvvidconv flip-method=1 ! 'video/xraw(memory:NVMM), width=(int)480, height=(int)640, format=(string)I420' ! nvoverlaysink -e To scale and rotate video 90 degrees clockwise To scale and rotate video 90 degrees clockwise, enter the following command: gst-launch-1.0 nvcamerasrc fpsRange="30.0 30.0" ! 'video/xraw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)I420, framerate=(fraction)30/1' ! nvtee ! nvvidconv flip-method=3 ! 'video/x-raw(memory:NVMM), width=(int)480, height=(int)640, format=(string)I420' ! nvoverlaysink -e To scale and rotate video 180 degrees To scale and rotate video 180 degrees, enter the following command: gst-launch-1.0 filesrc location= ! qtdemux ! h264parse ! omxh264dec ! nvvidconv flip-method=2 ! 'video/xraw(memory:NVMM), width=(int)640, height=(int)480, format=(string)I420' ! nvoverlaysink -e INTERPOLATION METHODS FOR VIDEO SCALING The NVIDIA proprietary nvvidconv Gstreamer-1.0 plug-in allows you to choose the interpolation method used for scaling. The following table shows the supported values for the nvvidconv interpolation-method property. Accelerated GStreamer User Guide DA_07303 | 19 Accelerated GStreamer User Guide Interpolation Method Property Value nearest 0 linear 1 smart (default) 2 bilinear 3 Note: Get information on nvvidconv interpolation-method property with the gst-inspect-1.0 nvvidconv command. To use bilinear interpolation method for scaling Enter the following command: gst-launch-1.0 filesrc location= ! qtdemux name=demux ! h264parse ! omxh264dec ! nvvidconv interpolationmethod=3 ! 'video/x-raw(memory:NVMM), format=(string)I420, width=1280, height=720' ! nvoverlaysink –e EGLSTREAM PRODUCER EXAMPLE The NVIDIA-proprietary nveglstreamsrc and nvvideosink Gstreamer-1.0 plug-ins allow simulation of an EGLStream producer pipeline (for preview only.) To simulate an EGLStream producer pipeline Enter the following command: nvgstcapture-1.0 --camsrc=3 --nvvideosink-create-eglstream EGL IMAGE TRANSFORM EXAMPLE The NVIDIA proprietary nvegltransform Gstreamer-1.0 plug-in allows simulation of an EGLImage transform pipeline. To simulate an EGL Image transform pipeline Enter the following command: gst-launch-1.0 filesrc location= ! qtdemux ! h264parse ! omxh264dec ! nvvidconv ! 'video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)NV12' ! nvegltransform ! nveglglessink -e Accelerated GStreamer User Guide DA_07303 | 20 GSTREAMER BUILD INSTRUCTIONS This section provides a procedure for building current versions of gstreamer. Using gst-install to build GStreamer This release contains the git-install script to install a specific GStreamer version. To install, execute: gst-install [--prefix= ] [--version= ] Where: is the location where you are installing GStreamer is the GStreamer version For example: gst-install --prefix=/home/ubuntu/gst-1.6.0 --version=1.6.0 To build GStreamer manually 1. Download the latest version of gstreamer available at: http://gstreamer.freedesktop.org/src/ The following are the files you need from version 1.6.0: ● ● ● ● ● gstreamer-1.6.0.tar.xz gst-plugins-base-1.6.0.tar.xz gst-plugins-good-1.6.0.tar.xz gst-plugins-bad-1.6.0.tar.xz gst-plugins-ugly-1.6.0.tar.xz Accelerated GStreamer User Guide DA_07303| 21 GStreamer Build Instructions 2. Install needed packages with the following command: sudo apt-get install build-essential dpkg-dev flex bison autotoolsdev automake liborc-dev autopoint libtool gtk-doc-tools libgstreamer1.0-dev 3. In the ~/ directory, create a gst_ directory, where is the version number of gstreamer you are building. 4. Copy the downloaded tar.xz files to the gst_ directory. 5. Uncompress the tar.xz files in the gst_ directory. 6. Set the PKG_CONFIG_PATH with the following command: export PKG_CONFIG_PATH=/home/ubuntu/gst_1.6.0/out/lib/pkgconfig 7. Build gstreamer (in this example, gstreamer-1.6.0) with the following commands: ./configure --prefix=/home/ubuntu/gst_1.6.0/out make make install 8. Build gst-plugins-base-1.6.0 with the following commands: sudo apt-get install libxv-dev libasound2-dev libtheora-dev liboggdev libvorbis-dev ./configure --prefix=/home/ubuntu/gst_1.6.0/out make make install 9. Build gst-plugins-good-1.6.0 with the following commands: sudo apt-get install libbz2-dev libv4l-dev libvpx-dev libjackjackd2-dev libsoup2.4-dev libpulse-dev ./configure --prefix=/home/ubuntu/gst_1.6.0/out make make install 10. Obtain and build gst-plugins-bad-1.6.0 with the following commands: sudo apt-get install faad libfaad-dev libfaac-dev ./configure --prefix=/home/ubuntu/gst_1.6.0/out make make install Accelerated GStreamer User Guide DA_07303 | 22 GStreamer Build Instructions 11. Obtain and build gst-plugins-ugly-1.6.0 with the following commands: sudo apt-get install libx264-dev libmad0-dev ./configure --prefix=/home/ubuntu/gst_1.6.0/out make make install 12. Set the LD_LIBRARY_PATH environment variable with the following command: export LD_LIBRARY_PATH=/home/ubuntu/gst_1.6.0/out/lib/ 13. Copy the nvidia gstreamer-1.0 libraries to the gst_1.6.0 plugin directory using the following command: cd /usr/lib/arm-linux-gnueabihf/gstreamer-1.0/ cp libgstnv* libnvgst* libgstomx.so ~/gst_1.6.0/out/lib/gstreamer1.0/ The nvidia gstreamer-1.0 libraries include: libgstnvcamera.so libgstnveglglessink.so libgstnveglstreamsrc.so libgstnvegltransform.so libgstnvivafilter.so libgstnvvidconv.so libgstnvvideosink.so libnvgstjpeg.so libgstomx.so Accelerated GStreamer User Guide DA_07303 | 23 NVGSTCAPTURE-1.0 OPTION REFERENCE This section describes the options available in the nvgstcapture-1.0 application. NVGSTCAPTURE APPLICATION OPTIONS Nvgstcapture-1.0 command-line options are described in the following table. Application Options Option Description Notes --prev_res Preview area width and height, e.g., --prev_res=3 - --cus-prev-res Custom preview width and height for CSI only - --image_res Image width and height, e.g., -image_res=3 - --video_res Video width and height, e.g., -video_res=3 - -m, --mode Capture mode. 1-Still 2-Video -v, --video_enc Video encoder type. 0-H.264 (hardware) 1-VP8(hardware) 2-MPEG-4 (software) 3-H.263 (software) -b, --enc-bitrate Video encoding Bit-rate(in bytes) Example: --enc-bitrate=4000000 --enc-profile Video encoder profile (only for H.264) 0-Baseline 1-Main 2-High -j, --image_enc Image encoder type. 0-jpeg_SW[jpegenc] 1-jpeg_HW[nvjpegenc] Accelerated GStreamer User Guide DA_07303| 24 Nvgstcapture-1.0 Option Reference -k, --file_type Container file type. 0-MP4 1-3GP 2-AVI --cap-dev-node Video capture device node. 0=/dev/video0[default] 1=/dev/video1 2=/dev/video2 --svs Chain for video preview. - --file-name File name for capture. “nvcamtest” is used by default. --camsrc Camera source. 0-v4l2 1-csi (default) 2-videotest 3-eglstream --orientation Camera sensor orientation value(CSI only) - -w, --whitebalance White balance value for capture. (CSI only) - -s, --scene-mode Camera scene-mode value. (CSI only) - -c, --color-effect Camera color effect value. (CSI only) - --auto-exposure Camera auto-exposure value. (CSI only) - --flash Camera flash value. (CSI only) - --flicker Camera flicker detection and avoidance mode value. (CSI only) - --contrast Camera contrast value. (CSI only) - --saturation Camera saturation value. (CSI only) - --edge-enhancement Camera edge enhancement value. (CSI only) - --tnr_strength Camera TNR strength value. (CSI only) - --tnr_mode Camera TNR mode value. (CSI only) - --sensor-id Camera Sensor ID value. (CSI only) - --display-id Display ID value (for nvoverlaysink only) - --eglstream-id Select EGLStreamProducerID value (for CSI EGLStream). Default is 0. - --aeRegion ROI for AE coordinates (top, left, bottom, right) and weight, in that order. (CSI only) Example: --aeRegion="30 40 200 200 1.2" Accelerated GStreamer User Guide DA_07303 | 25 Nvgstcapture-1.0 Option Reference --wbRegion ROI for AWB coordinates (top, left, bottom, right) and weight in that order. (CSI only) Example: --wbRegion="30 40 200 200 1.2" --fpsRange FPS range values (low, high) (CSI only) Example: --fpsRange="15 30" --wbGains White Balance (WB) gains values (R, GR, GB, B) in that order. (CSI only) Example: --wbGains="1.2 1.4 0.8 1.6" --overlayConfig Overlay Configuration Options index and coordinates in (index, x_pos, y_pos, width, height) order. Example: --overlayConfig="0, 0, 0, 1280, 720" --enable-meta Enables Sensor MetaData reporting if the sensor has the capability to provide the embedded metadata. - --eglConfig EGL window Coordinates (x_pos y_pos) in that order. Example: --eglConfig=”50 100” --enable-exif Enable Exif data - --dump-bayer Dump bayer data in addition to image capture - --exposure-time Capture exposure time value. (CSI only) Example: --exposure-time=0.033 Option Description Notes -h, --help Show help options. - --help-all Show all help options. - --help-gst Show Gstreamer options. - Help Options CSI CAMERA SUPPORTED RESOLUTIONS CSI camera supports the following image resolutions: 640x480 1280x720 1920x1080 2104x1560 2592x1944 2616x1472 3840x2160 3896x2192 4208x3120 Accelerated GStreamer User Guide DA_07303 | 26 Nvgstcapture-1.0 Option Reference CSI CAMERA RUNTIME COMMANDS CSI camera runtime commands are described in the following table. Command Description Notes h Help - q Quit - mo: Set capture mode 1-image 2-video gmo Get capture mode - sid: Set sensor ID - gsid Get sensor ID - so: Set sensor orientation gso Get sensor orientation - wb: Set white balance mode 0-off 1-auto 2-incandescent 3-fluorescent 4-warm-fluorescent 5-daylight 6-cloudy-daylight 7-twilight 8-shade gwb Get white balance mode - scm: Set scene mode 0-face-priority 1-action 2-portrait 3-landscape 4-night 5-night-portrait 6-theatre 7-beach 8-snow 9-sunset 10-steady-photo 11-fireworks 12-sports 13-party 14-candle-light 15-barcode gcm Get scene mode - Accelerated GStreamer User Guide (0): none (1): Rotate counterclockwise 90 degrees (2): Rotate 180 degrees (3): Rotate clockwise 90 degrees DA_07303 | 27 Nvgstcapture-1.0 Option Reference ce: Set color effect mode 1-off 2-mono 3-negative 4-solarize 5-sepia 6-posterize 7-aqua gce Get color effect mode - ae: Set auto-exposure mode 1-off 2-on 3-OnAutoFlash 4-OnAlwaysFlash 5-OnFlashRedEye gae Get auto exposure mode - f: Set flash mode 0-off 1-on 2-torch 3-auto gf Get flash mode - fl: Set flicker detection and avoidance mode 0-off 1-50 Hz 2-60 Hz 3-auto gfl Get flicker detection and avoidance mode - ct: Set contrast 0-1, e.g., ct:0.75 gct Get contrast - st: Set saturation 0-2, e.g., st:1.25 gst Get saturation - ext: Set exposure time (in seconds) e.g., ext:0.033 gext Get exposure time - ee: Set edge enhancment 0-1, e.g., ee:0.75 gee Get edge enhancment - aer: Set ROI coordinates for AE (top, left, bottom, right) and weight e.g., aer:20 20 400 400 1.2 gaer Get ROI for AE - wbr: Set ROI coordinates for AWB (top, left, bottom, right) and weight e.g., wbr:20 20 400 400 1.2 gwbr Get ROI for AE - fpsr: Set FPS range (low, high) e.g., fpsr:15 30 gfpsr Get FPS range - wbg: Set WB gains (R, GR, GB, B) e.g., wbg:1.2 2.2 0.8 1.6 Accelerated GStreamer User Guide DA_07303 | 28 Nvgstcapture-1.0 Option Reference gwbg Get WB gains - ts: Set TNR strength 0-1, e.g., ts:0.75 gts Get TNR strength - tnr: Set TNR mode 0-Original 1-Outdoor-low-light 2-Outdoor-medium-light 3-Outdoor-high-light 4-Indoor-low-light 5-Indoor-medium-light 6-Indoor-high-light gtnr Get TNR mode - j Capture one image. - jx Capture after a delay of , e.g., jx5000 to capture after a 5-second delay - j: Capture number of images in succession, e.g., j:6 to capture 6 images. - 1 Start recording video - 0 Stop recording video - gpcr Get preview resolution - gicr Get image capture resolution - gvcr Get video capture resolution - USB CAMERA RUNTIME COMMANDS USB camera runtime commands are described in the following table. Command Description Notes h Help - q Quit - mo: Set capture mode 1-image 2-video gmo Get capture mode - j Capture one image. - jx Capture after a delay of , e.g., jx5000 to capture after a 5-second delay - j: Capture number of images in succession, e.g., j:6 to capture 6 images. - Accelerated GStreamer User Guide DA_07303 | 29 Nvgstcapture-1.0 Option Reference 1 Start recording video - 0 Stop recording video - pcr: Set preview resolution 0-176x144 1-320x240 2-640x480 3-1280x720 gpcr Get preview resolution - gicr Get image capture resolution - gvcr Get video capture resolution - br: Set encoding bit rate (in bytes) e.g., br:4000000 gbr Get encoding bit rate - cdn: Set capture device node 0-/dev/video0 1-/dev/video1 2-/dev/video2 gcdn Get capture device node - Runtime video encoder configuration options are described in the following table. Command Description Notes br: Sets encoding bit-rate (in bytes) Example: br:4000000 gbr Gets encoding bit-rate (in bytes) - ep: Sets encoding profile (for H.264 only) Example: ep:1 (0): Baseline (1): Main (2): High gep Gets encoding profile (for H.264 only) - Enter+f Forces IDR frame on video encoder (for H.264 only) - NOTES The nvgstcapture-1.0 application generates image and video output files in the same directory as the application itself. Filenames for image and video content are in the formats nvcamtest .jpg and nvcamtest .mp4 respectively, where 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. Default H.263 encode resolution is 704x576(4CIF) in AVI container formats. Use -camsrc=2 for H.263 video encode. Accelerated GStreamer User Guide DA_07303 | 30 Nvgstcapture-1.0 Option Reference The nvgstcapture-1.0 application supports native capture(video only) mode by default. Advance features, like setting zoom, brightness, exposure, and whitebalance levels, are not supported for USB camera. Accelerated GStreamer User Guide DA_07303 | 31 VIDEO ENCODER FEATURES The Gstreamer-1.0-based gst-omx video encoders support the following features, respectively: Video Encoder Feature H264enc H265enc Vp8enc (all) (Main) bitrate insert-spsppsatidr control-rate iframeinterval qp-range temporal-tradeoff bit-packetization quality-level low-latency slice-header spacing - force-IDR vbv-size sliceintrarefreshenable - sliceintrarefreshinterval - EnableTwoPassCBR num-B-Frames - - profile (Baseline / Main / High) Accelerated GStreamer User Guide DA_07303| 32 SUPPORTED CAMERAS This section describes the supported cameras. CSI CAMERAS Jetson TX1 currently supports only 1 CSI RAW BAYER sensor. The platform has been validated with a single OV5693 sensor for capture on L4T. The camera module is interfaced with the Tegra platform via MIPI-CSI. Tested using the nvgstcapture application. USB 2.0 CAMERAS The following cameras have been validated on Tegra platforms for Android and L4T with USB 2.0 ports. These cameras are UVC compliant. Logitech c920 (preferred) http://www.logitech.com/en-in/product/hd-pro-webcam-c920 Logitech c910 http://www.amazon.com/Logitech-HD-Pro-Webcam-C910/dp/B003M2YT96 Rocketfish™ HD Webcam Pro http://www.rocketfishproducts.com/products/computer-accessories/RFHDWEB10.html?supportTab=open Creative Live! Cam Socialize HD 1080 http://support.creative.com/Products/ProductDetails.aspx?catID=218&CatName=We b+Cameras&subCatID=231&subCatName=MIDI+Keyboards&prodID=20165&prodN ame=Live!+Cam+Socialize+HD+1080&bTopTwenty=1&VARSET=prodfaq:PRODFAQ _20165,VARSET=CategoryID:218 Accelerated GStreamer User Guide DA_07303| 33 Supported Cameras INDUSTRIAL CAMERA DETAILS The following USB 3.0 Industrial cameras are supported on Jetson-TX1 under L4T: See3CAM_CU130 http://www.e-consystems.com/UltraHD-USB-Camera.asp ● ● ● ● ● ● USB 3.0 UVC compliant 3840 x 2160 at 30 FPS | 4224 x 3156 at 13 FPS Purpose - Embedded Navigation Test using the nvgstcapture app. Issues encountered: ― ― FPS cannot be fixed. Changes based on exposure. FPS cannot be changed. Needs payment to vendor to get the support added to their firmware. MQ003CG-CM http://www.ximea.com/en/products/usb3-vision-cameras-xiq-line/mq003cg-cm ● ● ● ● ● USB 3.0 Non-UVC compliant 640 x 480 at 500 FPS Purpose - Embedded Robotics Installation and Verification on Jetson TX1: 1. Add the user to the plugdev group: sudo gpasswd -a ubuntu plugdev Re-login. 2. Install tools for the application: apt-get install libgstreamer0.10-dev libgstreamer-pluginsbase0.10-dev libgtk2.0-dev g++" 3. Download XIMEA Linux Software Package: wget http://www.ximea.com/downloads/recent/XIMEA_Linux_SP.tgz Untar: tar xzf XIMEA_Linux_SP.tgz cd package Accelerated GStreamer User Guide DA_07303 | 34 Supported Cameras 4. Open the install file and replace elif [ "${arch:0:3}" == "arm" ] with elif [ "$arch" == "aarch64" ] 5. Start installation: ./install Install USB3 camera: ./install -cam_usb30 Install graphical desktop: sudo apt-get update sudo apt-get install ubuntu-desktop 6. Reboot. The system boots to the graphical desktop. 7. To access sample applications: • • xiSample: run from /package/bin folder streamViewer • • make from /package/examples/streamViewer folder run from the /package/bin folder Accelerated GStreamer User Guide DA_07303 | 35 Notice ALL NVIDIA DESIGN SPECIFICATIONS, REFERENCE BOARDS, FILES, DRAWINGS, DIAGNOSTICS, LISTS, AND OTHER DOCUMENTS (TOGETHER AND SEPARATELY, "MATERIALS") ARE BEING PROVIDED "AS IS." NVIDIA MAKES NO WARRANTIES, EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO THE MATERIALS, AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OR CONDITION OF TITLE, MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE AND ON-INFRINGEMENT, ARE HEREBY EXCLUDED TO THE MAXIMUM EXTENT PERMITTED BY LAW. Information furnished is believed to be accurate and reliable. However, NVIDIA Corporation assumes no responsibility for the consequences of use of such information or for any infringement of patents or other rights of third parties that may result from its use. No license is granted by implication or otherwise under any patent or patent rights of NVIDIA Corporation. Specifications mentioned in this publication are subject to change without notice. This publication supersedes and replaces all information previously supplied. NVIDIA Corporation products are not authorized for use as critical components in life support devices or systems without express written approval of NVIDIA Corporation. Trademarks NVIDIA and the NVIDIA logo are trademarks or registered trademarks of NVIDIA Corporation in the United States and other countries. Other company and product names may be trademarks of the respective companies with which they are associated. Copyright © 2015, 2016, 2017 NVIDIA Corporation. All rights reserved. www.nvidia.com
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.6 Linearized : Yes Category : Release 24.2 Company : NVIDIA Create Date : 2017:01:12 16:25:02-08:00 Document Number : DA_07303-3.2 Modify Date : 2017:01:12 16:31:16-08:00 Source Modified : D:20170113002440 Subject : Language : EN-US Tagged PDF : Yes XMP Toolkit : Adobe XMP Core 5.6-c015 84.159810, 2016/09/10-02:41:30 Metadata Date : 2017:01:12 16:31:16-08:00 Creator Tool : Acrobat PDFMaker 15 for Word Document ID : uuid:a7e38974-64eb-4927-9522-185c068e71af Instance ID : uuid:8f4c7e84-47df-435a-b6a1-d907d5a8c431 Format : application/pdf Title : Accelerated GStreamer User Guide Description : Creator : Producer : Adobe PDF Library 15.0 Document 0020number : DA_07303-3.2 Headline : Page Mode : UseOutlines Page Count : 40EXIF Metadata provided by EXIF.tools