DeepStream Intro#

I had conceptual understanding of DeepStream, and I almost depicted an entire VA pipeline architecture using DeepStream without trying a single line of code… 🤦🏻‍♂️ Well, if you have enough tech-ego then it always comes back to haunt you and makes you feel uncomfortable when you do such things :).

Yet another weekend catching up on my backlog of things to evaluate — here are my notebooks from going through an NVIDIA DeepStream SDK self-learning materials on DLI…

Opportunities for Video AI or Intelligent Video Analytics (IVA) image

  • Access control at airports or other checkpoints

  • Managing operations for logistic and manufacturing such as warehouse balancing at product distribution centers

  • Traffic flow and parking management for smart cities

  • Retail analytics to improve customer experience

  • Optical inspection at factory assembly line

Video AI Tasks#

In a typical Video Analytics pipeline, there are one or more machine learning models to generate insights from the video inputs. These are generally deep learning neural network (DNN) models that have been trained for a specific visual task. There are numerous approaches for drawing insight from videos:

  • Classification is used for identifying the object contained in an image. It is the task of labeling the given frame with one of the classes that the model has been trained with

  • Localization uses regression to return the coordinates of the potential object within the frame

  • Object detection, which includes image localization, can specify the location of multiple objects in a frame

  • Segmentation provides pixel level accuracy by creating a fine-grained segmentation mask around the detected object. Applications for segmentation include: an AI powered green screen to blur or change the background of the frame, autonomous driving where you want to segment the road and background, or for manufacturing to identify microscopic level defects

image

A typical Video AI Pipeline#

Generally, a video AI pipeline takes one or more input video streams, performs decoding and muxing (or aggregating), preprocesses the batch, and puts the data through AI inference. Afterwards, the AI-based insight, combined with the original video, can be 1) encoded for storage, 2) used to create a composite for display, or 3) passed downstream for further analytics. image

Video Formats#

The input video file is an encoded video file with a .h264 extension, which is perhaps not the .mp4 extension we would expect for a video file. The .mp4 file extension is a representation of the container, which has all the files needed to play back a video. These files include the visual images, the audio tracks, and the metadata (i.e., bitrate, resolution, subtitles, timestamp, etc.). The metadata also contains information about the codec used for the audio and video streams. The codec, which is a mashup of the words code and decode, is a method used to compress (encode) a video into a smaller size for faster transmission. The encoded file can be decompressed (decoded) using the same codec for playback and processing. The most common video codecs include H.264, H.265, and MPEG4. Separate from MPEG4, MP4 is a container that can be used for playback in the JupyterLab. These properties describe the video format and new ones are continuously being developed to provide improvements in quality, file size, and video playback. We need to build the application based on the video format(s) of the input and desire output.

The FFmpeg tool is a very fast video and audio converter with the general syntax:
ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ....
When using the ffmpeg command, the -i option lets us read an input URL, the -loglevel quiet option suppresses the logs, and the -y flag overwrites any existing output file with the same name.

# Convert the H.264 encoded video file to MP4 container file - this will generate the sample_30.mp4 file
!ffmpeg -i /dli/task/data/sample_30.h264 /dli/task/sample_30.mp4 \
        -y \
        -loglevel quiet

from IPython.display import Video
Video('sample_30.mp4', width=720)

GStreamer Foundations#

DeepStream utilizes an optimized graph architecture built using the open-source GStreamer multimedia framework. GStreamer is used for creating streaming media applications, ranging from a simple media player to complex video editing applications. GStreamer plugins can be mixed and matched into arbitrary pipelines to create custom applications.

Key concepts in GStreamer#

  • Elements - Elements are at the core of GStreamer. Elements provide some sort of functionality when linked with other elements. For example, a source element provides data to a stream, a filter element processes a stream of data, and a sink element consumes data. Data flow downstream from source elements to sink elements, passing through filter elements. GStreamer offers a large collection of elements by default but also allows for writing new elements.

    • A sink, in computing, is designed to receive data.

  • Bins - Bins are container elements that allow you to combine linked elements into a logical group. Bins can be handled in the same way as any other element. They are programmed to manage elements contained within, including state changes as well as bus messages, to ensure that data flow smoothly. This is useful when constructing complex pipelines that require many elements.

  • Pipeline - A pipeline is the top-level bin that also manages the synchronization and bus messages of the contained elements.

  • Plugins - Elements need to be encapsulated in a plugin to enable GStreamer to use it. A plugin is essentially a loadable block of code, usually recognized as a shared object file or a dynamically linked library. A plugin may contain the implementation of several elements, or just one. GStreamer provides building blocks in the form of plugins that can be used to construct an efficient video analytics pipeline. The DeepStream SDK features hardware-accelerated plugins that bring deep neural networks and other complex processing tasks into the stream processing pipeline.

  • Bus - The bus is the object responsible for delivering to the application messages generated by the elements. Every pipeline contains a bus by default, so the only thing applications should do is set a message handler on a bus, which is like a signal handler to an object. When the main loop is running, the bus will periodically be checked for new messages, and the message handler will be called when any new message is available.

    • Messages signal the application of pipeline events. Some of the message types include GST_MESSAGE_EOS (end-of-stream), GST_MESSAGE_ERROR, and GST_MESSAGE_WARNING.

  • Pads - Pads are used to negotiate links and dataflow between elements in GStreamer. A pad is the “port” on an element where links can be made with other elements for data to flow through. When data flow from element to element in a pipeline, in reality it flows from the source pad of one element to the sink pad of another. Links are only allowed between two pads when the data types, or capabilities, are compatible.

  • Buffers and Events - All streams of data in GStreamer are chopped up into chunks and passed from a source pad of one element to a sink pad of another element as one of the two types of GstMiniObject: events (control) and buffers (content). A buffer is the basic unit of data transfer in GStreamer. Normally, it contains a chunk of video data that flow from one element to another. The DeepStream SDK attaches the DeepStream metadata object, NvDsBatchMeta, to the buffer. An event, on the other hand, contains information on the state of the stream flowing between two linked pads. Events can be used to indicate the end of a media stream.

  • Queries - Queries are used to get information about the stream.

For the most part, all data in GStreamer flow one way through a link between elements. When data flow from one DeepStream element to another, the buffers are not recreated. Instead, buffer pointers are passed to avoid unnecessary copies and achieve high-speed performance.

image

For more information, please refer to GStreamer Basics.

Anatomy of a DeepStream Pipeline#

The DeepStream SDK is a streaming analytics toolkit that can be used to build video AI applications or pipeline.

GStreamer and by extension DeepStream applications have a plugin-based architecture. One single plugin may contain the implementation of several elements, or just one. When building a pipeline, we can select from a catalogue of available GStreamer or DeepStream plugins, or create new ones. An application can be thought of as a pipeline consisting of individual components (plugins), each representing a functional block like video decoding/encoding, scaling, inferencing, and more.

The graph below shows the pipeline of a typical video analytics pipeline, starting from consuming input videos to outputting insights. All the individual blocks are various plugins that are used. At the bottom are the different hardware engines that are utilized throughout the pipeline. Where applicable, plugins are accelerated using the underlying hardware to deliver maximum performance. image

Inspecting Plugins#

We can inspect plugins using gst-inspect-1.0. It’s a tool that prints out information on available plugins, information about a particular plugin, or information about a particular element. When executed with no plugin or element argument, it will print a list of all plugins and elements together with a summary. When executed with a plugin or element argument, it will print information about that plugin or element.

!gst-inspect-1.0
adpcmdec:  adpcmdec: ADPCM decoder
inter:  interaudiosrc: Internal audio source
inter:  interaudiosink: Internal audio sink
inter:  intersubsrc: Internal subtitle source
inter:  intersubsink: Internal subtitle sink
inter:  intervideosrc: Internal video source
inter:  intervideosink: Internal video sink
audiotestsrc:  audiotestsrc: Audio test source
faceoverlay:  faceoverlay: faceoverlay
taglib:  id3v2mux: TagLib-based ID3v2 Muxer
taglib:  apev2mux: TagLib-based APEv2 Muxer
autoconvert:  autoconvert: Select convertor based on caps
autoconvert:  autovideoconvert: Select color space convertor based on caps
speex:  speexenc: Speex audio encoder
speex:  speexdec: Speex audio decoder
fluidsynthmidi:  fluiddec: Fluidsynth
wildmidi:  wildmididec: WildMidi-based MIDI music decoder
gaudieffects:  burn: Burn
gaudieffects:  chromium: Chromium
gaudieffects:  dilate: Dilate
gaudieffects:  dodge: Dodge
gaudieffects:  exclusion: Exclusion
gaudieffects:  solarize: Solarize
gaudieffects:  gaussianblur: GstGaussianBlur
cdparanoia:  cdparanoiasrc: CD Audio (cdda) Source, Paranoia IV
voamrwbenc:  voamrwbenc: AMR-WB audio encoder
modplug:  modplug: ModPlug
teletext:  teletextdec: Teletext decoder
asfmux:  asfmux: ASF muxer
asfmux:  rtpasfpay: RTP ASF payloader
asfmux:  asfparse: ASF parser
icydemux:  icydemux: ICY tag demuxer
interleave:  interleave: Audio interleaver
interleave:  deinterleave: Audio deinterleaver
mpeg2enc:  mpeg2enc: mpeg2enc video encoder
amrwbdec:  amrwbdec: AMR-WB audio decoder
shapewipe:  shapewipe: Shape Wipe transition filter
accurip:  accurip: AccurateRip(TM) CRC element
jp2kdecimator:  jp2kdecimator: JPEG2000 decimator
voaacenc:  voaacenc: AAC audio encoder
bz2:  bz2enc: BZ2 encoder
bz2:  bz2dec: BZ2 decoder
theora:  theoradec: Theora video decoder
theora:  theoraenc: Theora video encoder
theora:  theoraparse: Theora video parser
navigationtest:  navigationtest: Video navigation test
subparse: subparse_typefind: srt, sub, mpsub, mdvd, smi, txt, dks, vtt
subparse:  subparse: Subtitle parser
subparse:  ssaparse: SSA Subtitle Parser
webrtc:  webrtcbin: WebRTC Bin
curl:  curlhttpsink: Curl http sink
curl:  curlfilesink: Curl file sink
curl:  curlftpsink: Curl ftp sink
curl:  curlsmtpsink: Curl smtp sink
curl:  curlhttpsrc: HTTP Client Source using libcURL
aiff:  aiffparse: AIFF audio demuxer
aiff:  aiffmux: AIFF audio muxer
audiovisualizers:  spacescope: Stereo visualizer
audiovisualizers:  spectrascope: Frequency spectrum scope
audiovisualizers:  synaescope: Synaescope
audiovisualizers:  wavescope: Waveform oscilloscope
cdio:  cdiocddasrc: CD audio source (CDDA)
kms:  kmssink: KMS video sink
ivtc:  ivtc: Inverse Telecine
ivtc:  combdetect: Comb Detect
asf:  asfdemux: ASF Demuxer
asf:  rtspwms: WMS RTSP Extension
asf:  rtpasfdepay: RTP ASF packet depayloader
sndfile:  sfdec: Sndfile decoder
audioparsers:  aacparse: AAC audio stream parser
audioparsers:  amrparse: AMR audio stream parser
audioparsers:  ac3parse: AC3 audio stream parser
audioparsers:  dcaparse: DTS Coherent Acoustics audio stream parser
audioparsers:  flacparse: FLAC audio parser
audioparsers:  mpegaudioparse: MPEG1 Audio Parser
audioparsers:  sbcparse: SBC audio parser
audioparsers:  wavpackparse: Wavpack audio stream parser
geometrictransform:  circle: circle
geometrictransform:  diffuse: diffuse
geometrictransform:  kaleidoscope: kaleidoscope
geometrictransform:  marble: marble
geometrictransform:  pinch: pinch
geometrictransform:  rotate: rotate
geometrictransform:  sphere: sphere
geometrictransform:  twirl: twirl
geometrictransform:  waterripple: waterripple
geometrictransform:  stretch: stretch
geometrictransform:  bulge: bulge
geometrictransform:  tunnel: tunnel
geometrictransform:  square: square
geometrictransform:  mirror: mirror
geometrictransform:  fisheye: fisheye
geometrictransform:  perspective: perspective
1394:  dv1394src: Firewire (1394) DV video source
1394:  hdv1394src: Firewire (1394) HDV video source
lame:  lamemp3enc: L.A.M.E. mp3 encoder
fbdevsink:  fbdevsink: fbdev video sink
colormanagement:  lcms: LCMS2 ICC correction
debug:  breakmydata: Break my data
debug:  capssetter: CapsSetter
debug:  rndbuffersize: Random buffer size
debug:  navseek: Seek based on left-right arrows
debug:  pushfilesrc: Push File Source
debug:  progressreport: Progress report
debug:  taginject: TagInject
debug:  testsink: Test plugin
debug:  cpureport: CPU report
openjpeg:  openjpegdec: OpenJPEG JPEG2000 decoder
openjpeg:  openjpegenc: OpenJPEG JPEG2000 encoder
proxy:  proxysrc: Proxy source
proxy:  proxysink: Proxy Sink
rawparse:  unalignedaudioparse: unalignedaudioparse
rawparse:  unalignedvideoparse: unalignedvideoparse
rawparse:  rawaudioparse: rawaudioparse
rawparse:  rawvideoparse: rawvideoparse
ximagesink:  ximagesink: Video sink
videofiltersbad:  scenechange: Scene change detector
videofiltersbad:  zebrastripe: Zebra stripe overlay
videofiltersbad:  videodiff: Video Diff
rtmp:  rtmpsrc: RTMP Source
rtmp:  rtmpsink: RTMP output sink
pango:  textoverlay: Text overlay
pango:  timeoverlay: Time overlay
pango:  clockoverlay: Clock overlay
pango:  textrender: Text renderer
vmnc:  vmncdec: VMnc video decoder
volume:  volume: Volume
dtmf:  dtmfsrc: DTMF tone generator
dtmf:  rtpdtmfsrc: RTP DTMF packet generator
dtmf:  rtpdtmfdepay: RTP DTMF packet depayloader
opengl:  glimagesink: GL Sink Bin
opengl:  glimagesinkelement: OpenGL video sink
opengl:  glupload: OpenGL uploader
opengl:  gldownload: OpenGL downloader
opengl:  glcolorconvert: OpenGL color converter
opengl:  glcolorbalance: Video balance
opengl:  glfilterbin: GL Filter Bin
opengl:  glsinkbin: GL Sink Bin
opengl:  glsrcbin: GL Src Bin
opengl:  glmixerbin: OpenGL video_mixer empty bin
opengl:  glfiltercube: OpenGL cube filter
opengl:  gltransformation: OpenGL transformation filter
opengl:  glvideoflip: OpenGL video flip filter
opengl:  gleffects: Gstreamer OpenGL Effects
opengl:  gleffects_identity: Do nothing Effect
opengl:  gleffects_mirror: Mirror Effect
opengl:  gleffects_squeeze: Squeeze Effect
opengl:  gleffects_stretch: Stretch Effect
opengl:  gleffects_tunnel: Light Tunnel Effect
opengl:  gleffects_fisheye: FishEye Effect
opengl:  gleffects_twirl: Twirl Effect
opengl:  gleffects_bulge: Bulge Effect
opengl:  gleffects_square: Square Effect
opengl:  gleffects_heat: Heat Signature Effect
opengl:  gleffects_sepia: Sepia Toning Effect
opengl:  gleffects_xpro: Cross Processing Effect
opengl:  gleffects_lumaxpro: Luma Cross Processing Effect
opengl:  gleffects_xray: Glowing negative effect
opengl:  gleffects_sin: All Grey but Red Effect
opengl:  gleffects_glow: Glow Lighting Effect
opengl:  gleffects_sobel: Sobel edge detection Effect
opengl:  gleffects_blur: Blur with 9x9 separable convolution Effect
opengl:  gleffects_laplacian: Laplacian Convolution Demo Effect
opengl:  glcolorscale: OpenGL color scale
opengl:  glvideomixer: OpenGL video_mixer bin
opengl:  glvideomixerelement: OpenGL video_mixer
opengl:  glshader: OpenGL fragment shader filter
opengl:  glfilterapp: OpenGL application filter
opengl:  glviewconvert: OpenGL Multiview/3D conversion filter
opengl:  glstereosplit: GLStereoSplit
opengl:  glstereomix: OpenGL stereo video combiner
opengl:  gltestsrc: Video test source
opengl:  gldeinterlace: OpenGL deinterlacing filter
opengl:  glalpha: OpenGL Alpha Filter
opengl:  gloverlaycompositor: OpenGL overlaying filter
opengl:  gloverlay: Gstreamer OpenGL Overlay
opengl:  glfilterglass: OpenGL glass filter
opengl:  glmosaic: OpenGL mosaic
opengl:  gldifferencematte: Gstreamer OpenGL DifferenceMatte
ipcpipeline:  ipcpipelinesrc: Inter-process Pipeline Source
ipcpipeline:  ipcpipelinesink: Inter-process Pipeline Sink
ipcpipeline:  ipcslavepipeline: Inter-process slave pipeline
videofilter:  gamma: Video gamma correction
videofilter:  videobalance: Video balance
videofilter:  videoflip: Video flipper
videofilter:  videomedian: Median effect
autodetect:  autovideosink: Auto video sink
autodetect:  autovideosrc: Auto video source
autodetect:  autoaudiosink: Auto audio sink
autodetect:  autoaudiosrc: Auto audio source
wavpack:  wavpackdec: Wavpack audio decoder
wavpack:  wavpackenc: Wavpack audio encoder
dtls:  dtlsenc: DTLS Encoder
dtls:  dtlsdec: DTLS Decoder
dtls:  dtlssrtpdec: DTLS-SRTP Decoder
dtls:  dtlssrtpenc: DTLS-SRTP Encoder
dtls:  dtlssrtpdemux: DTLS SRTP Demultiplexer
bluez:  a2dpsink: Bluetooth A2DP sink
bluez:  avdtpsink: Bluetooth AVDTP sink
bluez:  avdtpsrc: Bluetooth AVDTP Source
dvdspu:  dvdspu: Sub-picture Overlay
id3tag:  id3mux: ID3 v1 and v2 Muxer
spandsp:  spanplc: SpanDSP PLC
spandsp:  dtmfdetect: DTMF detector element
spandsp:  tonegeneratesrc: Telephony Tone  Generator source
multipart:  multipartdemux: Multipart demuxer
multipart:  multipartmux: Multipart muxer
vpx:  vp8dec: On2 VP8 Decoder
vpx:  vp8enc: On2 VP8 Encoder
vpx:  vp9dec: On2 VP9 Decoder
vpx:  vp9enc: On2 VP9 Encoder
videoconvert:  videoconvert: Colorspace converter
timecode:  timecodestamper: Timecode stamper
timecode:  avwait: Timecode Wait
smoothstreaming:  mssdemux: Smooth Streaming demuxer
flac:  flacenc: FLAC audio encoder
flac:  flacdec: FLAC audio decoder
flac:  flactag: FLAC tagger
spectrum:  spectrum: Spectrum analyzer
tcp:  socketsrc: socket source
tcp:  tcpclientsink: TCP client sink
tcp:  tcpclientsrc: TCP client source
tcp:  tcpserversink: TCP server sink
tcp:  tcpserversrc: TCP server source
tcp:  multifdsink: Multi filedescriptor sink
tcp:  multisocketsink: Multi socket sink
ximagesrc:  ximagesrc: Ximage video source
siren:  sirendec: Siren Decoder element
siren:  sirenenc: Siren Encoder element
x264:  x264enc: x264enc
dvbsuboverlay:  dvbsuboverlay: DVB Subtitles Overlay
camerabin:  viewfinderbin: Viewfinder Bin
camerabin:  wrappercamerabinsrc: Wrapper camera src element for camerabin2
camerabin:  camerabin: Camera Bin
waylandsink:  waylandsink: wayland video sink
bs2b:  bs2b: Crossfeed effect
sctp:  sctpenc: SCTP Encoder
sctp:  sctpdec: SCTP Decoder
amrnb:  amrnbdec: AMR-NB audio decoder
amrnb:  amrnbenc: AMR-NB audio encoder
festival:  festival: Festival Text-to-Speech synthesizer
videorate:  videorate: Video rate adjuster
mpegpsdemux:  mpegpsdemux: MPEG Program Stream Demuxer
adder:  adder: Adder
dvdsub:  dvdsubdec: DVD subtitle decoder
dvdsub:  dvdsubparse: DVD subtitle parser
yadif:  yadif: YADIF deinterlacer
freeverb:  freeverb: Reverberation/room effect
openexr:  openexrdec: OpenEXR decoder
cutter:  cutter: Audio cutter
netsim:  netsim: Network Simulator
level:  level: Level
ivfparse:  ivfparse: IVF parser
rtponvif:  rtponviftimestamp: ONVIF NTP timestamps RTP extension
rtponvif:  rtponvifparse: ONVIF NTP timestamps RTP extension
ofa:  ofa: OFA
segmentclip:  audiosegmentclip: Audio buffer segment clipper
segmentclip:  videosegmentclip: Video buffer segment clipper
x265:  x265enc: x265enc
wavenc:  wavenc: WAV audio muxer
sbc:  sbcdec: Bluetooth SBC audio decoder
sbc:  sbcenc: Bluetooth SBC audio encoder
mxf:  mxfdemux: MXF Demuxer
mxf:  mxfmux: MXF muxer
alphacolor:  alphacolor: Alpha color filter
de265:  libde265dec: HEVC/H.265 decoder
videomixer:  videomixer: Video mixer 2
mplex:  mplex: mplex video multiplexer
deinterlace:  deinterlace: Deinterlacer
flv:  flvdemux: FLV Demuxer
flv:  flvmux: FLV muxer
subenc:  srtenc: Srt encoder
subenc:  webvttenc: WebVTT encoder
audiobuffersplit:  audiobuffersplit: Audio Buffer Split
replaygain:  rganalysis: ReplayGain analysis
replaygain:  rglimiter: ReplayGain limiter
replaygain:  rgvolume: ReplayGain volume
dvdlpcmdec:  dvdlpcmdec: DVD LPCM Audio decoder
zbar:  zbar: Barcode detector
closedcaption:  cccombiner: Closed Caption Combiner
closedcaption:  ccconverter: Closed Caption Converter
closedcaption:  ccextractor: Closed Caption Extractor
closedcaption:  line21decoder: Line 21 CC Decoder
closedcaption:  cc708overlay: Closed Caption overlay
closedcaption:  line21encoder: Line 21 CC Encoder
chromaprint:  chromaprint: Chromaprint fingerprinting element
realmedia:  rmdemux: RealMedia Demuxer
realmedia:  rademux: RealAudio Demuxer
realmedia:  rdtdepay: RDT packet parser
realmedia:  rdtmanager: RTP Decoder
realmedia:  rtspreal: RealMedia RTSP Extension
realmedia:  pnmsrc: PNM packet receiver
typefindfunctions: video/x-ms-asf: asf, wm, wma, wmv
typefindfunctions: audio/x-musepack: mpc, mpp, mp+
typefindfunctions: audio/x-au: au, snd
typefindfunctions: video/x-msvideo: avi
typefindfunctions: audio/qcelp: qcp
typefindfunctions: video/x-cdxa: dat
typefindfunctions: video/x-vcd: dat
typefindfunctions: audio/x-imelody: imy, ime, imelody
typefindfunctions: application/x-scc: scc
typefindfunctions: application/x-mcc: mcc
typefindfunctions: audio/midi: mid, midi
typefindfunctions: audio/riff-midi: mid, midi
typefindfunctions: audio/mobile-xmf: mxmf
typefindfunctions: video/x-fli: flc, fli
typefindfunctions: application/x-id3v2: mp3, mp2, mp1, mpga, ogg, flac, tta
typefindfunctions: application/x-id3v1: mp3, mp2, mp1, mpga, ogg, flac, tta
typefindfunctions: application/x-apetag: mp3, ape, mpc, wv
typefindfunctions: audio/x-ttafile: tta
typefindfunctions: audio/x-mod: 669, amf, ams, dbm, digi, dmf, dsm, gdm, far, imf, it, j2b, mdl, med, mod, mt2, mtm, okt, psm, ptm, sam, s3m, stm, stx, ult, umx, xm
typefindfunctions: audio/mpeg: mp3, mp2, mp1, mpga
typefindfunctions: audio/x-ac3: ac3, eac3
typefindfunctions: audio/x-dts: dts
typefindfunctions: audio/x-gsm: gsm
typefindfunctions: video/mpeg-sys: mpe, mpeg, mpg
typefindfunctions: video/mpegts: ts, mts
typefindfunctions: application/ogg: ogg, oga, ogv, ogm, ogx, spx, anx, axa, axv
typefindfunctions: video/mpeg-elementary: mpv, mpeg, mpg
typefindfunctions: video/mpeg4: m4v
typefindfunctions: video/x-h263: h263, 263
typefindfunctions: video/x-h264: h264, x264, 264
typefindfunctions: video/x-h265: h265, x265, 265
typefindfunctions: video/x-nuv: nuv
typefindfunctions: audio/x-m4a: m4a
typefindfunctions: application/x-3gp: 3gp
typefindfunctions: video/quicktime: mov, mp4
typefindfunctions: image/x-quicktime: qif, qtif, qti
typefindfunctions: image/jp2: jp2
typefindfunctions: image/x-jpc: jpc, j2k
typefindfunctions: video/mj2: mj2
typefindfunctions: text/html: htm, html
typefindfunctions: application/vnd.rn-realmedia: ra, ram, rm, rmvb
typefindfunctions: application/x-pn-realaudio: ra, ram, rm, rmvb
typefindfunctions: application/x-shockwave-flash: swf, swfl
typefindfunctions: application/xges: xges
typefindfunctions: application/dash+xml: mpd, MPD
typefindfunctions: application/vnd.ms-sstr+xml: no extensions
typefindfunctions: video/x-flv: flv
typefindfunctions: text/plain: txt
typefindfunctions: text/utf-16: txt
typefindfunctions: text/utf-32: txt
typefindfunctions: text/uri-list: ram
typefindfunctions: application/itc: itc
typefindfunctions: application/x-hls: m3u8
typefindfunctions: application/sdp: sdp
typefindfunctions: application/smil: smil
typefindfunctions: application/ttml+xml: ttml+xml
typefindfunctions: application/xml: xml
typefindfunctions: audio/x-wav: wav
typefindfunctions: audio/x-aiff: aiff, aif, aifc
typefindfunctions: audio/x-svx: iff, svx
typefindfunctions: audio/x-paris: paf
typefindfunctions: audio/x-nist: nist
typefindfunctions: audio/x-voc: voc
typefindfunctions: audio/x-sds: sds
typefindfunctions: audio/x-ircam: sf
typefindfunctions: audio/x-w64: w64
typefindfunctions: audio/x-rf64: rf64
typefindfunctions: audio/x-shorten: shn
typefindfunctions: application/x-ape: ape
typefindfunctions: image/jpeg: jpg, jpe, jpeg
typefindfunctions: image/gif: gif
typefindfunctions: image/png: png
typefindfunctions: image/bmp: bmp
typefindfunctions: image/tiff: tif, tiff
typefindfunctions: image/webp: webp
typefindfunctions: image/x-exr: exr
typefindfunctions: image/x-portable-pixmap: pnm, ppm, pgm, pbm
typefindfunctions: video/x-matroska: mkv, mka, mk3d, webm
typefindfunctions: application/mxf: mxf
typefindfunctions: video/x-mve: mve
typefindfunctions: video/x-dv: dv, dif
typefindfunctions: audio/x-amr-nb-sh: amr
typefindfunctions: audio/x-amr-wb-sh: amr
typefindfunctions: audio/iLBC-sh: ilbc
typefindfunctions: audio/x-sbc: sbc
typefindfunctions: audio/x-sid: sid
typefindfunctions: image/x-xcf: xcf
typefindfunctions: video/x-mng: mng
typefindfunctions: image/x-jng: jng
typefindfunctions: image/x-xpixmap: xpm
typefindfunctions: image/x-sun-raster: ras
typefindfunctions: application/x-bzip: bz2
typefindfunctions: application/x-gzip: gz
typefindfunctions: application/zip: zip
typefindfunctions: application/x-compress: Z
typefindfunctions: subtitle/x-kate: no extensions
typefindfunctions: application/x-subtitle-vtt: vtt
typefindfunctions: audio/x-flac: flac
typefindfunctions: audio/x-vorbis: no extensions
typefindfunctions: video/x-theora: no extensions
typefindfunctions: application/x-ogm-video: no extensions
typefindfunctions: application/x-ogm-audio: no extensions
typefindfunctions: application/x-ogm-text: no extensions
typefindfunctions: audio/x-speex: no extensions
typefindfunctions: audio/x-celt: no extensions
typefindfunctions: application/x-ogg-skeleton: no extensions
typefindfunctions: text/x-cmml: no extensions
typefindfunctions: application/x-executable: no extensions
typefindfunctions: audio/aac: aac, adts, adif, loas
typefindfunctions: audio/x-spc: spc
typefindfunctions: audio/x-wavpack: wv, wvp
typefindfunctions: audio/x-wavpack-correction: wvc
typefindfunctions: audio/x-caf: caf
typefindfunctions: application/postscript: ps
typefindfunctions: image/svg+xml: svg
typefindfunctions: application/x-rar: rar
typefindfunctions: application/x-tar: tar
typefindfunctions: application/x-ar: a
typefindfunctions: application/x-ms-dos-executable: dll, exe, ocx, sys, scr, msstyles, cpl
typefindfunctions: video/x-dirac: no extensions
typefindfunctions: multipart/x-mixed-replace: no extensions
typefindfunctions: application/x-mmsh: no extensions
typefindfunctions: video/vivo: viv
typefindfunctions: audio/x-nsf: nsf
typefindfunctions: audio/x-gym: gym
typefindfunctions: audio/x-ay: ay
typefindfunctions: audio/x-gbs: gbs
typefindfunctions: audio/x-vgm: vgm
typefindfunctions: audio/x-sap: sap
typefindfunctions: video/x-ivf: ivf
typefindfunctions: audio/x-kss: kss
typefindfunctions: application/pdf: pdf
typefindfunctions: application/msword: doc
typefindfunctions: image/vnd.adobe.photoshop: psd
typefindfunctions: image/vnd.wap.wbmp: no extensions
typefindfunctions: application/x-yuv4mpeg: no extensions
typefindfunctions: image/x-icon: no extensions
typefindfunctions: image/x-degas: no extensions
typefindfunctions: application/octet-stream: no extensions
typefindfunctions: application/x-ssa: ssa, ass
typefindfunctions: video/x-pva: pva
typefindfunctions: audio/x-xi: xi
typefindfunctions: audio/audible: aa, aax
typefindfunctions: audio/x-tap-tap: tap
typefindfunctions: audio/x-tap-dmp: dmp
openmpt:  openmptdec: OpenMPT-based module music decoder
coloreffects:  coloreffects: Color Look-up Table filter
coloreffects:  chromahold: Chroma hold filter
rtsp:  rtspsrc: RTSP packet receiver
rtsp:  rtpdec: RTP Decoder
videobox:  videobox: Video box filter
goom:  goom: GOOM: what a GOOM!
videoscale:  videoscale: Video scaler
interlace:  interlace: Interlace filter
auparse:  auparse: AU audio demuxer
shm:  shmsrc: Shared Memory Source
shm:  shmsink: Shared Memory Sink
aasink:  aasink: ASCII art video sink
audiorate:  audiorate: Audio rate adjuster
gio:  giosink: GIO sink
gio:  giosrc: GIO source
gio:  giostreamsink: GIO stream sink
gio:  giostreamsrc: GIO stream source
dvb:  dvbsrc: DVB Source
dvb:  dvbbasebin: DVB bin
gme:  gmedec: Gaming console music file decoder
dtsdec:  dtsdec: DTS audio decoder
mpegpsmux:  mpegpsmux: MPEG Program Stream Muxer
midi:  midiparse: MidiParse
jpeg:  jpegenc: JPEG image encoder
jpeg:  jpegdec: JPEG image decoder
bayer:  bayer2rgb: Bayer to RGB decoder for cameras
bayer:  rgb2bayer: RGB to Bayer converter
mms:  mmssrc: MMS streaming source
dvdread:  dvdreadsrc: DVD Source
videotestsrc:  videotestsrc: Video test source
debugutilsbad:  checksumsink: Checksum sink
debugutilsbad:  fpsdisplaysink: Measure and show framerate on videosink
debugutilsbad:  chopmydata: FIXME
debugutilsbad:  compare: Compare buffers
debugutilsbad:  debugspy: DebugSpy
debugutilsbad:  watchdog: Watchdog
debugutilsbad:  errorignore: Convert some GstFlowReturn types into others
debugutilsbad:  fakevideosink: Fake Video Sink
debugutilsbad:  testsrcbin: Generic bin
ossaudio:  osssrc: Audio Source (OSS)
ossaudio:  osssink: Audio Sink (OSS)
effectv:  edgetv: EdgeTV effect
effectv:  agingtv: AgingTV effect
effectv:  dicetv: DiceTV effect
effectv:  warptv: WarpTV effect
effectv:  shagadelictv: ShagadelicTV
effectv:  vertigotv: VertigoTV effect
effectv:  revtv: RevTV effect
effectv:  quarktv: QuarkTV effect
effectv:  optv: OpTV effect
effectv:  radioactv: RadioacTV effect
effectv:  streaktv: StreakTV effect
effectv:  rippletv: RippleTV effect
imagefreeze:  imagefreeze: Still frame stream generator
legacyrawparse:  videoparse: Video Parse
legacyrawparse:  audioparse: Audio Parse
musepack:  musepackdec: Musepack decoder
dashdemux:  dashdemux: DASH Demuxer
rfbsrc:  rfbsrc: Rfb source
aom:  av1enc: AV1 Encoder
aom:  av1dec: AV1 Decoder
xingmux:  xingmux: MP3 Xing muxer
compositor:  compositor: Compositor
xvimagesink:  xvimagesink: Video sink
audiomixer:  audiomixer: AudioMixer
audiomixer:  liveadder: AudioMixer
audiomixer:  audiointerleave: AudioInterleave
opusparse:  opusparse: Opus audio parser
udp:  udpsink: UDP packet sender
udp:  multiudpsink: UDP packet sender
udp:  dynudpsink: UDP packet sender
udp:  udpsrc: UDP packet receiver
isomp4:  qtdemux: QuickTime demuxer
isomp4:  rtpxqtdepay: RTP packet depayloader
isomp4:  qtmux: QuickTime Muxer
isomp4:  mp4mux: MP4 Muxer
isomp4:  ismlmux: ISML Muxer
isomp4:  3gppmux: 3GPP Muxer
isomp4:  mj2mux: MJ2 Muxer
isomp4:  qtmoovrecover: QT Moov Recover
speed:  speed: Speed
rtp:  rtpac3depay: RTP AC3 depayloader
rtp:  rtpac3pay: RTP AC3 audio payloader
rtp:  rtpbvdepay: RTP BroadcomVoice depayloader
rtp:  rtpbvpay: RTP BV Payloader
rtp:  rtpceltdepay: RTP CELT depayloader
rtp:  rtpceltpay: RTP CELT payloader
rtp:  rtpdvdepay: RTP DV Depayloader
rtp:  rtpdvpay: RTP DV Payloader
rtp:  rtpgstdepay: GStreamer depayloader
rtp:  rtpgstpay: RTP GStreamer payloader
rtp:  rtpilbcpay: RTP iLBC Payloader
rtp:  rtpilbcdepay: RTP iLBC depayloader
rtp:  rtpg722depay: RTP audio depayloader
rtp:  rtpg722pay: RTP audio payloader
rtp:  rtpg723depay: RTP G.723 depayloader
rtp:  rtpg723pay: RTP G.723 payloader
rtp:  rtpg726depay: RTP G.726 depayloader
rtp:  rtpg726pay: RTP G.726 payloader
rtp:  rtpg729depay: RTP G.729 depayloader
rtp:  rtpg729pay: RTP G.729 payloader
rtp:  rtpgsmdepay: RTP GSM depayloader
rtp:  rtpgsmpay: RTP GSM payloader
rtp:  rtpamrdepay: RTP AMR depayloader
rtp:  rtpamrpay: RTP AMR payloader
rtp:  rtppcmadepay: RTP PCMA depayloader
rtp:  rtppcmudepay: RTP PCMU depayloader
rtp:  rtppcmupay: RTP PCMU payloader
rtp:  rtppcmapay: RTP PCMA payloader
rtp:  rtpmpadepay: RTP MPEG audio depayloader
rtp:  rtpmpapay: RTP MPEG audio payloader
rtp:  rtpmparobustdepay: RTP MPEG audio depayloader
rtp:  rtpmpvdepay: RTP MPEG video depayloader
rtp:  rtpmpvpay: RTP MPEG2 ES video payloader
rtp:  rtpopusdepay: RTP Opus packet depayloader
rtp:  rtpopuspay: RTP Opus payloader
rtp:  rtph261pay: RTP H261 packet payloader
rtp:  rtph261depay: RTP H261 depayloader
rtp:  rtph263ppay: RTP H263 payloader
rtp:  rtph263pdepay: RTP H263 depayloader
rtp:  rtph263depay: RTP H263 depayloader
rtp:  rtph263pay: RTP H263 packet payloader
rtp:  rtph264depay: RTP H264 depayloader
rtp:  rtph264pay: RTP H264 payloader
rtp:  rtph265depay: RTP H265 depayloader
rtp:  rtph265pay: RTP H265 payloader
rtp:  rtpj2kdepay: RTP JPEG 2000 depayloader
rtp:  rtpj2kpay: RTP JPEG 2000 payloader
rtp:  rtpjpegdepay: RTP JPEG depayloader
rtp:  rtpjpegpay: RTP JPEG payloader
rtp:  rtpklvdepay: RTP KLV Depayloader
rtp:  rtpklvpay: RTP KLV Payloader
rtp:  rtpL8pay: RTP audio payloader
rtp:  rtpL8depay: RTP audio depayloader
rtp:  rtpL16pay: RTP audio payloader
rtp:  rtpL16depay: RTP audio depayloader
rtp:  rtpL24pay: RTP audio payloader
rtp:  rtpL24depay: RTP audio depayloader
rtp:  asteriskh263: RTP Asterisk H263 depayloader
rtp:  rtpmp1sdepay: RTP MPEG1 System Stream depayloader
rtp:  rtpmp2tdepay: RTP MPEG Transport Stream depayloader
rtp:  rtpmp2tpay: RTP MPEG2 Transport Stream payloader
rtp:  rtpmp4vpay: RTP MPEG4 Video payloader
rtp:  rtpmp4vdepay: RTP MPEG4 video depayloader
rtp:  rtpmp4apay: RTP MPEG4 audio payloader
rtp:  rtpmp4adepay: RTP MPEG4 audio depayloader
rtp:  rtpmp4gdepay: RTP MPEG4 ES depayloader
rtp:  rtpmp4gpay: RTP MPEG4 ES payloader
rtp:  rtpqcelpdepay: RTP QCELP depayloader
rtp:  rtpqdm2depay: RTP QDM2 depayloader
rtp:  rtpsbcdepay: RTP SBC audio depayloader
rtp:  rtpsbcpay: RTP packet payloader
rtp:  rtpsirenpay: RTP Payloader for Siren Audio
rtp:  rtpsirendepay: RTP Siren packet depayloader
rtp:  rtpspeexpay: RTP Speex payloader
rtp:  rtpspeexdepay: RTP Speex depayloader
rtp:  rtpsv3vdepay: RTP SVQ3 depayloader
rtp:  rtptheoradepay: RTP Theora depayloader
rtp:  rtptheorapay: RTP Theora payloader
rtp:  rtpvorbisdepay: RTP Vorbis depayloader
rtp:  rtpvorbispay: RTP Vorbis payloader
rtp:  rtpvp8depay: RTP VP8 depayloader
rtp:  rtpvp8pay: RTP VP8 payloader
rtp:  rtpvp9depay: RTP VP9 depayloader
rtp:  rtpvp9pay: RTP VP9 payloader
rtp:  rtpvrawdepay: RTP Raw Video depayloader
rtp:  rtpvrawpay: RTP Raw Video payloader
rtp:  rtpstreampay: RTP Stream Payloading
rtp:  rtpstreamdepay: RTP Stream Depayloading
rtp:  rtpredenc: Redundant Audio Data (RED) Encoder
rtp:  rtpreddec: Redundant Audio Data (RED) Decoder
rtp:  rtpulpfecdec: RTP FEC Decoder
rtp:  rtpulpfecenc: RTP FEC Encoder
rtp:  rtpstorage: RTP storage
sdpelem:  sdpdemux: SDP session setup
sdpelem:  sdpsrc: SDP Source
audiofx:  audiopanorama: Stereo positioning
audiofx:  audioinvert: Audio inversion
audiofx:  audiokaraoke: AudioKaraoke
audiofx:  audioamplify: Audio amplifier
audiofx:  audiodynamic: Dynamic range controller
audiofx:  audiocheblimit: Low pass & high pass filter
audiofx:  audiochebband: Band pass & band reject filter
audiofx:  audioiirfilter: Audio IIR filter
audiofx:  audiowsinclimit: Low pass & high pass filter
audiofx:  audiowsincband: Band pass & band reject filter
audiofx:  audiofirfilter: Audio FIR filter
audiofx:  audioecho: Audio echo
audiofx:  scaletempo: Scaletempo
audiofx:  stereo: Stereo effect
alaw:  alawenc: A Law audio encoder
alaw:  alawdec: A Law audio decoder
videoparsersbad:  h263parse: H.263 parser
videoparsersbad:  h264parse: H.264 parser
videoparsersbad:  diracparse: Dirac parser
videoparsersbad:  mpegvideoparse: MPEG video elementary stream parser
videoparsersbad:  mpeg4videoparse: MPEG 4 video elementary stream parser
videoparsersbad:  pngparse: PNG parser
videoparsersbad:  jpeg2000parse: JPEG 2000 parser
videoparsersbad:  h265parse: H.265 parser
videoparsersbad:  vc1parse: VC1 parser
libav:  avenc_comfortnoise: libav RFC 3389 comfort noise generator encoder
libav:  avenc_s302m: libav SMPTE 302M encoder
libav:  avenc_aac: libav AAC (Advanced Audio Coding) encoder
libav:  avenc_ac3: libav ATSC A/52A (AC-3) encoder
libav:  avenc_ac3_fixed: libav ATSC A/52A (AC-3) encoder
libav:  avenc_alac: libav ALAC (Apple Lossless Audio Codec) encoder
libav:  avenc_aptx: libav aptX (Audio Processing Technology for Bluetooth) encoder
libav:  avenc_aptx_hd: libav aptX HD (Audio Processing Technology for Bluetooth) encoder
libav:  avenc_dca: libav DCA (DTS Coherent Acoustics) encoder
libav:  avenc_eac3: libav ATSC A/52 E-AC-3 encoder
libav:  avenc_g723_1: libav G.723.1 encoder
libav:  avenc_mlp: libav MLP (Meridian Lossless Packing) encoder
libav:  avenc_mp2: libav MP2 (MPEG audio layer 2) encoder
libav:  avenc_mp2fixed: libav MP2 fixed point (MPEG audio layer 2) encoder
libav:  avenc_nellymoser: libav Nellymoser Asao encoder
libav:  avenc_opus: libav Opus encoder
libav:  avenc_real_144: libav RealAudio 1.0 (14.4K) encoder
libav:  avenc_sbc: libav SBC (low-complexity subband codec) encoder
libav:  avenc_sonic: libav Sonic encoder
libav:  avenc_sonicls: libav Sonic lossless encoder
libav:  avenc_truehd: libav TrueHD encoder
libav:  avenc_tta: libav TTA (True Audio) encoder
libav:  avenc_wavpack: libav WavPack encoder
libav:  avenc_wmav1: libav Windows Media Audio 1 encoder
libav:  avenc_wmav2: libav Windows Media Audio 2 encoder
libav:  avenc_pcm_vidc: libav PCM Archimedes VIDC encoder
libav:  avenc_roq_dpcm: libav id RoQ DPCM encoder
libav:  avenc_adpcm_adx: libav SEGA CRI ADX ADPCM encoder
libav:  avenc_g722: libav G.722 ADPCM encoder
libav:  avenc_g726: libav G.726 ADPCM encoder
libav:  avenc_g726le: libav G.726 little endian ADPCM ("right-justified") encoder
libav:  avenc_adpcm_ima_qt: libav ADPCM IMA QuickTime encoder
libav:  avenc_adpcm_ima_wav: libav ADPCM IMA WAV encoder
libav:  avenc_adpcm_ms: libav ADPCM Microsoft encoder
libav:  avenc_adpcm_swf: libav ADPCM Shockwave Flash encoder
libav:  avenc_adpcm_yamaha: libav ADPCM Yamaha encoder
libav:  avenc_a64multi: libav Multicolor charset for Commodore 64 encoder
libav:  avenc_a64multi5: libav Multicolor charset for Commodore 64, extended with 5th color (colram) encoder
libav:  avenc_alias_pix: libav Alias/Wavefront PIX image encoder
libav:  avenc_amv: libav AMV Video encoder
libav:  avenc_apng: libav APNG (Animated Portable Network Graphics) image encoder
libav:  avenc_asv1: libav ASUS V1 encoder
libav:  avenc_asv2: libav ASUS V2 encoder
libav:  avenc_avrp: libav Avid 1:1 10-bit RGB Packer encoder
libav:  avenc_avui: libav Avid Meridien Uncompressed encoder
libav:  avenc_bmp: libav BMP (Windows and OS/2 bitmap) encoder
libav:  avenc_cinepak: libav Cinepak encoder
libav:  avenc_cljr: libav Cirrus Logic AccuPak encoder
libav:  avenc_dnxhd: libav VC3/DNxHD encoder
libav:  avenc_dpx: libav DPX (Digital Picture Exchange) image encoder
libav:  avenc_dvvideo: libav DV (Digital Video) encoder
libav:  avenc_ffv1: libav FFmpeg video codec #1 encoder
libav:  avenc_ffvhuff: libav Huffyuv FFmpeg variant encoder
libav:  avenc_fits: libav Flexible Image Transport System encoder
libav:  avenc_flashsv: libav Flash Screen Video encoder
libav:  avenc_flashsv2: libav Flash Screen Video Version 2 encoder
libav:  avenc_flv: libav FLV / Sorenson Spark / Sorenson H.263 (Flash Video) encoder
libav:  avenc_h261: libav H.261 encoder
libav:  avenc_h263: libav H.263 / H.263-1996 encoder
libav:  avenc_h263p: libav H.263+ / H.263-1998 / H.263 version 2 encoder
libav:  avenc_hap: libav Vidvox Hap encoder
libav:  avenc_huffyuv: libav Huffyuv / HuffYUV encoder
libav:  avenc_jpeg2000: libav JPEG 2000 encoder
libav:  avenc_jpegls: libav JPEG-LS encoder
libav:  avenc_ljpeg: libav Lossless JPEG encoder
libav:  avenc_magicyuv: libav MagicYUV video encoder
libav:  avenc_mjpeg: libav MJPEG (Motion JPEG) encoder
libav:  avenc_mpeg1video: libav MPEG-1 video encoder
libav:  avenc_mpeg2video: libav MPEG-2 video encoder
libav:  avenc_mpeg4: libav MPEG-4 part 2 encoder
libav:  avenc_msmpeg4v2: libav MPEG-4 part 2 Microsoft variant version 2 encoder
libav:  avenc_msmpeg4: libav MPEG-4 part 2 Microsoft variant version 3 encoder
libav:  avenc_msvideo1: libav Microsoft Video-1 encoder
libav:  avenc_pam: libav PAM (Portable AnyMap) image encoder
libav:  avenc_pbm: libav PBM (Portable BitMap) image encoder
libav:  avenc_pcx: libav PC Paintbrush PCX image encoder
libav:  avenc_pgm: libav PGM (Portable GrayMap) image encoder
libav:  avenc_pgmyuv: libav PGMYUV (Portable GrayMap YUV) image encoder
libav:  avenc_png: libav PNG (Portable Network Graphics) image encoder
libav:  avenc_ppm: libav PPM (Portable PixelMap) image encoder
libav:  avenc_prores: libav Apple ProRes encoder
libav:  avenc_prores_aw: libav Apple ProRes encoder
libav:  avenc_prores_ks: libav Apple ProRes (iCodec Pro) encoder
libav:  avenc_qtrle: libav QuickTime Animation (RLE) video encoder
libav:  avenc_r10k: libav AJA Kona 10-bit RGB Codec encoder
libav:  avenc_roqvideo: libav id RoQ video encoder
libav:  avenc_rv10: libav RealVideo 1.0 encoder
libav:  avenc_rv20: libav RealVideo 2.0 encoder
libav:  avenc_sgi: libav SGI image encoder
libav:  avenc_snow: libav Snow encoder
libav:  avenc_sunrast: libav Sun Rasterfile image encoder
libav:  avenc_svq1: libav Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1 encoder
libav:  avenc_targa: libav Truevision Targa image encoder
libav:  avenc_tiff: libav TIFF image encoder
libav:  avenc_utvideo: libav Ut Video encoder
libav:  avenc_vc2: libav SMPTE VC-2 encoder
libav:  avenc_wmv1: libav Windows Media Video 7 encoder
libav:  avenc_wmv2: libav Windows Media Video 8 encoder
libav:  avenc_xbm: libav XBM (X BitMap) image encoder
libav:  avenc_xface: libav X-face image encoder
libav:  avenc_xwd: libav XWD (X Window Dump) image encoder
libav:  avenc_zmbv: libav Zip Motion Blocks Video encoder
libav:  avenc_h264_omx: libav OpenMAX IL H.264 video encoder encoder
libav:  avdec_comfortnoise: libav RFC 3389 comfort noise generator decoder
libav:  avdec_dvaudio: libav Ulead DV Audio decoder
libav:  avdec_8svx_exp: libav 8SVX exponential decoder
libav:  avdec_8svx_fib: libav 8SVX fibonacci decoder
libav:  avdec_s302m: libav SMPTE 302M decoder
libav:  avdec_sdx2_dpcm: libav DPCM Squareroot-Delta-Exact decoder
libav:  avdec_aac: libav AAC (Advanced Audio Coding) decoder
libav:  avdec_aac_fixed: libav AAC (Advanced Audio Coding) decoder
libav:  avdec_aac_latm: libav AAC LATM (Advanced Audio Coding LATM syntax) decoder
libav:  avdec_ac3: libav ATSC A/52A (AC-3) decoder
libav:  avdec_ac3_fixed: libav ATSC A/52A (AC-3) decoder
libav:  avdec_alac: libav ALAC (Apple Lossless Audio Codec) decoder
libav:  avdec_als: libav MPEG-4 Audio Lossless Coding (ALS) decoder
libav:  avdec_amrnb: libav AMR-NB (Adaptive Multi-Rate NarrowBand) decoder
libav:  avdec_amrwb: libav AMR-WB (Adaptive Multi-Rate WideBand) decoder
libav:  avdec_ape: libav Monkey's Audio decoder
libav:  avdec_aptx: libav aptX (Audio Processing Technology for Bluetooth) decoder
libav:  avdec_aptx_hd: libav aptX HD (Audio Processing Technology for Bluetooth) decoder
libav:  avdec_atrac1: libav ATRAC1 (Adaptive TRansform Acoustic Coding) decoder
libav:  avdec_atrac3: libav ATRAC3 (Adaptive TRansform Acoustic Coding 3) decoder
libav:  avdec_atrac3al: libav ATRAC3 AL (Adaptive TRansform Acoustic Coding 3 Advanced Lossless) decoder
libav:  avdec_atrac3plus: libav ATRAC3+ (Adaptive TRansform Acoustic Coding 3+) decoder
libav:  avdec_atrac3plusal: libav ATRAC3+ AL (Adaptive TRansform Acoustic Coding 3+ Advanced Lossless) decoder
libav:  avdec_atrac9: libav ATRAC9 (Adaptive TRansform Acoustic Coding 9) decoder
libav:  avdec_binkaudio_dct: libav Bink Audio (DCT) decoder
libav:  avdec_binkaudio_rdft: libav Bink Audio (RDFT) decoder
libav:  avdec_bmv_audio: libav Discworld II BMV audio decoder
libav:  avdec_cook: libav Cook / Cooker / Gecko (RealAudio G2) decoder
libav:  avdec_dca: libav DCA (DTS Coherent Acoustics) decoder
libav:  avdec_dolby_e: libav Dolby E decoder
libav:  avdec_dsd_lsbf: libav DSD (Direct Stream Digital), least significant bit first decoder
libav:  avdec_dsd_msbf: libav DSD (Direct Stream Digital), most significant bit first decoder
libav:  avdec_dsd_lsbf_planar: libav DSD (Direct Stream Digital), least significant bit first, planar decoder
libav:  avdec_dsd_msbf_planar: libav DSD (Direct Stream Digital), most significant bit first, planar decoder
libav:  avdec_dsicinaudio: libav Delphine Software International CIN audio decoder
libav:  avdec_dss_sp: libav Digital Speech Standard - Standard Play mode (DSS SP) decoder
libav:  avdec_dst: libav DST (Digital Stream Transfer) decoder
libav:  avdec_eac3: libav ATSC A/52B (AC-3, E-AC-3) decoder
libav:  avdec_evrc: libav EVRC (Enhanced Variable Rate Codec) decoder
libav:  avdec_wavesynth: libav Wave synthesis pseudo-codec decoder
libav:  avdec_flac: libav FLAC (Free Lossless Audio Codec) decoder
libav:  avdec_g723_1: libav G.723.1 decoder
libav:  avdec_g729: libav G.729 decoder
libav:  avdec_gsm: libav GSM decoder
libav:  avdec_gsm_ms: libav GSM Microsoft variant decoder
libav:  avdec_hcom: libav HCOM Audio decoder
libav:  avdec_iac: libav IAC (Indeo Audio Coder) decoder
libav:  avdec_ilbc: libav iLBC (Internet Low Bitrate Codec) decoder
libav:  avdec_imc: libav IMC (Intel Music Coder) decoder
libav:  avdec_interplayacm: libav Interplay ACM decoder
libav:  avdec_mace3: libav MACE (Macintosh Audio Compression/Expansion) 3:1 decoder
libav:  avdec_mace6: libav MACE (Macintosh Audio Compression/Expansion) 6:1 decoder
libav:  avdec_metasound: libav Voxware MetaSound decoder
libav:  avdec_mlp: libav MLP (Meridian Lossless Packing) decoder
libav:  avdec_mp1float: libav MP1 (MPEG audio layer 1) decoder
libav:  avdec_mp2float: libav MP2 (MPEG audio layer 2) decoder
libav:  avdec_mp3float: libav MP3 (MPEG audio layer 3) decoder
libav:  avdec_mp3: libav MP3 (MPEG audio layer 3) decoder
libav:  avdec_mp3adufloat: libav ADU (Application Data Unit) MP3 (MPEG audio layer 3) decoder
libav:  avdec_mp3adu: libav ADU (Application Data Unit) MP3 (MPEG audio layer 3) decoder
libav:  avdec_mp3on4float: libav MP3onMP4 decoder
libav:  avdec_mp3on4: libav MP3onMP4 decoder
libav:  avdec_mpc7: libav Musepack SV7 decoder
libav:  avdec_mpc8: libav Musepack SV8 decoder
libav:  avdec_nellymoser: libav Nellymoser Asao decoder
libav:  avdec_on2avc: libav On2 Audio for Video Codec decoder
libav:  avdec_opus: libav Opus decoder
libav:  avdec_paf_audio: libav Amazing Studio Packed Animation File Audio decoder
libav:  avdec_qcelp: libav QCELP / PureVoice decoder
libav:  avdec_qdm2: libav QDesign Music Codec 2 decoder
libav:  avdec_qdmc: libav QDesign Music Codec 1 decoder
libav:  avdec_real_144: libav RealAudio 1.0 (14.4K) decoder
libav:  avdec_real_288: libav RealAudio 2.0 (28.8K) decoder
libav:  avdec_ralf: libav RealAudio Lossless decoder
libav:  avdec_sbc: libav SBC (low-complexity subband codec) decoder
libav:  avdec_shorten: libav Shorten decoder
libav:  avdec_sipr: libav RealAudio SIPR / ACELP.NET decoder
libav:  avdec_smackaud: libav Smacker audio decoder
libav:  avdec_sonic: libav Sonic decoder
libav:  avdec_tak: libav TAK (Tom's lossless Audio Kompressor) decoder
libav:  avdec_truehd: libav TrueHD decoder
libav:  avdec_truespeech: libav DSP Group TrueSpeech decoder
libav:  avdec_tta: libav TTA (True Audio) decoder
libav:  avdec_twinvq: libav VQF TwinVQ decoder
libav:  avdec_vmdaudio: libav Sierra VMD audio decoder
libav:  avdec_wmalossless: libav Windows Media Audio Lossless decoder
libav:  avdec_wmapro: libav Windows Media Audio 9 Professional decoder
libav:  avdec_wmav1: libav Windows Media Audio 1 decoder
libav:  avdec_wmav2: libav Windows Media Audio 2 decoder
libav:  avdec_wmavoice: libav Windows Media Audio Voice decoder
libav:  avdec_ws_snd1: libav Westwood Audio (SND1) decoder
libav:  avdec_xma1: libav Xbox Media Audio 1 decoder
libav:  avdec_xma2: libav Xbox Media Audio 2 decoder
libav:  avdec_pcm_lxf: libav PCM signed 20-bit little-endian planar decoder
libav:  avdec_pcm_vidc: libav PCM Archimedes VIDC decoder
libav:  avdec_gremlin_dpcm: libav DPCM Gremlin decoder
libav:  avdec_interplay_dpcm: libav DPCM Interplay decoder
libav:  avdec_roq_dpcm: libav DPCM id RoQ decoder
libav:  avdec_sol_dpcm: libav DPCM Sol decoder
libav:  avdec_xan_dpcm: libav DPCM Xan decoder
libav:  avdec_adpcm_4xm: libav ADPCM 4X Movie decoder
libav:  avdec_adpcm_adx: libav SEGA CRI ADX ADPCM decoder
libav:  avdec_adpcm_afc: libav ADPCM Nintendo Gamecube AFC decoder
libav:  avdec_adpcm_agm: libav ADPCM AmuseGraphics Movie decoder
libav:  avdec_adpcm_aica: libav ADPCM Yamaha AICA decoder
libav:  avdec_adpcm_ct: libav ADPCM Creative Technology decoder
libav:  avdec_adpcm_dtk: libav ADPCM Nintendo Gamecube DTK decoder
libav:  avdec_adpcm_ea: libav ADPCM Electronic Arts decoder
libav:  avdec_adpcm_ea_maxis_xa: libav ADPCM Electronic Arts Maxis CDROM XA decoder
libav:  avdec_adpcm_ea_r1: libav ADPCM Electronic Arts R1 decoder
libav:  avdec_adpcm_ea_r2: libav ADPCM Electronic Arts R2 decoder
libav:  avdec_adpcm_ea_r3: libav ADPCM Electronic Arts R3 decoder
libav:  avdec_adpcm_ea_xas: libav ADPCM Electronic Arts XAS decoder
libav:  avdec_g722: libav G.722 ADPCM decoder
libav:  avdec_g726: libav G.726 ADPCM decoder
libav:  avdec_g726le: libav G.726 ADPCM little-endian decoder
libav:  avdec_adpcm_ima_amv: libav ADPCM IMA AMV decoder
libav:  avdec_adpcm_ima_apc: libav ADPCM IMA CRYO APC decoder
libav:  avdec_adpcm_ima_dat4: libav ADPCM IMA Eurocom DAT4 decoder
libav:  avdec_adpcm_ima_dk3: libav ADPCM IMA Duck DK3 decoder
libav:  avdec_adpcm_ima_dk4: libav ADPCM IMA Duck DK4 decoder
libav:  avdec_adpcm_ima_ea_eacs: libav ADPCM IMA Electronic Arts EACS decoder
libav:  avdec_adpcm_ima_ea_sead: libav ADPCM IMA Electronic Arts SEAD decoder
libav:  avdec_adpcm_ima_iss: libav ADPCM IMA Funcom ISS decoder
libav:  avdec_adpcm_ima_oki: libav ADPCM IMA Dialogic OKI decoder
libav:  avdec_adpcm_ima_qt: libav ADPCM IMA QuickTime decoder
libav:  avdec_adpcm_ima_rad: libav ADPCM IMA Radical decoder
libav:  avdec_adpcm_ima_smjpeg: libav ADPCM IMA Loki SDL MJPEG decoder
libav:  avdec_adpcm_ima_wav: libav ADPCM IMA WAV decoder
libav:  avdec_adpcm_ima_ws: libav ADPCM IMA Westwood decoder
libav:  avdec_adpcm_ms: libav ADPCM Microsoft decoder
libav:  avdec_adpcm_mtaf: libav ADPCM MTAF decoder
libav:  avdec_adpcm_psx: libav ADPCM Playstation decoder
libav:  avdec_adpcm_sbpro_2: libav ADPCM Sound Blaster Pro 2-bit decoder
libav:  avdec_adpcm_sbpro_3: libav ADPCM Sound Blaster Pro 2.6-bit decoder
libav:  avdec_adpcm_sbpro_4: libav ADPCM Sound Blaster Pro 4-bit decoder
libav:  avdec_adpcm_swf: libav ADPCM Shockwave Flash decoder
libav:  avdec_adpcm_thp: libav ADPCM Nintendo THP decoder
libav:  avdec_adpcm_thp_le: libav ADPCM Nintendo THP (little-endian) decoder
libav:  avdec_adpcm_vima: libav LucasArts VIMA audio decoder
libav:  avdec_adpcm_xa: libav ADPCM CDROM XA decoder
libav:  avdec_adpcm_yamaha: libav ADPCM Yamaha decoder
libav:  avdec_aasc: libav Autodesk RLE decoder
libav:  avdec_aic: libav Apple Intermediate Codec decoder
libav:  avdec_alias_pix: libav Alias/Wavefront PIX image decoder
libav:  avdec_agm: libav Amuse Graphics Movie decoder
libav:  avdec_amv: libav AMV Video decoder
libav:  avdec_anm: libav Deluxe Paint Animation decoder
libav:  avdec_ansi: libav ASCII/ANSI art decoder
libav:  avdec_apng: libav APNG (Animated Portable Network Graphics) image decoder
libav:  avdec_arbc: libav Gryphon's Anim Compressor decoder
libav:  avdec_asv1: libav ASUS V1 decoder
libav:  avdec_asv2: libav ASUS V2 decoder
libav:  avdec_aura: libav Auravision AURA decoder
libav:  avdec_aura2: libav Auravision Aura 2 decoder
libav:  avdec_avrp: libav Avid 1:1 10-bit RGB Packer decoder
libav:  avdec_avrn: libav Avid AVI Codec decoder
libav:  avdec_avs: libav AVS (Audio Video Standard) video decoder
libav:  avdec_avui: libav Avid Meridien Uncompressed decoder
libav:  avdec_bethsoftvid: libav Bethesda VID video decoder
libav:  avdec_bfi: libav Brute Force & Ignorance decoder
libav:  avdec_binkvideo: libav Bink video decoder
libav:  avdec_bitpacked: libav Bitpacked decoder
libav:  avdec_bmp: libav BMP (Windows and OS/2 bitmap) decoder
libav:  avdec_bmv_video: libav Discworld II BMV video decoder
libav:  avdec_brender_pix: libav BRender PIX image decoder
libav:  avdec_c93: libav Interplay C93 decoder
libav:  avdec_cavs: libav Chinese AVS (Audio Video Standard) (AVS1-P2, JiZhun profile) decoder
libav:  avdec_cdgraphics: libav CD Graphics video decoder
libav:  avdec_cdxl: libav Commodore CDXL video decoder
libav:  avdec_cfhd: libav Cineform HD decoder
libav:  avdec_cinepak: libav Cinepak decoder
libav:  avdec_clearvideo: libav Iterated Systems ClearVideo decoder
libav:  avdec_cljr: libav Cirrus Logic AccuPak decoder
libav:  avdec_cllc: libav Canopus Lossless Codec decoder
libav:  avdec_cpia: libav CPiA video format decoder
libav:  avdec_camstudio: libav CamStudio decoder
libav:  avdec_cyuv: libav Creative YUV (CYUV) decoder
libav:  avdec_dds: libav DirectDraw Surface image decoder decoder
libav:  avdec_dfa: libav Chronomaster DFA decoder
libav:  avdec_dirac: libav BBC Dirac VC-2 decoder
libav:  avdec_dnxhd: libav VC3/DNxHD decoder
libav:  avdec_dpx: libav DPX (Digital Picture Exchange) image decoder
libav:  avdec_dsicinvideo: libav Delphine Software International CIN video decoder
libav:  avdec_dvvideo: libav DV (Digital Video) decoder
libav:  avdec_dxa: libav Feeble Files/ScummVM DXA decoder
libav:  avdec_dxtory: libav Dxtory decoder
libav:  avdec_dxv: libav Resolume DXV decoder
libav:  avdec_eacmv: libav Electronic Arts CMV video decoder
libav:  avdec_eamad: libav Electronic Arts Madcow Video decoder
libav:  avdec_eatgq: libav Electronic Arts TGQ video decoder
libav:  avdec_eatgv: libav Electronic Arts TGV video decoder
libav:  avdec_eatqi: libav Electronic Arts TQI Video decoder
libav:  avdec_8bps: libav QuickTime 8BPS video decoder
libav:  avdec_escape124: libav Escape 124 decoder
libav:  avdec_escape130: libav Escape 130 decoder
libav:  avdec_exr: libav OpenEXR image decoder
libav:  avdec_ffv1: libav FFmpeg video codec #1 decoder
libav:  avdec_ffvhuff: libav Huffyuv FFmpeg variant decoder
libav:  avdec_fic: libav Mirillis FIC decoder
libav:  avdec_fits: libav Flexible Image Transport System decoder
libav:  avdec_flashsv: libav Flash Screen Video v1 decoder
libav:  avdec_flashsv2: libav Flash Screen Video v2 decoder
libav:  avdec_flic: libav Autodesk Animator Flic video decoder
libav:  avdec_flv: libav FLV / Sorenson Spark / Sorenson H.263 (Flash Video) decoder
libav:  avdec_fmvc: libav FM Screen Capture Codec decoder
libav:  avdec_4xm: libav 4X Movie decoder
libav:  avdec_fraps: libav Fraps decoder
libav:  avdec_frwu: libav Forward Uncompressed decoder
libav:  avdec_g2m: libav Go2Meeting decoder
libav:  avdec_gdv: libav Gremlin Digital Video decoder
libav:  avdec_gif: libav GIF (Graphics Interchange Format) decoder
libav:  avdec_h261: libav H.261 decoder
libav:  avdec_h263: libav H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2 decoder
libav:  avdec_h263i: libav Intel H.263 decoder
libav:  avdec_h263p: libav H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2 decoder
libav:  avdec_h264: libav H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 decoder
libav:  avdec_hap: libav Vidvox Hap decoder
libav:  avdec_h265: libav HEVC (High Efficiency Video Coding) decoder
libav:  avdec_hnm4video: libav HNM 4 video decoder
libav:  avdec_hq_hqa: libav Canopus HQ/HQA decoder
libav:  avdec_hqx: libav Canopus HQX decoder
libav:  avdec_huffyuv: libav Huffyuv / HuffYUV decoder
libav:  avdec_hymt: libav HuffYUV MT decoder
libav:  avdec_idcinvideo: libav id Quake II CIN video decoder
libav:  avdec_iff: libav IFF ACBM/ANIM/DEEP/ILBM/PBM/RGB8/RGBN decoder
libav:  avdec_imm4: libav Infinity IMM4 decoder
libav:  avdec_indeo2: libav Intel Indeo 2 decoder
libav:  avdec_indeo3: libav Intel Indeo 3 decoder
libav:  avdec_indeo4: libav Intel Indeo Video Interactive 4 decoder
libav:  avdec_indeo5: libav Intel Indeo Video Interactive 5 decoder
libav:  avdec_interplayvideo: libav Interplay MVE video decoder
libav:  avdec_jpeg2000: libav JPEG 2000 decoder
libav:  avdec_jpegls: libav JPEG-LS decoder
libav:  avdec_jv: libav Bitmap Brothers JV video decoder
libav:  avdec_kgv1: libav Kega Game Video decoder
libav:  avdec_kmvc: libav Karl Morton's video codec decoder
libav:  avdec_lagarith: libav Lagarith lossless decoder
libav:  avdec_loco: libav LOCO decoder
libav:  avdec_lscr: libav LEAD Screen Capture decoder
libav:  avdec_m101: libav Matrox Uncompressed SD decoder
libav:  avdec_magicyuv: libav MagicYUV video decoder
libav:  avdec_mdec: libav Sony PlayStation MDEC (Motion DECoder) decoder
libav:  avdec_mimic: libav Mimic decoder
libav:  avdec_mjpeg: libav MJPEG (Motion JPEG) decoder
libav:  avdec_mjpegb: libav Apple MJPEG-B decoder
libav:  avdec_mmvideo: libav American Laser Games MM Video decoder
libav:  avdec_motionpixels: libav Motion Pixels video decoder
libav:  avdec_mpeg2video: libav MPEG-2 video decoder
libav:  avdec_mpeg4: libav MPEG-4 part 2 decoder
libav:  avdec_mpegvideo: libav MPEG-1 video decoder
libav:  avdec_msa1: libav MS ATC Screen decoder
libav:  avdec_mscc: libav Mandsoft Screen Capture Codec decoder
libav:  avdec_msmpeg4v1: libav MPEG-4 part 2 Microsoft variant version 1 decoder
libav:  avdec_msmpeg4v2: libav MPEG-4 part 2 Microsoft variant version 2 decoder
libav:  avdec_msmpeg4: libav MPEG-4 part 2 Microsoft variant version 3 decoder
libav:  avdec_msrle: libav Microsoft RLE decoder
libav:  avdec_mss1: libav MS Screen 1 decoder
libav:  avdec_mss2: libav MS Windows Media Video V9 Screen decoder
libav:  avdec_msvideo1: libav Microsoft Video 1 decoder
libav:  avdec_mszh: libav LCL (LossLess Codec Library) MSZH decoder
libav:  avdec_mts2: libav MS Expression Encoder Screen decoder
libav:  avdec_mvc1: libav Silicon Graphics Motion Video Compressor 1 decoder
libav:  avdec_mvc2: libav Silicon Graphics Motion Video Compressor 2 decoder
libav:  avdec_mwsc: libav MatchWare Screen Capture Codec decoder
libav:  avdec_mxpeg: libav Mobotix MxPEG video decoder
libav:  avdec_nuv: libav NuppelVideo/RTJPEG decoder
libav:  avdec_paf_video: libav Amazing Studio Packed Animation File Video decoder
libav:  avdec_pam: libav PAM (Portable AnyMap) image decoder
libav:  avdec_pbm: libav PBM (Portable BitMap) image decoder
libav:  avdec_pcx: libav PC Paintbrush PCX image decoder
libav:  avdec_pgm: libav PGM (Portable GrayMap) image decoder
libav:  avdec_pgmyuv: libav PGMYUV (Portable GrayMap YUV) image decoder
libav:  avdec_pictor: libav Pictor/PC Paint decoder
libav:  avdec_pixlet: libav Apple Pixlet decoder
libav:  avdec_png: libav PNG (Portable Network Graphics) image decoder
libav:  avdec_ppm: libav PPM (Portable PixelMap) image decoder
libav:  avdec_prores: libav ProRes (iCodec Pro) decoder
libav:  avdec_prosumer: libav Brooktree ProSumer Video decoder
libav:  avdec_psd: libav Photoshop PSD file decoder
libav:  avdec_ptx: libav V.Flash PTX image decoder
libav:  avdec_qdraw: libav Apple QuickDraw decoder
libav:  avdec_qpeg: libav Q-team QPEG decoder
libav:  avdec_qtrle: libav QuickTime Animation (RLE) video decoder
libav:  avdec_r10k: libav AJA Kona 10-bit RGB Codec decoder
libav:  avdec_rasc: libav RemotelyAnywhere Screen Capture decoder
libav:  avdec_rl2: libav RL2 video decoder
libav:  avdec_roqvideo: libav id RoQ video decoder
libav:  avdec_rpza: libav QuickTime video (RPZA) decoder
libav:  avdec_rscc: libav innoHeim/Rsupport Screen Capture Codec decoder
libav:  avdec_rv10: libav RealVideo 1.0 decoder
libav:  avdec_rv20: libav RealVideo 2.0 decoder
libav:  avdec_rv30: libav RealVideo 3.0 decoder
libav:  avdec_rv40: libav RealVideo 4.0 decoder
libav:  avdec_sanm: libav LucasArts SANM/Smush video decoder
libav:  avdec_scpr: libav ScreenPressor decoder
libav:  avdec_screenpresso: libav Screenpresso decoder
libav:  avdec_sgi: libav SGI image decoder
libav:  avdec_sgirle: libav Silicon Graphics RLE 8-bit video decoder
libav:  avdec_sheervideo: libav BitJazz SheerVideo decoder
libav:  avdec_smackvid: libav Smacker video decoder
libav:  avdec_smc: libav QuickTime Graphics (SMC) decoder
libav:  avdec_smvjpeg: libav SMV JPEG decoder
libav:  avdec_snow: libav Snow decoder
libav:  avdec_sp5x: libav Sunplus JPEG (SP5X) decoder
libav:  avdec_speedhq: libav NewTek SpeedHQ decoder
libav:  avdec_srgc: libav Screen Recorder Gold Codec decoder
libav:  avdec_sunrast: libav Sun Rasterfile image decoder
libav:  avdec_svq1: libav Sorenson Vector Quantizer 1 / Sorenson Video 1 / SVQ1 decoder
libav:  avdec_svq3: libav Sorenson Vector Quantizer 3 / Sorenson Video 3 / SVQ3 decoder
libav:  avdec_targa: libav Truevision Targa image decoder
libav:  avdec_targa_y216: libav Pinnacle TARGA CineWave YUV16 decoder
libav:  avdec_tdsc: libav TDSC decoder
libav:  avdec_thp: libav Nintendo Gamecube THP video decoder
libav:  avdec_tiertexseqvideo: libav Tiertex Limited SEQ video decoder
libav:  avdec_tiff: libav TIFF image decoder
libav:  avdec_tmv: libav 8088flex TMV decoder
libav:  avdec_truemotion1: libav Duck TrueMotion 1.0 decoder
libav:  avdec_truemotion2: libav Duck TrueMotion 2.0 decoder
libav:  avdec_truemotion2rt: libav Duck TrueMotion 2.0 Real Time decoder
libav:  avdec_camtasia: libav TechSmith Screen Capture Codec decoder
libav:  avdec_tscc2: libav TechSmith Screen Codec 2 decoder
libav:  avdec_txd: libav Renderware TXD (TeXture Dictionary) image decoder
libav:  avdec_ultimotion: libav IBM UltiMotion decoder
libav:  avdec_utvideo: libav Ut Video decoder
libav:  avdec_vb: libav Beam Software VB decoder
libav:  avdec_vble: libav VBLE Lossless Codec decoder
libav:  avdec_vc1: libav SMPTE VC-1 decoder
libav:  avdec_vc1image: libav Windows Media Video 9 Image v2 decoder
libav:  avdec_vcr1: libav ATI VCR1 decoder
libav:  avdec_vmdvideo: libav Sierra VMD video decoder
libav:  avdec_vmnc: libav VMware Screen Codec / VMware Video decoder
libav:  avdec_vp3: libav On2 VP3 decoder
libav:  avdec_vp4: libav On2 VP4 decoder
libav:  avdec_vp5: libav On2 VP5 decoder
libav:  avdec_vp6: libav On2 VP6 decoder
libav:  avdec_vp6a: libav On2 VP6 (Flash version, with alpha channel) decoder
libav:  avdec_vp6f: libav On2 VP6 (Flash version) decoder
libav:  avdec_vp7: libav On2 VP7 decoder
libav:  avdec_vp8: libav On2 VP8 decoder
libav:  avdec_vp9: libav Google VP9 decoder
libav:  avdec_vqavideo: libav Westwood Studios VQA (Vector Quantized Animation) video decoder
libav:  avdec_webp: libav WebP image decoder
libav:  avdec_wcmv: libav WinCAM Motion Video decoder
libav:  avdec_wmv1: libav Windows Media Video 7 decoder
libav:  avdec_wmv2: libav Windows Media Video 8 decoder
libav:  avdec_wmv3: libav Windows Media Video 9 decoder
libav:  avdec_wmv3image: libav Windows Media Video 9 Image decoder
libav:  avdec_wnv1: libav Winnov WNV1 decoder
libav:  avdec_xan_wc3: libav Wing Commander III / Xan decoder
libav:  avdec_xan_wc4: libav Wing Commander IV / Xxan decoder
libav:  avdec_xbm: libav XBM (X BitMap) image decoder
libav:  avdec_xface: libav X-face image decoder
libav:  avdec_xl: libav Miro VideoXL decoder
libav:  avdec_xpm: libav XPM (X PixMap) image decoder
libav:  avdec_xwd: libav XWD (X Window Dump) image decoder
libav:  avdec_ylc: libav YUY2 Lossless Codec decoder
libav:  avdec_yop: libav Psygnosis YOP Video decoder
libav:  avdec_zerocodec: libav ZeroCodec Lossless Video decoder
libav:  avdec_zmbv: libav Zip Motion Blocks Video decoder
libav:  avdec_bintext: libav Binary text decoder
libav:  avdec_xbin: libav eXtended BINary text decoder
libav:  avdec_idf: libav iCEDraw text decoder
libav:  avdemux_aiff: libav Audio IFF demuxer
libav:  avdemux_ape: libav Monkey's Audio demuxer
libav:  avdemux_avs: libav Argonaut Games Creature Shock demuxer
libav: avtype_avs: no extensions
libav:  avdemux_bfstm: libav BFSTM (Binary Cafe Stream) demuxer
libav: avtype_bfstm: bfstm, bcstm
libav:  avdemux_brstm: libav BRSTM (Binary Revolution Stream) demuxer
libav: avtype_brstm: brstm
libav:  avdemux_daud: libav D-Cinema audio demuxer
libav: avtype_daud: 302, daud
libav:  avdemux_dsf: libav DSD Stream File (DSF) demuxer
libav: avtype_dsf: no extensions
libav:  avdemux_ea: libav Electronic Arts Multimedia demuxer
libav: avtype_ea: no extensions
libav:  avdemux_4xm: libav 4X Technologies demuxer
libav: avtype_4xm: no extensions
libav:  avdemux_gif: libav CompuServe Graphics Interchange Format (GIF) demuxer
libav:  avdemux_gxf: libav GXF (General eXchange Format) demuxer
libav: avtype_gxf: no extensions
libav:  avdemux_idcin: libav id Cinematic demuxer
libav: avtype_idcin: no extensions
libav:  avdemux_iff: libav IFF (Interchange File Format) demuxer
libav: avtype_iff: no extensions
libav:  avdemux_ipmovie: libav Interplay MVE demuxer
libav: avtype_ipmovie: no extensions
libav:  avdemux_ivf: libav On2 IVF demuxer
libav:  avdemux_mm: libav American Laser Games MM demuxer
libav: avtype_mm: no extensions
libav:  avdemux_mmf: libav Yamaha SMAF demuxer
libav: avtype_mmf: no extensions
libav:  avdemux_mpc: libav Musepack demuxer
libav:  avdemux_mpc8: libav Musepack SV8 demuxer
libav:  avdemux_mxf: libav MXF (Material eXchange Format) demuxer
libav:  avdemux_nsv: libav Nullsoft Streaming Video demuxer
libav: avtype_nsv: no extensions
libav:  avdemux_nut: libav NUT demuxer
libav: avtype_nut: nut
libav:  avdemux_nuv: libav NuppelVideo demuxer
libav:  avdemux_pva: libav TechnoTrend PVA demuxer
libav:  avdemux_film_cpk: libav Sega FILM / CPK demuxer
libav: avtype_film_cpk: no extensions
libav:  avdemux_smk: libav Smacker demuxer
libav: avtype_smk: no extensions
libav:  avdemux_sol: libav Sierra SOL demuxer
libav: avtype_sol: no extensions
libav:  avdemux_psxstr: libav Sony Playstation STR demuxer
libav: avtype_psxstr: no extensions
libav:  avdemux_tta: libav TTA (True Audio) demuxer
libav:  avdemux_vmd: libav Sierra VMD demuxer
libav: avtype_vmd: no extensions
libav:  avdemux_voc: libav Creative Voice demuxer
libav:  avdemux_wc3movie: libav Wing Commander III movie demuxer
libav: avtype_wc3movie: no extensions
libav:  avdemux_wsaud: libav Westwood Studios audio demuxer
libav: avtype_wsaud: no extensions
libav:  avdemux_wsvqa: libav Westwood Studios VQA demuxer
libav: avtype_wsvqa: no extensions
libav:  avdemux_yuv4mpegpipe: libav YUV4MPEG pipe demuxer
libav: avtype_yuv4mpegpipe: y4m
libav:  avmux_a64: libav a64 - video for Commodore 64 muxer
libav:  avmux_adts: libav ADTS AAC (Advanced Audio Coding) muxer (not recommended, use aacparse instead)
libav:  avmux_adx: libav CRI ADX muxer
libav:  avmux_aiff: libav Audio IFF muxer (not recommended, use aiffmux instead)
libav:  avmux_amr: libav 3GPP AMR muxer
libav:  avmux_apng: libav Animated Portable Network Graphics muxer
libav:  avmux_asf: libav ASF (Advanced / Active Streaming Format) muxer (not recommended, use asfmux instead)
libav:  avmux_ast: libav AST (Audio Stream) muxer
libav:  avmux_asf_stream: libav ASF (Advanced / Active Streaming Format) muxer (not recommended, use asfmux instead)
libav:  avmux_au: libav Sun AU muxer
libav:  avmux_avi: libav AVI (Audio Video Interleaved) muxer (not recommended, use avimux instead)
libav:  avmux_avm2: libav SWF (ShockWave Flash) (AVM2) muxer
libav:  avmux_bit: libav G.729 BIT file format muxer
libav:  avmux_caf: libav Apple CAF (Core Audio Format) muxer
libav:  avmux_codec2: libav codec2 .c2 muxer muxer
libav:  avmux_dash: libav DASH Muxer muxer
libav:  avmux_daud: libav D-Cinema audio muxer
libav:  avmux_dv: libav DV (Digital Video) muxer
libav:  avmux_f4v: libav F4V Adobe Flash Video muxer
libav:  avmux_filmstrip: libav Adobe Filmstrip muxer
libav:  avmux_fits: libav Flexible Image Transport System muxer
libav:  avmux_flv: libav FLV (Flash Video) muxer (not recommended, use flvmux instead)
libav:  avmux_gxf: libav GXF (General eXchange Format) muxer
libav:  avmux_hash: libav Hash testing muxer
libav:  avmux_hds: libav HDS Muxer muxer
libav:  avmux_hls: libav Apple HTTP Live Streaming muxer
libav:  avmux_ico: libav Microsoft Windows ICO muxer
libav:  avmux_ilbc: libav iLBC storage muxer
libav:  avmux_ipod: libav iPod H.264 MP4 (MPEG-4 Part 14) muxer
libav:  avmux_ircam: libav Berkeley/IRCAM/CARL Sound Format muxer
libav:  avmux_ismv: libav ISMV/ISMA (Smooth Streaming) muxer
libav:  avmux_ivf: libav On2 IVF muxer
libav:  avmux_latm: libav LOAS/LATM muxer
libav:  avmux_md5: libav MD5 testing muxer
libav:  avmux_matroska: libav Matroska muxer (not recommended, use matroskamux instead)
libav:  avmux_mmf: libav Yamaha SMAF muxer
libav:  avmux_mov: libav QuickTime / MOV muxer (not recommended, use qtmux instead)
libav:  avmux_mp2: libav MP2 (MPEG audio layer 2) formatter (not recommended, use id3v2mux instead)
libav:  avmux_mp3: libav MP3 (MPEG audio layer 3) formatter (not recommended, use id3v2mux instead)
libav:  avmux_mp4: libav MP4 (MPEG-4 Part 14) muxer (not recommended, use mp4mux instead)
libav:  avmux_mpeg: libav MPEG-1 Systems / MPEG program stream muxer
libav:  avmux_vcd: libav MPEG-1 Systems / MPEG program stream (VCD) muxer
libav:  avmux_dvd: libav MPEG-2 PS (DVD VOB) muxer
libav:  avmux_svcd: libav MPEG-2 PS (SVCD) muxer
libav:  avmux_vob: libav MPEG-2 PS (VOB) muxer
libav:  avmux_mpegts: libav MPEG-TS (MPEG-2 Transport Stream) muxer (not recommended, use mpegtsmux instead)
libav:  avmux_mpjpeg: libav MIME multipart JPEG muxer (not recommended, use multipartmux instead)
libav:  avmux_mxf: libav MXF (Material eXchange Format) muxer (not recommended, use mxfmux instead)
libav:  avmux_mxf_d10: libav MXF (Material eXchange Format) D-10 Mapping muxer
libav:  avmux_mxf_opatom: libav MXF (Material eXchange Format) Operational Pattern Atom muxer
libav:  avmux_nut: libav NUT muxer
libav:  avmux_oga: libav Ogg Audio muxer
libav:  avmux_ogg: libav Ogg muxer (not recommended, use oggmux instead)
libav:  avmux_ogv: libav Ogg Video muxer
libav:  avmux_oma: libav Sony OpenMG audio muxer
libav:  avmux_opus: libav Ogg Opus muxer
libav:  avmux_vidc: libav PCM Archimedes VIDC muxer
libav:  avmux_psp: libav PSP MP4 (MPEG-4 Part 14) muxer
libav:  avmux_rm: libav RealMedia muxer
libav:  avmux_rso: libav Lego Mindstorms RSO muxer
libav:  avmux_rtsp: libav RTSP output muxer
libav:  avmux_sap: libav SAP output muxer
libav:  avmux_film_cpk: libav Sega FILM / CPK muxer
libav:  avmux_singlejpeg: libav JPEG single image muxer
libav:  avmux_smjpeg: libav Loki SDL MJPEG muxer
libav:  avmux_smoothstreaming: libav Smooth Streaming Muxer muxer
libav:  avmux_sox: libav SoX native muxer
libav:  avmux_spx: libav Ogg Speex muxer
libav:  avmux_spdif: libav IEC 61937 (used on S/PDIF - IEC958) muxer
libav:  avmux_swf: libav SWF (ShockWave Flash) muxer
libav:  avmux_3g2: libav 3GP2 (3GPP2 file format) muxer
libav:  avmux_3gp: libav 3GP (3GPP file format) muxer (not recommended, use gppmux instead)
libav:  avmux_mkvtimestamp_v2: libav extract pts as timecode v2 format, as defined by mkvtoolnix muxer
libav:  avmux_tta: libav TTA (True Audio) muxer
libav:  avmux_uncodedframecrc: libav uncoded framecrc testing muxer
libav:  avmux_vc1test: libav VC-1 test bitstream muxer
libav:  avmux_voc: libav Creative Voice muxer
libav:  avmux_w64: libav Sony Wave64 muxer
libav:  avmux_wav: libav WAV / WAVE (Waveform Audio) muxer (not recommended, use wavenc instead)
libav:  avmux_webp: libav WebP muxer
libav:  avmux_wtv: libav Windows Television (WTV) muxer
libav:  avmux_yuv4mpegpipe: libav YUV4MPEG pipe muxer (not recommended, use y4menc instead)
libav:  avmux_chromaprint: libav Chromaprint muxer
libav:  avdeinterlace: libav Deinterlace element
matroska:  matroskademux: Matroska demuxer
matroska:  matroskaparse: Matroska parser
matroska:  matroskamux: Matroska muxer
matroska:  webmmux: WebM muxer
mpeg2dec:  mpeg2dec: mpeg1 and mpeg2 video decoder
gdp:  gdpdepay: GDP Depayloader
gdp:  gdppay: GDP Payloader
videoframe_audiolevel:  videoframe-audiolevel: Video-frame audio level
avi:  avidemux: Avi demuxer
avi:  avimux: Avi muxer
avi:  avisubtitle: Avi subtitle parser
pnm:  pnmdec: PNM image decoder
pnm:  pnmenc: PNM image encoder
a52dec:  a52dec: ATSC A/52 audio decoder
assrender:  assrender: ASS/SSA Render
sid:  siddec: Sid decoder
shout2:  shout2send: Icecast network sink
audioresample:  audioresample: Audio resampler
flxdec:  flxdec: FLX video decoder
pbtypes:  GstVideoMultiviewFlagsSet (GstDynamicTypeFactory)
webp:  webpdec: WebP image decoder
webp:  webpenc: WEBP image encoder
encoding:  encodebin: Encoder Bin
app:  appsrc: AppSrc
app:  appsink: AppSink
twolame:  twolamemp2enc: TwoLAME mp2 encoder
kate:  katedec: Kate stream text decoder
kate:  kateenc: Kate stream encoder
kate:  kateparse: Kate stream parser
kate:  katetag: Kate stream tagger
uvch264:  uvch264mjpgdemux: UVC H264 MJPG Demuxer
uvch264:  uvch264src: UVC H264 Source
id3demux:  id3demux: ID3 tag demuxer
flite:  flitetestsrc: Flite speech test source
webrtcdsp:  webrtcdsp: Voice Processor (AGC, AEC, filters, etc.)
webrtcdsp:  webrtcechoprobe: Accoustic Echo Canceller probe
soup:  souphttpsrc: HTTP client source
soup:  souphttpclientsink: HTTP client sink
oss4:  oss4sink: OSS v4 Audio Sink
oss4:  oss4src: OSS v4 Audio Source
removesilence:  removesilence: RemoveSilence
monoscope:  monoscope: Monoscope
wavparse:  wavparse: WAV audio demuxer
dc1394:  dc1394src: 1394 IIDC Video Source
dv:  dvdemux: DV system stream demuxer
dv:  dvdec: DV video decoder
ogg:  oggdemux: Ogg demuxer
ogg:  oggmux: Ogg muxer
ogg:  ogmaudioparse: OGM audio stream parser
ogg:  ogmvideoparse: OGM video stream parser
ogg:  ogmtextparse: OGM text stream parser
ogg:  oggparse: Ogg parser
ogg:  oggaviparse: Ogg AVI parser
pcapparse:  pcapparse: PCapParse
pcapparse:  irtspparse: IRTSPParse
multifile:  multifilesrc: Multi-File Source
multifile:  multifilesink: Multi-File Sink
multifile:  splitfilesrc: Split-File Source
multifile:  splitmuxsink: Split Muxing Bin
multifile:  splitmuxsrc: Split File Demuxing Bin
video4linux2:  v4l2src: Video (video4linux2) Source
video4linux2:  v4l2sink: Video (video4linux2) Sink
video4linux2:  v4l2radio: Radio (video4linux2) Tuner
video4linux2:  v4l2deviceprovider (GstDeviceProviderFactory)
audioconvert:  audioconvert: Audio converter
cacasink:  cacasink: A colored ASCII art video sink
playback:  playbin: Player Bin 2
playback:  playbin3: Player Bin 3
playback:  playsink: Player Sink
playback:  subtitleoverlay: Subtitle Overlay
playback:  streamsynchronizer: Stream Synchronizer
playback:  decodebin: Decoder Bin
playback:  decodebin3: Decoder Bin 3
playback:  uridecodebin: URI Decoder
playback:  uridecodebin3: URI Decoder
playback:  urisourcebin: URI reader
playback:  parsebin: Parse Bin
png:  pngdec: PNG image decoder
png:  pngenc: PNG image encoder
mpg123:  mpg123audiodec: mpg123 mp3 decoder
equalizer:  equalizer-nbands: N Band Equalizer
equalizer:  equalizer-3bands: 3 Band Equalizer
equalizer:  equalizer-10bands: 10 Band Equalizer
y4mdec:  y4mdec: YUV4MPEG demuxer/decoder
opus:  opusenc: Opus audio encoder
opus:  opusdec: Opus audio decoder
videosignal:  videoanalyse: Video analyser
videosignal:  simplevideomarkdetect: Video detecter
videosignal:  simplevideomark: Video marker
rtpmanager:  rtpbin: RTP Bin
rtpmanager:  rtpjitterbuffer: RTP packet jitter-buffer
rtpmanager:  rtpptdemux: RTP Demux
rtpmanager:  rtpsession: RTP Session
rtpmanager:  rtprtxqueue: RTP Retransmission Queue
rtpmanager:  rtprtxreceive: RTP Retransmission receiver
rtpmanager:  rtprtxsend: RTP Retransmission Sender
rtpmanager:  rtpssrcdemux: RTP SSRC Demux
rtpmanager:  rtpmux: RTP muxer
rtpmanager:  rtpdtmfmux: RTP muxer
rtpmanager:  rtpfunnel: RTP funnel
y4menc:  y4menc: YUV4MPEG video encoder
fieldanalysis:  fieldanalysis: Video field analysis
gdkpixbuf:  gdkpixbufdec: GdkPixbuf image decoder
gdkpixbuf:  gdkpixbufoverlay: GdkPixbuf Overlay
gdkpixbuf:  gdkpixbufsink: GdkPixbuf sink
vorbis:  vorbisenc: Vorbis audio encoder
vorbis:  vorbisdec: Vorbis audio decoder
vorbis:  vorbisparse: VorbisParse
vorbis:  vorbistag: VorbisTag
gsm:  gsmenc: GSM audio encoder
gsm:  gsmdec: GSM audio decoder
jack:  jackaudiosrc: Audio Source (Jack)
jack:  jackaudiosink: Audio Sink (Jack)
ttmlsubs:  ttmlparse: TTML subtitle parser
ttmlsubs:  ttmlrender: TTML subtitle renderer
srt:  srtsrc: SRT source
srt:  srtsink: SRT sink
srt:  srtclientsrc: SRT source
srt:  srtserversrc: SRT source
srt:  srtclientsink: SRT sink
srt:  srtserversink: SRT sink
resindvd:  rsndvdbin: rsndvdbin
soundtouch:  pitch: Pitch controller
soundtouch:  bpmdetect: BPM Detector
audiofxbad:  audiochannelmix: Simple stereo audio mixer
mpegtsdemux:  tsparse: MPEG transport stream parser
mpegtsdemux:  tsdemux: MPEG transport stream demuxer
openal:  openalsink: OpenAL Audio Sink
openal:  openalsrc: OpenAL Audio Source
vulkan:  vulkansink: Vulkan video sink
vulkan:  vulkanupload: Vulkan Uploader
adpcmenc:  adpcmenc: ADPCM encoder
decklink:  decklinkaudiosink: Decklink Audio Sink
decklink:  decklinkvideosink: Decklink Video Sink
decklink:  decklinkaudiosrc: Decklink Audio Source
decklink:  decklinkvideosrc: Decklink Video Source
alpha:  alpha: Alpha filter
apetag:  apedemux: APE tag demuxer
audiomixmatrix:  audiomixmatrix: Matrix audio mix
faad:  faad: AAC audio decoder
mpegtsmux:  mpegtsmux: MPEG Transport Stream Muxer
videocrop:  videocrop: Crop
videocrop:  aspectratiocrop: aspectratiocrop
srtp:  srtpenc: SRTP encoder
srtp:  srtpdec: SRTP decoder
cairo:  cairooverlay: Cairo overlay
goom2k1:  goom2k1: GOOM: what a GOOM! 2k1 edition
smpte:  smpte: SMPTE transitions
smpte:  smptealpha: SMPTE transitions
jpegformat:  jpegparse: JPEG stream parser
jpegformat:  jifmux: JPEG stream muxer
rsvg:  rsvgoverlay: RSVG overlay
rsvg:  rsvgdec: SVG image decoder
smooth:  smooth: Smooth effect
mulaw:  mulawenc: Mu Law audio encoder
mulaw:  mulawdec: Mu Law audio decoder
overlaycomposition:  overlaycomposition: Overlay Composition
audiolatency:  audiolatency: AudioLatency
hls:  hlsdemux: HLS Demuxer
hls:  hlssink: HTTP Live Streaming sink
hls:  hlssink2: HTTP Live Streaming sink
nvdsgst_postprocess:  nvdspostprocess: NvDsPostProcess plugin for Transform/In-Place use-cases
nvdsgst_3dbridge:  nvds3dbridge: DS 3D bridge custom plugin
nvdsgst_nvblender:  nvblender: Compositor
nvdsgst_text_to_speech:  nvds_text_to_speech: DS Text To Speech Plugin for Conversational AI use cases
nvdsgst_osd:  nvdsosd: NvDsOsd plugin
nvdsgst_ucx:  nvdsucxserversink: UCX server sink
nvdsgst_ucx:  nvdsucxclientsrc: UCX client source
nvdsgst_ucx:  nvdsucxclientsink: UCX client sink
nvdsgst_ucx:  nvdsucxserversrc: UCX server source
nvdsgst_3dmixer:  nvds3dmixer: Stream multiplexer
nvdsgst_tracker:  nvtracker: NvTracker plugin
nvdsgst_msgbroker:  nvmsgbroker: Message Broker
nvdsgst_multistream:  nvstreammux: Stream multiplexer
nvdsgst_multistream:  nvstreamdemux: Stream demultiplexer
nvvideo4linux2:  nvv4l2decoder: NVIDIA v4l2 video decoder
nvvideo4linux2:  nvv4l2h264enc: V4L2 H.264 Encoder
nvvideo4linux2:  nvv4l2h265enc: V4L2 H.265 Encoder
nvdsgst_nvmultiurisrcbin:  nvmultiurisrcbin: NvMultiUri Bin
nvdsgst_ofvisual:  nvofvisual: nvofvisual
nvdsgst_speech:  nvdsasr: DS ASR Plugin for speech use-cases
nvdsgst_dewarper:  nvdewarper: nvdewarper
nvdsgst_3dfilter:  nvds3dfilter: DS 3D filter custom plugin
nvdsgst_segvisual:  nvsegvisual: nvsegvisual
nvdsgst_of:  nvof: nvof
nvdsgst_inferaudio:  nvinferaudio: NvInfer Audio plugin
nvdsgst_dsexample:  dsexample: DsExample plugin
nvdsgst_dsanalytics:  nvdsanalytics: DsAnalytics plugin
nvdsgst_eglglessink:  nveglglessink: EGL/GLES vout Sink
nvdsgst_videotestsrc:  nvvideotestsrc: NVIDIA GPU Video Test Source
nvdsgst_jpeg:  nvjpegenc: JPEG image encoder
nvdsgst_jpeg:  nvjpegdec: JPEG image decoder
nvdsgst_multistreamtiler:  nvmultistreamtiler: Stream Tiler DS
nvdsgst_metautils:  nvdsmetainsert: nvdsmetainsert
nvdsgst_metautils:  nvdsmetaextract: nvdsmetaextract
nvdsgst_msgconv:  nvmsgconv: Message Converter
nvdsgst_logger:  nvdslogger: Nvdslogger
nvdsgst_xfer:  nvdsxfer: NvDsXfer plugin
nvdsgst_metamux:  nvdsmetamux: meta muxer
nvdsgst_infer:  nvinfer: NvInfer plugin
nvdsgst_videotemplate:  nvdsvideotemplate: NvDsVideoTemplate plugin for Transform/In-Place use-cases
nvvideoconvert:  nvvideoconvert: NvVidConv Plugin
nvdsgst_preprocess:  nvdspreprocess: gst-nvdspreprocess plugin
nvdsgst_audiotemplate:  nvdsaudiotemplate: DS AUDIO template Plugin for Transform IP use-cases
nvdsgst_deepstream_bins:  nvinferbin: NvInfer Bin
nvdsgst_deepstream_bins:  nvinferserverbin: NvInferServer Bin
nvdsgst_deepstream_bins:  nvosdbin: NvOsd Bin
nvdsgst_deepstream_bins:  nvdewarperbin: NvDewarper Bin
nvdsgst_deepstream_bins:  nvtilerbin: NvTiler Bin
nvdsgst_deepstream_bins:  nvtrackerbin: NvTracker Bin
nvdsgst_deepstream_bins:  nvurisrcbin: NvUriSrc Bin
nvdsgst_deepstream_bins:  nvcamerasrcbin: NvCameraSrc Bin
nvdsgst_deepstream_bins:  nvanalyticsbin: NvAnalytics Bin
nvdsgst_deepstream_bins:  nvvideorenderersinkbin: NvVideoRenderer Bin
nvdsgst_deepstream_bins:  nvvideoencfilesinkbin: NvVideoEncFilesink Bin
nvdsgst_deepstream_bins:  nvrtspoutsinkbin: NvRtspOut Bin
nvdsgst_deepstream_bins:  nvmsgbrokersinkbin: NvMsgBroker Bin
nvdsgst_deepstream_bins:  nvdsbuffersyncbin: NvBufferSync Bin
coreelements:  capsfilter: CapsFilter
coreelements:  concat: Concat
coreelements:  dataurisrc: data: URI source element
coreelements:  downloadbuffer: DownloadBuffer
coreelements:  fakesrc: Fake Source
coreelements:  fakesink: Fake Sink
coreelements:  fdsrc: Filedescriptor Source
coreelements:  fdsink: Filedescriptor Sink
coreelements:  filesrc: File Source
coreelements:  funnel: Funnel pipe fitting
coreelements:  identity: Identity
coreelements:  input-selector: Input selector
coreelements:  output-selector: Output selector
coreelements:  queue: Queue
coreelements:  queue2: Queue 2
coreelements:  filesink: File Sink
coreelements:  tee: Tee pipe fitting
coreelements:  typefind: TypeFind
coreelements:  multiqueue: MultiQueue
coreelements:  valve: Valve element
coreelements:  streamiddemux: Streamid Demux
coretracers:  latency (GstTracerFactory)
coretracers:  log (GstTracerFactory)
coretracers:  rusage (GstTracerFactory)
coretracers:  stats (GstTracerFactory)
coretracers:  leaks (GstTracerFactory)
staticelements:  bin: Generic bin
staticelements:  pipeline: Pipeline object

Total count: 281 plugins (3 blacklist entries not shown), 1494 features

There are numerous plugins available for developers to use. You can learn more about them in the documentations for GStreamer Plugins and DeepStream Plugins. Let’s now inspect a specific plugin to learn more about it.

!gst-inspect-1.0 h264parse
Factory Details:
  Rank                     primary + 1 (257)
  Long-name                H.264 parser
  Klass                    Codec/Parser/Converter/Video
  Description              Parses H.264 streams
  Author                   Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>

Plugin Details:
  Name                     videoparsersbad
  Description              videoparsers
  Filename                 /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvideoparsersbad.so
  Version                  1.16.3
  License                  LGPL
  Source module            gst-plugins-bad
  Source release date      2020-10-21
  Binary package           GStreamer Bad Plugins (Ubuntu)
  Origin URL               https://launchpad.net/distros/ubuntu/+source/gst-plugins-bad1.0

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseParse
                         +----GstH264Parse

Pad Templates:
  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-h264
                 parsed: true
          stream-format: { (string)avc, (string)avc3, (string)byte-stream }
              alignment: { (string)au, (string)nal }
  
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-h264

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:
  config-interval     : Send SPS and PPS Insertion Interval in seconds (sprop parameter sets will be multiplexed in the data stream when detected.) (0 = disabled, -1 = send with every IDR frame)
                        flags: readable, writable
                        Integer. Range: -1 - 3600 Default: 0 
  disable-passthrough : Force processing (disables passthrough)
                        flags: readable, writable
                        Boolean. Default: false
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "h264parse0"
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"

Let’s inspect a DeepStream-specific plugin: nvinfer.

!gst-inspect-1.0 nvinfer
Factory Details:
  Rank                     primary (256)
  Long-name                NvInfer plugin
  Klass                    NvInfer Plugin
  Description              Nvidia DeepStreamSDK TensorRT plugin
  Author                   NVIDIA Corporation. Deepstream for Tesla forum: https://devtalk.nvidia.com/default/board/209

Plugin Details:
  Name                     nvdsgst_infer
  Description              NVIDIA DeepStreamSDK TensorRT plugin
  Filename                 /usr/lib/x86_64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_infer.so
  Version                  6.3.0
  License                  Proprietary
  Source module            nvinfer
  Binary package           NVIDIA DeepStreamSDK TensorRT plugin
  Origin URL               http://nvidia.com/

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseTransform
                         +----GstNvInfer

Pad Templates:
  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-raw(memory:NVMM)
                 format: { (string)NV12, (string)RGBA }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
  
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw(memory:NVMM)
                 format: { (string)NV12, (string)RGBA }
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:
  batch-size          : Maximum batch size for inference
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 1 - 1024 Default: 1 
  clip-object-outside-roi: Clip the object bounding-box which lies outside the roi specified by nvdspreprosess plugin
                        flags: readable, writable, changeable only in NULL or READY state
                        Boolean. Default: true
  config-file-path    : Path to the configuration file for this instance of nvinfer
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        String. Default: ""
  crop-objects-to-roi-boundary: Clip the object bounding-box which lies outside the roi boundary
                        flags: readable, writable, changeable only in NULL or READY state
                        Boolean. Default: false
  filter-out-class-ids: Ignore metadata for objects of specified class ids
			Use string with values of class ids in ClassID (int) to set the property.
			 e.g. 0;2;3
                        flags: readable, writable, changeable only in NULL or READY state
                        String. Default: ""
  gpu-id              : Set GPU Device ID
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0 
  infer-on-class-ids  : Operate on objects with specified class ids
			Use string with values of class ids in ClassID (int) to set the property.
			 e.g. 0:2:3
                        flags: readable, writable, changeable only in NULL or READY state
                        String. Default: ""
  infer-on-gie-id     : Infer on metadata generated by GIE with this unique ID.
			Set to -1 to infer on all metadata.
                        flags: readable, writable, changeable only in NULL or READY state
                        Integer. Range: -1 - 2147483647 Default: -1 
  input-tensor-meta   : Use preprocessed input tensors attached as metadata instead of preprocessing inside the plugin
                        flags: readable, writable, changeable only in NULL or READY state
                        Boolean. Default: false
  interval            : Specifies number of consecutive batches to be skipped for inference
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 0 - 2147483647 Default: 0 
  model-engine-file   : Absolute path to the pre-generated serialized engine file for the model
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        String. Default: ""
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "nvinfer0"
  output-instance-mask: Instance mask expected in network output and attach it to metadata
                        flags: readable, writable, changeable only in NULL or READY state
                        Boolean. Default: false
  output-tensor-meta  : Attach inference tensor outputs as buffer metadata
                        flags: readable, writable, changeable only in NULL or READY state
                        Boolean. Default: false
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  process-mode        : Infer processing mode
                        flags: readable, writable, changeable only in NULL or READY state
                        Enum "GstNvInferProcessModeType" Default: 1, "primary"
                           (1): primary          - Primary (Full Frame)
                           (2): secondary        - Secondary (Objects)
  qos                 : Handle Quality-of-Service events
                        flags: readable, writable
                        Boolean. Default: false
  raw-output-file-write: Write raw inference output to file
                        flags: readable, writable, changeable only in NULL or READY state
                        Boolean. Default: false
  raw-output-generated-callback: Pointer to the raw output generated callback funtion
			(type: gst_nvinfer_raw_output_generated_callback in 'gstnvdsinfer.h')
                        flags: readable, writable, changeable only in NULL or READY state
                        Pointer.
  raw-output-generated-userdata: Pointer to the userdata to be supplied with raw output generated callback
                        flags: readable, writable, changeable only in NULL or READY state
                        Pointer.
  unique-id           : Unique ID for the element. Can be used to identify output of the element
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 0 - 4294967295 Default: 15 

Element Signals:
  "model-updated" :  void user_function (GstElement* object,
                                         gint arg0,
                                         gchararray arg1,
                                         gpointer user_data);
!gst-inspect-1.0 nvv4l2decoder
Factory Details:
  Rank                     primary + 11 (267)
  Long-name                NVIDIA v4l2 video decoder
  Klass                    Codec/Decoder/Video
  Description              Decode video streams via V4L2 API
  Author                   Nicolas Dufresne <nicolas.dufresne@collabora.com>, Viranjan Pagar <vpagar@nvidia.com>

Plugin Details:
  Name                     nvvideo4linux2
  Description              Nvidia elements for Video 4 Linux
  Filename                 /usr/lib/x86_64-linux-gnu/gstreamer-1.0/deepstream/libgstnvvideo4linux2.so
  Version                  1.14.0
  License                  LGPL
  Source module            nvvideo4linux2
  Binary package           nvvideo4linux2
  Origin URL               http://nvidia.com/

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoDecoder
                         +----GstNvV4l2VideoDec
                               +----nvv4l2decoder

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      image/jpeg
      video/x-h264
          stream-format: { (string)byte-stream }
              alignment: { (string)au }
      video/x-h265
          stream-format: { (string)byte-stream }
              alignment: { (string)au }
      video/mpeg
            mpegversion: 4
           systemstream: false
                 parsed: true
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
      video/mpeg
            mpegversion: [ 1, 2 ]
           systemstream: false
                 parsed: true
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
      video/x-divx
            divxversion: [ 4, 5 ]
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
      video/x-av1
      video/x-vp8
      video/x-vp9
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
  
  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-raw(memory:NVMM)
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]

Element has no clocking capabilities.
Element has no URI handling capabilities.

Pads:
  SINK: 'sink'
    Pad Template: 'sink'
  SRC: 'src'
    Pad Template: 'src'

Element Properties:
  capture-io-mode     : Capture I/O mode (matches src pad)
                        flags: readable, writable
                        Enum "GstNvV4l2IOMode" Default: 0, "auto"
                           (0): auto             - GST_V4L2_IO_AUTO
                           (2): mmap             - GST_V4L2_IO_MMAP
                           (5): dmabuf-import    - GST_V4L2_IO_DMABUF_IMPORT
  cudadec-memtype     : Set to specify memory type for cuda decoder buffers
                        flags: readable, writable, changeable only in NULL or READY state
                        Enum "CudaDecMemType" Default: 0, "memtype_device"
                           (0): memtype_device   - Memory type Device
                           (1): memtype_pinned   - Memory type Host Pinned
                           (2): memtype_unified  - Memory type Unified
  device              : Device location
                        flags: readable
                        String. Default: "/dev/nvidia0"
  device-fd           : File descriptor of the device
                        flags: readable
                        Integer. Range: -1 - 2147483647 Default: -1 
  device-name         : Name of the device
                        flags: readable
                        String. Default: ""
  drop-frame-interval : Interval to drop the frames,ex: value of 5 means every 5th frame will be given by decoder, rest all dropped
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 0 - 30 Default: 0 
  extra-controls      : Extra v4l2 controls (CIDs) for the device
                        flags: readable, writable
                        Boxed pointer of type "GstStructure"
  extract-sei-type5-data: Set to extract and attach SEI type5 unregistered data on output buffer
                        flags: readable, writable
                        Boolean. Default: false
  gpu-id              : Set to GPU Device ID for decoder 
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0 
  low-latency-mode    : Set low latency mode for bitstreams having I and IPPP frames
                        flags: readable, writable
                        Boolean. Default: false
  name                : The name of the object
                        flags: readable, writable
                        String. Default: "nvv4l2decoder0"
  num-extra-surfaces  : Additional number of surfaces in addition to min decode surfaces given by the v4l2 driver
                        flags: readable, writable, changeable only in NULL or READY state
                        Unsigned Integer. Range: 0 - 55 Default: 0 
  output-io-mode      : Output side I/O mode (matches sink pad)
                        flags: readable, writable
                        Enum "GstNvV4l2IOMode" Default: 0, "auto"
                           (0): auto             - GST_V4L2_IO_AUTO
                           (2): mmap             - GST_V4L2_IO_MMAP
                           (5): dmabuf-import    - GST_V4L2_IO_DMABUF_IMPORT
  parent              : The parent of the object
                        flags: readable, writable
                        Object of type "GstObject"
  sei-uuid            : Set 16 bytes UUID string for SEI Parsing, extract-sei-type5-data should be TRUE
                        flags: readable, writable
                        String. Default: null
  skip-frames         : Type of frames to skip during decoding
                        flags: readable, writable, changeable in NULL, READY, PAUSED or PLAYING state
                        Enum "SkipFrame" Default: 0, "decode_all"
                           (0): decode_all       - Decode all frames
                           (1): decode_non_ref   - Decode non-ref frames
                           (2): decode_key       - decode key frames

The nvinfer plugin does inferencing on input data using NVIDIA TensorRT. It can perform AI inference on (batched) images for classification, object detection, and segmentation tasks based on the trained model we provide. There are several properties that can be set related to the inference engine, including the model-engine-file property. We recommend setting properties via a configuration file through the config-file-path property. More information about DeepStream plugins can be found in the DeepStream Plugin Guide.

Accessing DeepStream MetaData#

GstBuffer is the basic unit of data transfer in GStreamer. As it’s passing through the pipeline, metadata received by each component is attached to the buffer. Similarly, the DeepStream SDK attaches the DeepStream metadata object, NvDsBatchMeta to it. DeepStream metadata contains inference results from Gst-nvinfer and information from other plugins in the pipeline. DeepStream uses an extensible standard structure for metadata, starting with the batch level metadata (NvDsBatchMeta) created inside the Gst-nvstreammux plugin. Subsidiary metadata structures hold frame, object, classifier, and display data. The metadata format is described in detail in the SDK MetaData Documentation and API Guide. Having some familiarity with the metadata structure will help us extract the desired information.

Probe#

image

We use probes to access this metadata. Probing is best envisioned as having access to a pad listener. We can use them to access metadata at various points in the pipeline. Technically, a probe is a callback function that can be attached to a pad. While attached, the probe notifies when there is data passing on a pad. It allows us to easily interact with the data flowing through our pipeline. For more information on GstPad and probes, please visit GStreamer’s API Reference on GstPad.

Since the video AI application will rely heavily on the metadata generated from the deep learning models, the probe callback function might be the most important piece when constructing a DeepStream pipeline.

Lets build DeepStream Pipeline#

We will start with a simple DeepStream pipeline and then move towards a multi DNN pipeline…

Using the ffprobe command line utility to understand the raw input video’s format (see documentation if needed). When using the ffprobe command, the -i option lets us read an input URL and the -hide_banner option suppresses printing the banner to reduce the output.

import os

# Set the input video path to an environment variable
os.environ['TARGET_VIDEO_PATH']='data/sample_30.h264'
os.environ['TARGET_VIDEO_PATH_MP4']='sample_30.mp4'

target_video_path=os.environ['TARGET_VIDEO_PATH']
target_video_path_mp4=os.environ['TARGET_VIDEO_PATH_MP4']

# Analyze video
!ffprobe -i $TARGET_VIDEO_PATH \
         -hide_banner
Input #0, h264, from 'data/sample_30.h264':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: h264 (High), yuv420p(progressive), 882x692, 30 fps, 30 tbr, 1200k tbn, 60 tbc

TrafficCamNet Object Detection Model#

The TrafficCamNet Object Detection model, according to its model card, detects one or more physical objects from four categories (car, persons, road signs, and two-wheelers) within an image and returns a box around each object, as well as a category label for each object.

For example, given an input image/frame, the inference engine will generate the bounding box coordinates as well as the category labels:

image

We can then optionally perform post-processing and draw the bounding boxes and text labels on top of the original frame.

image

Installing NGC CLI#

Pre-trained models can be downloaded from NGC using the NGC CLI.

To download a model from the registry, use the ngc registry model download-version <org-name>/<model-name:version> command and specify the model name as well as version. The model will be downloaded to a folder that corresponds to the model name in the current directory but can also be specified using the -d or --dest option.

!ngc registry model download-version nvidia/tao/trafficcamnet:pruned_v1.0 --dest $NGC_DIR
{
    "download_end": "2025-08-29 03:22:17",
    "download_start": "2025-08-29 03:22:15",
    "download_time": "1s",
    "files_downloaded": 3,
    "local_path": "/dli/task/ngc_assets/trafficcamnet_vpruned_v1.0",
    "size_downloaded": "5.2 MB",
    "status": "COMPLETED"
}

Simple DeepStream Pipeline#

This is the pipeline architecture of the application. We’ve selected each plugin based on their functionality.

image

  • The filesrc plugin reads data from a local file. There are other plugins available for reading data from various types of sources like camera, RTSP streams, and disk.

  • The h264parse plugin is used to parse the input elementary H.264 stream into frame-size bytes of data.

  • The nvv4l2decoder plugin decodes the input data using the appropriate codec, which is H.264 in this case.

  • The nvstreammux plugin is a required stream aggregator. This video aggregator helps in accepting n input streams and converts them into sequential batched frames. Even though our simple application only consumes one input stream, this plugin is required as nvinfer accepts batched buffers with the NvDsBatchMeta structure already attached.

    • This plugin takes width, height, and batch-size as parameters.

  • The nvinfer plugin performs transformation (format conversion and scaling) on the input frame based on network requirements and passes the transformed data to the low-level library. This is the plugin that we will use to define the deep learning task(s) associated with our application. The low-level library pre-processes the transformed frames (performs normalization and mean subtraction) and produces final float RGB/BGR/GRAY planar data which are passed to the TensorRT engine for inferencing. The output type generated by the low-level library depends on the network type. We will configure the nvinfer plugin for our TrafficCamNet object detection model. It attaches the inference results such as object class(s), bounding box coordinates, etc., to the metadata.

image

  • The fakesink plugin acts as the end of the pipeline where the data flow ends.

    • There is a synchronization-against-the-clock mechanism in GStreamer. For local video file, it is recommended to set the sync property to 1 to get smooth video playback, vs. 0 for live-sources such as IP camera since they give frames at a static rate.

More information about the plugins can be found in the DeepStream Plugin Guide and GStreamer Plugin Guide.

Additionally, we will add a callback function on the source pad of the nvinfer plugin to access the metadata in the application. The application can then use this metadata to solve the given problem (in this case counting the number of cars, persons, road signs, and two-wheelers).

Initializing GStreamer and Pipeline#

We initialize GStreamer with Gst.init(list=None) and instantiate a Gst.Pipeline object as pipeline to contain all the elements shown in the pipeline diagram.

# Import necessary GStreamer libraries and DeepStream python bindings
import gi
gi.require_version('Gst', '1.0')
from gi.repository import GObject, Gst, GLib
import pyds

# Initialize GStreamer
Gst.init(None)

# Create Pipeline element that will form a connection of other elements
pipeline=Gst.Pipeline()
print('Created pipeline')
Created pipeline

Creating Pipeline Elements#

We create each element in the pipeline using Gst.ElementFactory.make(factoryname, name) (see documentation). We can configure elements using set_property(property_name, value) (see documentation) with the required parameters as needed. In this step, we also add the elements to the pipeline with Gst.Pipeline.add(element).

# Create Source element for reading from a file and set the location property
source=Gst.ElementFactory.make("filesrc", "file-source")
source.set_property('location', target_video_path)

# Create H264 Parser with h264parse as the input file is an elementary h264 stream
h264parser=Gst.ElementFactory.make("h264parse", "h264-parser")

# Create Decoder with nvv4l2decoder for accelerated decoding on GPU
decoder=Gst.ElementFactory.make("nvv4l2decoder", "nvv4l2-decoder")

# Create Streamux with nvstreammux to form batches for one or more sources and set properties
streammux=Gst.ElementFactory.make("nvstreammux", "stream-muxer")
streammux.set_property('width', 888) 
streammux.set_property('height', 696) 
streammux.set_property('batch-size', 1)

# Create Primary GStreamer Inference Element with nvinfer to run inference on the decoder's output after batching
pgie=Gst.ElementFactory.make("nvinfer", "primary-inference")

# Create Sink with fakesink as the end point of the pipeline
fakesink=Gst.ElementFactory.make('fakesink', 'fakesink')
fakesink.set_property('sync', 1)
print('Created elements')
Created elements
# Add elements to pipeline
pipeline.add(source)
pipeline.add(h264parser)
pipeline.add(decoder)
pipeline.add(streammux)
pipeline.add(pgie)
pipeline.add(fakesink)
print('Added elements to pipeline')
Added elements to pipeline

Explore Gst-nvinfer Configuration File#

The nvinfer plugin needs to be configured through a config file

These properties are important to understand:

  • Properties related to models downloaded from NGC or trained with the TAO Toolkit:

    • tlt-encoded-model - pathname of the TAO Toolkit encoded model

    • tlt-model-key - model load key for the TAO Toolkit encoded model

    • labelfile-path - pathname of a text file containing the labels for the model. The labels must be new line delimited for object detection models

    • uff-input-blob-name - name of the input blob in the UFF file

    • output-blob-names - array of output layer names

    • infer-dims - dimensions of the model input as [channel; height; width]

    • net-scale-factor - pixel normalization factor (default=1)

  • Recommended properties:

    • batch-size - number of frames to be inferred together in a batch (default=1)

  • Mandatory properties for detectors:

    • num-detected-classes - number of classes detected by the network

  • Optional properties for detectors:

    • cluster-mode - clustering algorithm to use (default=0 i.e. Group Rectangles). Refer to the section on clustering algorithms supported by nvinfer in the documentation for more information.

    • nms-iou-thresholds: maximum IOU score between two proposals after which the proposal with the lower confidence will be rejected

    • pre-cluster-thresholds: detection threshold to be applied prior to clustering

    • topk: keep only top K objects with highest detection scores

  • Other optional properties:

    • network-mode - data format to be used for inference (0=FP32, 1=INT8, 2=FP16 mode | default=0 i.e. FP32)

    • process-mode - mode (primary or secondary) in which the plugin is to operate on (default=1 i.e. primary)

    • model-color-format - color format required by the model (default=0 i.e. RGB)

    • interval - number of consecutive batches to be skipped for inference (primary mode only | default=0)

    • gie-unique-id - unique ID to be assigned to the GIE to enable the application and other elements to identify detected bounding boxes and labels (default=0)

    • gpu-id - device ID of GPU to use for pre-processing/inference (dGPU only)

You can find most of the information needed on the model card:

image image

image

!cat spec_files/pgie_config_trafficcamnet_03.txt
[property]
gpu-id=0
net-scale-factor=0.00392156862745098
tlt-model-key=tlt_encode
tlt-encoded-model=/dli/task/ngc_assets/trafficcamnet_vpruned_v1.0/resnet18_trafficcamnet_pruned.etlt
labelfile-path=/dli/task/ngc_assets/trafficcamnet_vpruned_v1.0/labels.txt
infer-dims=3;544;960
uff-input-blob-name=input_1
batch-size=1
process-mode=1
model-color-format=0
# 0=FP32, 1=INT8, 2=FP16 mode
network-mode=0
num-detected-classes=4
interval=0
gie-unique-id=1
output-blob-names=output_bbox/BiasAdd;output_cov/Sigmoid
cluster-mode=2

# Use the config params below for NMS clustering mode
[class-attrs-all]
topk=20
nms-iou-threshold=0.5
pre-cluster-threshold=0.2

Note: The values in the config file can be overridden by values set through GObject properties. Another important thing to remember is that the properties recommended are specific to a primary detector. You may need to configure other properties for secondary and/or classifier.

After the configuration file has been created, we set the configuration file path of the nvinfer plugin using set_property(property_name, value).

# Set the configuration-file-path property for nvinfer
pgie.set_property('config-file-path', '/dli/task/spec_files/pgie_config_trafficcamnet_03.txt')

Linking Pipeline Elements#

Finally, we link all these elements in the order that data flow through the pipeline with Gst.Element.link(Gst.Element).

In GStreamer, elements are connected through pads:

  • Static pads: Always available.

  • Request pads: Created on-demand; you need to “request” one explicitly.

You can find the inforamtion of the pad using gst-inspect-1.0 <element-name>

Pad Templates:
  SRC template: 'src'
    Availability: Always
    ...
  SINK template: 'sink_%u'
    Availability: Request
    ...

In DeepStream pipelines, nvstreammux (streammux) requires a separate input pad per input stream, like sink_0, sink_1 etc… Or in other words– when connecting a source to nvstreammux (the muxer), the input’s source pad, obtained from get_static_pad(name='src'), must be manually linked to a newly requested sink pad from the muxer using get_request_pad(name) and the pad template sink_%u. This enables the ability to have multiple sources feeding into the nvstreammux plugin.

# Finding pad information using python
from gi.repository import Gst

factory = Gst.ElementFactory.find("nvstreammux")
pad_templates = factory.get_static_pad_templates()

for pad_template in pad_templates:
    direction = "SRC" if pad_template.direction == Gst.PadDirection.SRC else "SINK"
    availability = pad_template.presence.value_nick
    name_template = pad_template.name_template
    print(f"{direction} pad: {name_template} ({availability})")
SINK pad: sink_%u (request)
SRC pad: src (always)

Linking the pipeline#

# Link elements in the pipeline
source.link(h264parser)
h264parser.link(decoder)

# Link decoder source pad to streammux sink pad
decoder_srcpad=decoder.get_static_pad("src")    
streammux_sinkpad=streammux.get_request_pad("sink_0")
decoder_srcpad.link(streammux_sinkpad)

# Link the rest of the elements in the pipeline
streammux.link(pgie)
pgie.link(fakesink)
print('Linked elements in pipeline')
Linked elements in pipeline

Probe to Metadata Access#

Recall that we use probes to access metadata, which are callback functions that interact with the pads of elements. To access the metadata, we can use the DeepStream Python bindings, pyds. DeepStream uses an extensible standard structure for metadata. The basic metadata structure NvDsBatchMeta starts with batch-level metadata, created inside the Gst-nvstreammux plugin (see below). The object-level metadata we are looking for is accessible through NvDsBatchMeta > NvDsFrameMeta > NvDsObjectMeta. Some metadata instances are stored in GList form, which requires the data to be casted to the appropriate structure using pyds.NvDsFrameMeta.cast(data) or pyds.NvDsObjectMeta.cast(data). The NvDsObjectMeta contains the inference results from the deep learning neural networks, depending on what the configurations are.

image

We write the user-defined callback function pgie_source_pad_buffer_probe. Inside the function, we first get the batch metadata from the buffer with pyds.gst_buffer_get_nvds_batch_meta. From there, we can iterate through all the metadata types that are attached to the buffer. The DeepStream plugins attach metadata of type NVDS_META_FRAME_INFO to the buffer. To achieve our goal, we access the object metadata to count the number of objects in each frame and print the bounding box coordindates. In this example we are using a 4-class-detectors (vehicle, person, two-wheeler, and road sign). The return value of the probe function is programmed to Gst.PadProbeReturn.OK, which is the normal probe return value and leaves the probe in place. There are other options for the return value that can be considered for more complex cases.

# Declare list to hold count data
obj_counts=[]

# Define the Probe Function
def pgie_src_pad_buffer_probe(pad, info):
    gst_buffer=info.get_buffer()

    # Retrieve batch metadata from the gst_buffer
    # Note that pyds.gst_buffer_get_nvds_batch_meta() expects the
    # C address of gst_buffer as input, which is obtained with hash(gst_buffer)
    batch_meta=pyds.gst_buffer_get_nvds_batch_meta(hash(gst_buffer))
    l_frame=batch_meta.frame_meta_list
    
    # Iterate through each frame in the batch metadata until the end
    while l_frame is not None:
        try:
            frame_meta=pyds.NvDsFrameMeta.cast(l_frame.data)
        except StopIteration:
            break

        frame_num=frame_meta.frame_num
        num_obj=frame_meta.num_obj_meta
        l_obj=frame_meta.obj_meta_list
        
        print("Frame Number={} Number of Objects={}".format(frame_num, num_obj))
        
        # Append number of objects a list 
        obj_counts.append(num_obj)
        
        # Iterate through each object in the frame metadata until the end
        while l_obj is not None:
            try:
                obj_meta=pyds.NvDsObjectMeta.cast(l_obj.data)
                print('\t Object: {} - Top: {}, Left: {}, Width: {}, Height: {}'.format(obj_meta.obj_label, \
                                                                round(obj_meta.rect_params.top), \
                                                                round(obj_meta.rect_params.left), \
                                                                round(obj_meta.rect_params.width), \
                                                                round(obj_meta.rect_params.height)))
            except StopIteration:
                break
            
            try: 
                l_obj=l_obj.next
            except StopIteration:
                break
        
        try:
            l_frame=l_frame.next
        except StopIteration:
            break
    return Gst.PadProbeReturn.OK

With the pipeline defined and the elements linked, we add the callback function on the source pad of the nvinfer plugin using Gst.Pad.add_probe(mask, callback). While attached, the probe notifies when there are data passing on a pad. We can use GST_PAD_PROBE_TYPE_BUFFER or GST_PAD_PROBE_TYPE_BUFFER_LIST for mask when creating the probe. We designed the callback function to work with a single buffer so we’re using Gst.PadProbeType.BUFFER.

# Add probe to inference plugin's source
pgie_src_pad=pgie.get_static_pad('src')
probe_id=pgie_src_pad.add_probe(Gst.PadProbeType.BUFFER, pgie_src_pad_buffer_probe)
print('Attached probe')
Attached probe

Starting the Pipeline#

The pipeline has a bus that we will use to monitor messages. We run a GLib/Gtk+ MainLoop (or iterate the default GLib main context regularly) and attach a watch/message handler to the bus with Gst.Bus.add_signal_watch(). This way the GLib.Mainloop will check the bus for new messages and notify. The message handler is also achieved through a callback function, which we define as bus_call. This handler will be called whenever the pipeline emits a message to the bus. The return value of the callback function should be True to keep it attached to the bus. With the message handler in place, we put the pipeline in the PLAYING state and run the MainLoop. Finally, when the pipeline is finished, we put the pipeline into the NULL state to clean up.

import gi
import sys
gi.require_version('Gst', '1.0')
from gi.repository import GObject, Gst
def bus_call(bus, message, loop):
    t = message.type
    if t == Gst.MessageType.EOS:
        sys.stdout.write("End-of-stream")
        loop.quit()
    elif t==Gst.MessageType.WARNING:
        err, debug = message.parse_warning()
        sys.stderr.write("Warning: %s: %s\n" % (err, debug))
    elif t == Gst.MessageType.ERROR:
        err, debug = message.parse_error()
        sys.stderr.write("Error: %s: %s\n" % (err, debug))
        loop.quit()
    return True
# Create an event loop
loop=GLib.MainLoop()

# Feed GStreamer bus messages to loop
bus=pipeline.get_bus()
bus.add_signal_watch()
bus.connect("message", bus_call, loop)
print('Added bus message handler')
Added bus message handler
# Start play back and listen to events
print("Starting pipeline")
pipeline.set_state(Gst.State.PLAYING)
try:
    loop.run()
except:
    pass

# Cleaning up as the pipeline comes to an end
pipeline.set_state(Gst.State.NULL)
Starting pipeline
0:28:08.735014002   436      0x2ac5920 INFO                 nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<primary-inference> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::buildModel() <nvdsinfer_context_impl.cpp:2002> [UID = 1]: Trying to create engine from model files
ERROR: [TRT]: 3: [builder.cpp::~Builder::307] Error Code 3: API Usage Error (Parameter check failed at: optimizer/api/builder.cpp::~Builder::307, condition: mObjectCounter.use_count() == 1. Destroying a builder object before destroying objects it created leads to undefined behavior.
)
0:28:31.241559380   436      0x2ac5920 INFO                 nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<primary-inference> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::buildModel() <nvdsinfer_context_impl.cpp:2034> [UID = 1]: serialize cuda engine to file: /dli/task/ngc_assets/trafficcamnet_vpruned_v1.0/resnet18_trafficcamnet_pruned.etlt_b1_gpu0_fp32.engine successfully
0:28:31.309896234   436      0x2ac5920 INFO                 nvinfer gstnvinfer_impl.cpp:328:notifyLoadModelStatus:<primary-inference> [UID 1]: Load new model:/dli/task/spec_files/pgie_config_trafficcamnet_03.txt sucessfully
Frame Number=0 Number of Objects=1
	 Object: car - Top: 26, Left: 366, Width: 59, Height: 37
Frame Number=1 Number of Objects=1
	 Object: car - Top: 26, Left: 366, Width: 60, Height: 37
Frame Number=2 Number of Objects=1
	 Object: car - Top: 26, Left: 366, Width: 60, Height: 37
Frame Number=3 Number of Objects=1
	 Object: car - Top: 26, Left: 367, Width: 62, Height: 41
Frame Number=4 Number of Objects=1
	 Object: car - Top: 26, Left: 367, Width: 62, Height: 41
Frame Number=5 Number of Objects=1
	 Object: car - Top: 26, Left: 367, Width: 63, Height: 41
Frame Number=6 Number of Objects=1
	 Object: car - Top: 28, Left: 369, Width: 65, Height: 40
Frame Number=7 Number of Objects=1
	 Object: car - Top: 28, Left: 368, Width: 66, Height: 41
Frame Number=8 Number of Objects=1
	 Object: car - Top: 28, Left: 369, Width: 66, Height: 40
Frame Number=9 Number of Objects=1
	 Object: car - Top: 29, Left: 369, Width: 74, Height: 50
Frame Number=10 Number of Objects=1
	 Object: car - Top: 29, Left: 369, Width: 74, Height: 50
Frame Number=11 Number of Objects=1
	 Object: car - Top: 29, Left: 369, Width: 74, Height: 50
Frame Number=12 Number of Objects=1
	 Object: car - Top: 29, Left: 370, Width: 84, Height: 55
Frame Number=13 Number of Objects=1
	 Object: car - Top: 29, Left: 370, Width: 84, Height: 55
Frame Number=14 Number of Objects=1
	 Object: car - Top: 29, Left: 370, Width: 84, Height: 55
Frame Number=15 Number of Objects=1
	 Object: car - Top: 31, Left: 373, Width: 89, Height: 56
Frame Number=16 Number of Objects=1
	 Object: car - Top: 31, Left: 371, Width: 89, Height: 56
Frame Number=17 Number of Objects=1
	 Object: car - Top: 31, Left: 373, Width: 89, Height: 56
Frame Number=18 Number of Objects=1
	 Object: car - Top: 33, Left: 375, Width: 93, Height: 59
Frame Number=19 Number of Objects=1
	 Object: car - Top: 33, Left: 375, Width: 93, Height: 59
Frame Number=20 Number of Objects=1
	 Object: car - Top: 33, Left: 375, Width: 93, Height: 59
Frame Number=21 Number of Objects=1
	 Object: car - Top: 34, Left: 376, Width: 99, Height: 64
Frame Number=22 Number of Objects=1
	 Object: car - Top: 34, Left: 376, Width: 99, Height: 64
Frame Number=23 Number of Objects=1
	 Object: car - Top: 34, Left: 376, Width: 99, Height: 64
Frame Number=24 Number of Objects=1
	 Object: car - Top: 36, Left: 380, Width: 103, Height: 68
Frame Number=25 Number of Objects=1
	 Object: car - Top: 36, Left: 380, Width: 103, Height: 68
Frame Number=26 Number of Objects=1
	 Object: car - Top: 36, Left: 380, Width: 103, Height: 68
Frame Number=27 Number of Objects=1
	 Object: car - Top: 39, Left: 382, Width: 119, Height: 84
Frame Number=28 Number of Objects=1
	 Object: car - Top: 39, Left: 382, Width: 119, Height: 84
Frame Number=29 Number of Objects=1
	 Object: car - Top: 39, Left: 382, Width: 119, Height: 84
Frame Number=30 Number of Objects=1
	 Object: car - Top: 42, Left: 381, Width: 127, Height: 93
Frame Number=31 Number of Objects=1
	 Object: car - Top: 42, Left: 381, Width: 127, Height: 93
Frame Number=32 Number of Objects=1
	 Object: car - Top: 42, Left: 381, Width: 127, Height: 93
Frame Number=33 Number of Objects=1
	 Object: car - Top: 44, Left: 383, Width: 133, Height: 104
Frame Number=34 Number of Objects=1
	 Object: car - Top: 44, Left: 383, Width: 133, Height: 104
Frame Number=35 Number of Objects=1
	 Object: car - Top: 44, Left: 383, Width: 133, Height: 104
Frame Number=36 Number of Objects=1
	 Object: car - Top: 46, Left: 380, Width: 145, Height: 119
Frame Number=37 Number of Objects=1
	 Object: car - Top: 46, Left: 380, Width: 145, Height: 119
Frame Number=38 Number of Objects=1
	 Object: car - Top: 46, Left: 380, Width: 145, Height: 119
Frame Number=39 Number of Objects=1
	 Object: car - Top: 51, Left: 372, Width: 160, Height: 133
Frame Number=40 Number of Objects=1
	 Object: car - Top: 51, Left: 372, Width: 160, Height: 133
Frame Number=41 Number of Objects=1
	 Object: car - Top: 51, Left: 372, Width: 160, Height: 133
Frame Number=42 Number of Objects=2
	 Object: car - Top: 25, Left: 372, Width: 47, Height: 37
	 Object: car - Top: 52, Left: 360, Width: 178, Height: 156
Frame Number=43 Number of Objects=2
	 Object: car - Top: 25, Left: 372, Width: 47, Height: 37
	 Object: car - Top: 51, Left: 360, Width: 178, Height: 156
Frame Number=44 Number of Objects=2
	 Object: car - Top: 25, Left: 372, Width: 48, Height: 37
	 Object: car - Top: 52, Left: 360, Width: 177, Height: 156
Frame Number=45 Number of Objects=2
	 Object: car - Top: 29, Left: 375, Width: 54, Height: 37
	 Object: car - Top: 59, Left: 325, Width: 223, Height: 209
Frame Number=46 Number of Objects=2
	 Object: car - Top: 28, Left: 375, Width: 54, Height: 39
	 Object: car - Top: 59, Left: 325, Width: 223, Height: 209
Frame Number=47 Number of Objects=2
	 Object: car - Top: 28, Left: 375, Width: 54, Height: 39
	 Object: car - Top: 59, Left: 325, Width: 223, Height: 209
Frame Number=48 Number of Objects=1
	 Object: car - Top: 68, Left: 299, Width: 255, Height: 250
Frame Number=49 Number of Objects=1
	 Object: car - Top: 68, Left: 299, Width: 255, Height: 251
Frame Number=50 Number of Objects=1
	 Object: car - Top: 68, Left: 299, Width: 255, Height: 250
Frame Number=51 Number of Objects=1
	 Object: car - Top: 78, Left: 276, Width: 267, Height: 317
Frame Number=52 Number of Objects=1
	 Object: car - Top: 78, Left: 276, Width: 267, Height: 317
Frame Number=53 Number of Objects=1
	 Object: car - Top: 78, Left: 276, Width: 267, Height: 317
Frame Number=54 Number of Objects=1
	 Object: car - Top: 77, Left: 232, Width: 328, Height: 375
Frame Number=55 Number of Objects=1
	 Object: car - Top: 77, Left: 232, Width: 328, Height: 375
Frame Number=56 Number of Objects=2
	 Object: car - Top: 32, Left: 376, Width: 70, Height: 47
	 Object: car - Top: 77, Left: 232, Width: 328, Height: 375
Frame Number=57 Number of Objects=0
Frame Number=58 Number of Objects=0
Frame Number=59 Number of Objects=0
Frame Number=60 Number of Objects=1
	 Object: car - Top: 112, Left: 227, Width: 320, Height: 259
Frame Number=61 Number of Objects=1
	 Object: car - Top: 112, Left: 227, Width: 320, Height: 260
Frame Number=62 Number of Objects=1
	 Object: car - Top: 112, Left: 227, Width: 320, Height: 261
Frame Number=63 Number of Objects=1
	 Object: car - Top: 35, Left: 383, Width: 94, Height: 64
Frame Number=64 Number of Objects=1
	 Object: car - Top: 35, Left: 383, Width: 94, Height: 64
Frame Number=65 Number of Objects=1
	 Object: car - Top: 35, Left: 383, Width: 94, Height: 64
Frame Number=66 Number of Objects=1
	 Object: car - Top: 35, Left: 385, Width: 99, Height: 69
Frame Number=67 Number of Objects=1
	 Object: car - Top: 35, Left: 384, Width: 99, Height: 69
Frame Number=68 Number of Objects=1
	 Object: car - Top: 35, Left: 385, Width: 99, Height: 69
Frame Number=69 Number of Objects=1
	 Object: car - Top: 38, Left: 384, Width: 106, Height: 71
Frame Number=70 Number of Objects=1
	 Object: car - Top: 38, Left: 384, Width: 106, Height: 71
Frame Number=71 Number of Objects=1
	 Object: car - Top: 38, Left: 384, Width: 106, Height: 71
Frame Number=72 Number of Objects=1
	 Object: car - Top: 41, Left: 386, Width: 110, Height: 74
Frame Number=73 Number of Objects=1
	 Object: car - Top: 41, Left: 386, Width: 110, Height: 74
Frame Number=74 Number of Objects=1
	 Object: car - Top: 41, Left: 386, Width: 110, Height: 74
Frame Number=75 Number of Objects=1
	 Object: car - Top: 43, Left: 388, Width: 114, Height: 79
Frame Number=76 Number of Objects=1
	 Object: car - Top: 43, Left: 388, Width: 114, Height: 79
Frame Number=77 Number of Objects=1
	 Object: car - Top: 43, Left: 387, Width: 114, Height: 79
Frame Number=78 Number of Objects=1
	 Object: car - Top: 44, Left: 388, Width: 122, Height: 85
Frame Number=79 Number of Objects=1
	 Object: car - Top: 44, Left: 388, Width: 122, Height: 85
Frame Number=80 Number of Objects=1
	 Object: car - Top: 44, Left: 388, Width: 122, Height: 85
Frame Number=81 Number of Objects=1
	 Object: car - Top: 45, Left: 392, Width: 137, Height: 99
Frame Number=82 Number of Objects=1
	 Object: car - Top: 45, Left: 392, Width: 137, Height: 99
Frame Number=83 Number of Objects=1
	 Object: car - Top: 45, Left: 392, Width: 137, Height: 99
Frame Number=84 Number of Objects=1
	 Object: car - Top: 47, Left: 392, Width: 146, Height: 106
Frame Number=85 Number of Objects=1
	 Object: car - Top: 47, Left: 392, Width: 146, Height: 106
Frame Number=86 Number of Objects=1
	 Object: car - Top: 47, Left: 392, Width: 146, Height: 106
Frame Number=87 Number of Objects=1
	 Object: car - Top: 47, Left: 392, Width: 149, Height: 116
Frame Number=88 Number of Objects=1
	 Object: car - Top: 48, Left: 392, Width: 149, Height: 116
Frame Number=89 Number of Objects=1
	 Object: car - Top: 47, Left: 392, Width: 150, Height: 116
Frame Number=90 Number of Objects=1
	 Object: car - Top: 51, Left: 391, Width: 160, Height: 126
Frame Number=91 Number of Objects=1
	 Object: car - Top: 51, Left: 391, Width: 160, Height: 126
Frame Number=92 Number of Objects=1
	 Object: car - Top: 51, Left: 391, Width: 160, Height: 126
Frame Number=93 Number of Objects=1
	 Object: car - Top: 55, Left: 389, Width: 173, Height: 139
Frame Number=94 Number of Objects=1
	 Object: car - Top: 55, Left: 389, Width: 174, Height: 139
Frame Number=95 Number of Objects=1
	 Object: car - Top: 55, Left: 389, Width: 173, Height: 139
Frame Number=96 Number of Objects=1
	 Object: car - Top: 59, Left: 384, Width: 191, Height: 156
Frame Number=97 Number of Objects=1
	 Object: car - Top: 59, Left: 385, Width: 190, Height: 156
Frame Number=98 Number of Objects=1
	 Object: car - Top: 59, Left: 384, Width: 191, Height: 156
Frame Number=99 Number of Objects=1
	 Object: car - Top: 62, Left: 383, Width: 211, Height: 200
Frame Number=100 Number of Objects=1
	 Object: car - Top: 62, Left: 383, Width: 211, Height: 200
Frame Number=101 Number of Objects=1
	 Object: car - Top: 62, Left: 383, Width: 211, Height: 200
Frame Number=102 Number of Objects=1
	 Object: car - Top: 68, Left: 373, Width: 227, Height: 230
Frame Number=103 Number of Objects=1
	 Object: car - Top: 68, Left: 373, Width: 227, Height: 230
Frame Number=104 Number of Objects=1
	 Object: car - Top: 68, Left: 373, Width: 227, Height: 230
Frame Number=105 Number of Objects=1
	 Object: car - Top: 71, Left: 359, Width: 259, Height: 265
Frame Number=106 Number of Objects=1
	 Object: car - Top: 71, Left: 358, Width: 259, Height: 265
Frame Number=107 Number of Objects=1
	 Object: car - Top: 71, Left: 359, Width: 259, Height: 265
Frame Number=108 Number of Objects=1
	 Object: car - Top: 70, Left: 351, Width: 280, Height: 325
Frame Number=109 Number of Objects=1
	 Object: car - Top: 70, Left: 351, Width: 280, Height: 324
Frame Number=110 Number of Objects=1
	 Object: car - Top: 70, Left: 351, Width: 280, Height: 325
Frame Number=111 Number of Objects=1
	 Object: car - Top: 101, Left: 325, Width: 325, Height: 365
Frame Number=112 Number of Objects=1
	 Object: car - Top: 101, Left: 325, Width: 325, Height: 365
Frame Number=113 Number of Objects=1
	 Object: car - Top: 101, Left: 325, Width: 325, Height: 365
Frame Number=114 Number of Objects=1
	 Object: car - Top: 119, Left: 279, Width: 426, Height: 401
Frame Number=115 Number of Objects=2
	 Object: car - Top: 419, Left: 297, Width: 101, Height: 96
	 Object: car - Top: 119, Left: 279, Width: 426, Height: 401
Frame Number=116 Number of Objects=1
	 Object: car - Top: 119, Left: 279, Width: 427, Height: 401
Frame Number=117 Number of Objects=0
Frame Number=118 Number of Objects=0
Frame Number=119 Number of Objects=0
Frame Number=120 Number of Objects=0
Frame Number=121 Number of Objects=0
Frame Number=122 Number of Objects=0
Frame Number=123 Number of Objects=0
Frame Number=124 Number of Objects=0
Frame Number=125 Number of Objects=0
Frame Number=126 Number of Objects=0
Frame Number=127 Number of Objects=0
Frame Number=128 Number of Objects=0
Frame Number=129 Number of Objects=0
Frame Number=130 Number of Objects=0
Frame Number=131 Number of Objects=0
Frame Number=132 Number of Objects=0
Frame Number=133 Number of Objects=0
Frame Number=134 Number of Objects=0
Frame Number=135 Number of Objects=0
Frame Number=136 Number of Objects=0
Frame Number=137 Number of Objects=0
Frame Number=138 Number of Objects=1
	 Object: car - Top: 249, Left: 135, Width: 497, Height: 430
Frame Number=139 Number of Objects=1
	 Object: car - Top: 249, Left: 135, Width: 497, Height: 430
Frame Number=140 Number of Objects=1
	 Object: car - Top: 249, Left: 135, Width: 497, Height: 430
Frame Number=141 Number of Objects=0
Frame Number=142 Number of Objects=0
Frame Number=143 Number of Objects=0
Frame Number=144 Number of Objects=0
Frame Number=145 Number of Objects=0
Frame Number=146 Number of Objects=0
Frame Number=147 Number of Objects=0
Frame Number=148 Number of Objects=0
Frame Number=149 Number of Objects=0
Frame Number=150 Number of Objects=0
Frame Number=151 Number of Objects=0
Frame Number=152 Number of Objects=0
Frame Number=153 Number of Objects=0
Frame Number=154 Number of Objects=0
Frame Number=155 Number of Objects=0
Frame Number=156 Number of Objects=0
Frame Number=157 Number of Objects=0
Frame Number=158 Number of Objects=0
Frame Number=159 Number of Objects=1
	 Object: car - Top: 28, Left: 351, Width: 38, Height: 19
Frame Number=160 Number of Objects=1
	 Object: car - Top: 28, Left: 351, Width: 38, Height: 19
Frame Number=161 Number of Objects=1
	 Object: car - Top: 28, Left: 351, Width: 38, Height: 19
Frame Number=162 Number of Objects=1
	 Object: car - Top: 27, Left: 352, Width: 39, Height: 21
Frame Number=163 Number of Objects=1
	 Object: car - Top: 27, Left: 352, Width: 39, Height: 21
Frame Number=164 Number of Objects=1
	 Object: car - Top: 27, Left: 352, Width: 39, Height: 21
Frame Number=165 Number of Objects=1
	 Object: car - Top: 26, Left: 352, Width: 43, Height: 27
Frame Number=166 Number of Objects=1
	 Object: car - Top: 26, Left: 352, Width: 44, Height: 27
Frame Number=167 Number of Objects=1
	 Object: car - Top: 26, Left: 352, Width: 44, Height: 27
Frame Number=168 Number of Objects=1
	 Object: car - Top: 27, Left: 360, Width: 44, Height: 26
Frame Number=169 Number of Objects=1
	 Object: car - Top: 27, Left: 360, Width: 44, Height: 26
Frame Number=170 Number of Objects=1
	 Object: car - Top: 27, Left: 360, Width: 44, Height: 26
Frame Number=171 Number of Objects=1
	 Object: car - Top: 26, Left: 362, Width: 49, Height: 31
Frame Number=172 Number of Objects=1
	 Object: car - Top: 26, Left: 362, Width: 49, Height: 31
Frame Number=173 Number of Objects=1
	 Object: car - Top: 26, Left: 362, Width: 49, Height: 31
Frame Number=174 Number of Objects=1
	 Object: car - Top: 25, Left: 364, Width: 54, Height: 36
Frame Number=175 Number of Objects=1
	 Object: car - Top: 25, Left: 364, Width: 54, Height: 36
Frame Number=176 Number of Objects=1
	 Object: car - Top: 25, Left: 364, Width: 54, Height: 36
Frame Number=177 Number of Objects=1
	 Object: car - Top: 28, Left: 369, Width: 59, Height: 36
Frame Number=178 Number of Objects=1
	 Object: car - Top: 28, Left: 369, Width: 59, Height: 36
Frame Number=179 Number of Objects=1
	 Object: car - Top: 28, Left: 369, Width: 59, Height: 36
Frame Number=180 Number of Objects=1
	 Object: car - Top: 27, Left: 371, Width: 64, Height: 42
Frame Number=181 Number of Objects=1
	 Object: car - Top: 27, Left: 371, Width: 64, Height: 42
Frame Number=182 Number of Objects=1
	 Object: car - Top: 27, Left: 371, Width: 64, Height: 42
Frame Number=183 Number of Objects=1
	 Object: car - Top: 29, Left: 372, Width: 64, Height: 44
Frame Number=184 Number of Objects=1
	 Object: car - Top: 29, Left: 372, Width: 65, Height: 44
Frame Number=185 Number of Objects=1
	 Object: car - Top: 29, Left: 372, Width: 71, Height: 46
Frame Number=186 Number of Objects=1
	 Object: car - Top: 34, Left: 378, Width: 87, Height: 52
Frame Number=187 Number of Objects=1
	 Object: car - Top: 34, Left: 378, Width: 87, Height: 52
Frame Number=188 Number of Objects=1
	 Object: car - Top: 34, Left: 378, Width: 87, Height: 52
Frame Number=189 Number of Objects=1
	 Object: car - Top: 34, Left: 381, Width: 90, Height: 56
Frame Number=190 Number of Objects=1
	 Object: car - Top: 34, Left: 381, Width: 90, Height: 56
Frame Number=191 Number of Objects=1
	 Object: car - Top: 34, Left: 381, Width: 90, Height: 56
Frame Number=192 Number of Objects=1
	 Object: car - Top: 35, Left: 383, Width: 98, Height: 62
Frame Number=193 Number of Objects=1
	 Object: car - Top: 35, Left: 383, Width: 98, Height: 62
Frame Number=194 Number of Objects=1
	 Object: car - Top: 35, Left: 383, Width: 98, Height: 62
Frame Number=195 Number of Objects=1
	 Object: car - Top: 36, Left: 385, Width: 103, Height: 69
Frame Number=196 Number of Objects=1
	 Object: car - Top: 36, Left: 385, Width: 103, Height: 69
Frame Number=197 Number of Objects=1
	 Object: car - Top: 36, Left: 385, Width: 103, Height: 69
Frame Number=198 Number of Objects=1
	 Object: car - Top: 38, Left: 387, Width: 110, Height: 74
Frame Number=199 Number of Objects=1
	 Object: car - Top: 38, Left: 387, Width: 110, Height: 74
Frame Number=200 Number of Objects=1
	 Object: car - Top: 37, Left: 387, Width: 110, Height: 74
Frame Number=201 Number of Objects=1
	 Object: car - Top: 39, Left: 389, Width: 113, Height: 79
Frame Number=202 Number of Objects=1
	 Object: car - Top: 39, Left: 389, Width: 113, Height: 79
Frame Number=203 Number of Objects=1
	 Object: car - Top: 39, Left: 389, Width: 113, Height: 79
Frame Number=204 Number of Objects=1
	 Object: car - Top: 44, Left: 394, Width: 122, Height: 92
Frame Number=205 Number of Objects=1
	 Object: car - Top: 44, Left: 394, Width: 122, Height: 92
Frame Number=206 Number of Objects=1
	 Object: car - Top: 44, Left: 394, Width: 122, Height: 92
Frame Number=207 Number of Objects=1
	 Object: car - Top: 46, Left: 391, Width: 128, Height: 103
Frame Number=208 Number of Objects=1
	 Object: car - Top: 46, Left: 391, Width: 128, Height: 103
Frame Number=209 Number of Objects=1
	 Object: car - Top: 46, Left: 391, Width: 128, Height: 103
Frame Number=210 Number of Objects=1
	 Object: car - Top: 46, Left: 383, Width: 148, Height: 113
Frame Number=211 Number of Objects=1
	 Object: car - Top: 46, Left: 383, Width: 148, Height: 113
Frame Number=212 Number of Objects=1
	 Object: car - Top: 46, Left: 383, Width: 148, Height: 113
Frame Number=213 Number of Objects=1
	 Object: car - Top: 50, Left: 373, Width: 147, Height: 123
Frame Number=214 Number of Objects=1
	 Object: car - Top: 50, Left: 373, Width: 147, Height: 123
Frame Number=215 Number of Objects=1
	 Object: car - Top: 50, Left: 373, Width: 147, Height: 123
Frame Number=216 Number of Objects=1
	 Object: car - Top: 53, Left: 356, Width: 159, Height: 134
Frame Number=217 Number of Objects=1
	 Object: car - Top: 53, Left: 356, Width: 159, Height: 134
Frame Number=218 Number of Objects=1
	 Object: car - Top: 53, Left: 356, Width: 159, Height: 134
Frame Number=219 Number of Objects=1
	 Object: car - Top: 57, Left: 334, Width: 175, Height: 156
Frame Number=220 Number of Objects=1
	 Object: car - Top: 57, Left: 334, Width: 175, Height: 156
Frame Number=221 Number of Objects=1
	 Object: car - Top: 57, Left: 334, Width: 176, Height: 156
Frame Number=222 Number of Objects=1
	 Object: car - Top: 64, Left: 278, Width: 233, Height: 189
Frame Number=223 Number of Objects=1
	 Object: car - Top: 64, Left: 278, Width: 233, Height: 189
Frame Number=224 Number of Objects=1
	 Object: car - Top: 64, Left: 278, Width: 233, Height: 189
Frame Number=225 Number of Objects=1
	 Object: car - Top: 66, Left: 234, Width: 266, Height: 223
Frame Number=226 Number of Objects=1
	 Object: car - Top: 66, Left: 234, Width: 266, Height: 223
Frame Number=227 Number of Objects=1
	 Object: car - Top: 66, Left: 234, Width: 266, Height: 223
Frame Number=228 Number of Objects=1
	 Object: car - Top: 74, Left: 197, Width: 292, Height: 257
Frame Number=229 Number of Objects=1
	 Object: car - Top: 74, Left: 197, Width: 292, Height: 257
Frame Number=230 Number of Objects=1
	 Object: car - Top: 74, Left: 197, Width: 292, Height: 257
Frame Number=231 Number of Objects=1
	 Object: car - Top: 77, Left: 158, Width: 356, Height: 306
Frame Number=232 Number of Objects=1
	 Object: car - Top: 77, Left: 159, Width: 356, Height: 306
Frame Number=233 Number of Objects=1
	 Object: car - Top: 77, Left: 159, Width: 355, Height: 306
Frame Number=234 Number of Objects=1
	 Object: car - Top: 81, Left: 140, Width: 375, Height: 341
Frame Number=235 Number of Objects=1
	 Object: car - Top: 81, Left: 140, Width: 375, Height: 341
Frame Number=236 Number of Objects=1
	 Object: car - Top: 81, Left: 140, Width: 375, Height: 341
Frame Number=237 Number of Objects=1
	 Object: car - Top: 73, Left: 144, Width: 327, Height: 342
Frame Number=238 Number of Objects=1
	 Object: car - Top: 73, Left: 144, Width: 327, Height: 343
Frame Number=239 Number of Objects=1
	 Object: car - Top: 73, Left: 144, Width: 327, Height: 343
Frame Number=240 Number of Objects=0
Frame Number=241 Number of Objects=0
Frame Number=242 Number of Objects=0
Frame Number=243 Number of Objects=0
Frame Number=244 Number of Objects=0
Frame Number=245 Number of Objects=0
Frame Number=246 Number of Objects=0
Frame Number=247 Number of Objects=0
Frame Number=248 Number of Objects=0
Frame Number=249 Number of Objects=0
Frame Number=250 Number of Objects=0
Frame Number=251 Number of Objects=0
Frame Number=252 Number of Objects=0
Frame Number=253 Number of Objects=0
Frame Number=254 Number of Objects=0
Frame Number=255 Number of Objects=1
	 Object: car - Top: 166, Left: 1, Width: 259, Height: 374
Frame Number=256 Number of Objects=1
	 Object: car - Top: 166, Left: 1, Width: 259, Height: 373
Frame Number=257 Number of Objects=1
	 Object: car - Top: 166, Left: 1, Width: 259, Height: 373
Frame Number=258 Number of Objects=1
	 Object: car - Top: 249, Left: 0, Width: 167, Height: 296
Frame Number=259 Number of Objects=1
	 Object: car - Top: 259, Left: 1, Width: 126, Height: 252
Frame Number=260 Number of Objects=1
	 Object: car - Top: 249, Left: 0, Width: 167, Height: 296
Frame Number=261 Number of Objects=0
Frame Number=262 Number of Objects=0
Frame Number=263 Number of Objects=0
Frame Number=264 Number of Objects=0
Frame Number=265 Number of Objects=0
Frame Number=266 Number of Objects=0
Frame Number=267 Number of Objects=0
Frame Number=268 Number of Objects=0
Frame Number=269 Number of Objects=0
Frame Number=270 Number of Objects=0
Frame Number=271 Number of Objects=0
Frame Number=272 Number of Objects=0
Frame Number=273 Number of Objects=0
Frame Number=274 Number of Objects=0
Frame Number=275 Number of Objects=0
Frame Number=276 Number of Objects=0
Frame Number=277 Number of Objects=0
Frame Number=278 Number of Objects=0
Frame Number=279 Number of Objects=0
Frame Number=280 Number of Objects=0
Frame Number=281 Number of Objects=0
Frame Number=282 Number of Objects=0
Frame Number=283 Number of Objects=0
Frame Number=284 Number of Objects=0
Frame Number=285 Number of Objects=0
Frame Number=286 Number of Objects=0
Frame Number=287 Number of Objects=0
Frame Number=288 Number of Objects=1
	 Object: car - Top: 69, Left: 653, Width: 235, Height: 347
Frame Number=289 Number of Objects=1
	 Object: car - Top: 68, Left: 653, Width: 235, Height: 350
Frame Number=290 Number of Objects=1
	 Object: car - Top: 69, Left: 653, Width: 234, Height: 348
Frame Number=291 Number of Objects=1
	 Object: car - Top: 107, Left: 743, Width: 144, Height: 213
Frame Number=292 Number of Objects=1
	 Object: car - Top: 107, Left: 743, Width: 144, Height: 213
Frame Number=293 Number of Objects=1
	 Object: car - Top: 107, Left: 743, Width: 144, Height: 213
Frame Number=294 Number of Objects=0
Frame Number=295 Number of Objects=0
Frame Number=296 Number of Objects=0
Frame Number=297 Number of Objects=0
Frame Number=298 Number of Objects=0
Frame Number=299 Number of Objects=0
Frame Number=300 Number of Objects=0
Frame Number=301 Number of Objects=0
Frame Number=302 Number of Objects=0
Frame Number=303 Number of Objects=0
Frame Number=304 Number of Objects=0
Frame Number=305 Number of Objects=0
Frame Number=306 Number of Objects=0
Frame Number=307 Number of Objects=0
Frame Number=308 Number of Objects=0
Frame Number=309 Number of Objects=0
Frame Number=310 Number of Objects=0
Frame Number=311 Number of Objects=0
Frame Number=312 Number of Objects=1
	 Object: car - Top: 68, Left: 822, Width: 65, Height: 76
Frame Number=313 Number of Objects=1
	 Object: car - Top: 68, Left: 822, Width: 65, Height: 76
Frame Number=314 Number of Objects=1
	 Object: car - Top: 68, Left: 822, Width: 65, Height: 76
Frame Number=315 Number of Objects=1
	 Object: car - Top: 64, Left: 806, Width: 82, Height: 77
Frame Number=316 Number of Objects=1
	 Object: car - Top: 64, Left: 806, Width: 82, Height: 77
Frame Number=317 Number of Objects=1
	 Object: car - Top: 64, Left: 806, Width: 82, Height: 77
Frame Number=318 Number of Objects=1
	 Object: car - Top: 61, Left: 791, Width: 96, Height: 75
Frame Number=319 Number of Objects=1
	 Object: car - Top: 61, Left: 791, Width: 96, Height: 74
Frame Number=320 Number of Objects=1
	 Object: car - Top: 61, Left: 791, Width: 96, Height: 74
Frame Number=321 Number of Objects=1
	 Object: car - Top: 58, Left: 778, Width: 108, Height: 75
Frame Number=322 Number of Objects=1
	 Object: car - Top: 58, Left: 778, Width: 108, Height: 75
Frame Number=323 Number of Objects=1
	 Object: car - Top: 58, Left: 778, Width: 108, Height: 75
Frame Number=324 Number of Objects=1
	 Object: car - Top: 53, Left: 762, Width: 122, Height: 76
Frame Number=325 Number of Objects=1
	 Object: car - Top: 53, Left: 762, Width: 122, Height: 76
Frame Number=326 Number of Objects=1
	 Object: car - Top: 52, Left: 762, Width: 122, Height: 76
Frame Number=327 Number of Objects=1
	 Object: car - Top: 29, Left: 749, Width: 138, Height: 95
Frame Number=328 Number of Objects=1
	 Object: car - Top: 28, Left: 749, Width: 138, Height: 95
Frame Number=329 Number of Objects=1
	 Object: car - Top: 28, Left: 749, Width: 138, Height: 95
Frame Number=330 Number of Objects=1
	 Object: car - Top: 52, Left: 743, Width: 120, Height: 68
Frame Number=331 Number of Objects=1
	 Object: car - Top: 52, Left: 743, Width: 120, Height: 68
Frame Number=332 Number of Objects=1
	 Object: car - Top: 52, Left: 743, Width: 120, Height: 68
Frame Number=333 Number of Objects=1
	 Object: car - Top: 40, Left: 731, Width: 151, Height: 77
Frame Number=334 Number of Objects=1
	 Object: car - Top: 40, Left: 731, Width: 152, Height: 77
Frame Number=335 Number of Objects=0
Frame Number=336 Number of Objects=2
	 Object: car - Top: 32, Left: 729, Width: 157, Height: 83
	 Object: car - Top: 53, Left: 728, Width: 96, Height: 60
Frame Number=337 Number of Objects=2
	 Object: car - Top: 32, Left: 729, Width: 157, Height: 83
	 Object: car - Top: 53, Left: 728, Width: 96, Height: 60
Frame Number=338 Number of Objects=2
	 Object: car - Top: 32, Left: 729, Width: 157, Height: 83
	 Object: car - Top: 53, Left: 728, Width: 96, Height: 60
Frame Number=339 Number of Objects=1
	 Object: car - Top: 52, Left: 716, Width: 121, Height: 60
Frame Number=340 Number of Objects=1
	 Object: car - Top: 52, Left: 716, Width: 121, Height: 59
Frame Number=341 Number of Objects=1
	 Object: car - Top: 52, Left: 716, Width: 121, Height: 59
Frame Number=342 Number of Objects=1
	 Object: car - Top: 51, Left: 706, Width: 103, Height: 53
Frame Number=343 Number of Objects=1
	 Object: car - Top: 51, Left: 706, Width: 103, Height: 53
Frame Number=344 Number of Objects=1
	 Object: car - Top: 51, Left: 706, Width: 104, Height: 53
Frame Number=345 Number of Objects=0
Frame Number=346 Number of Objects=0
Frame Number=347 Number of Objects=0
Frame Number=348 Number of Objects=2
	 Object: car - Top: 22, Left: 659, Width: 181, Height: 74
	 Object: car - Top: 44, Left: 663, Width: 101, Height: 51
Frame Number=349 Number of Objects=2
	 Object: car - Top: 22, Left: 659, Width: 181, Height: 74
	 Object: car - Top: 42, Left: 662, Width: 102, Height: 52
Frame Number=350 Number of Objects=2
	 Object: car - Top: 22, Left: 659, Width: 181, Height: 74
	 Object: car - Top: 44, Left: 663, Width: 101, Height: 51
Frame Number=351 Number of Objects=1
	 Object: car - Top: 40, Left: 647, Width: 118, Height: 55
Frame Number=352 Number of Objects=1
	 Object: car - Top: 40, Left: 647, Width: 118, Height: 55
Frame Number=353 Number of Objects=1
	 Object: car - Top: 40, Left: 647, Width: 118, Height: 55
Frame Number=354 Number of Objects=1
	 Object: car - Top: 37, Left: 637, Width: 122, Height: 47
Frame Number=355 Number of Objects=1
	 Object: car - Top: 37, Left: 637, Width: 122, Height: 47
Frame Number=356 Number of Objects=1
	 Object: car - Top: 37, Left: 637, Width: 123, Height: 47
Frame Number=357 Number of Objects=1
	 Object: car - Top: 35, Left: 615, Width: 133, Height: 48
Frame Number=358 Number of Objects=1
	 Object: car - Top: 35, Left: 614, Width: 133, Height: 47
Frame Number=359 Number of Objects=1
	 Object: car - Top: 35, Left: 615, Width: 133, Height: 47
Frame Number=360 Number of Objects=1
	 Object: car - Top: 33, Left: 594, Width: 127, Height: 44
Frame Number=361 Number of Objects=1
	 Object: car - Top: 33, Left: 593, Width: 129, Height: 44
Frame Number=362 Number of Objects=1
	 Object: car - Top: 33, Left: 593, Width: 129, Height: 44
Frame Number=363 Number of Objects=1
	 Object: car - Top: 31, Left: 586, Width: 99, Height: 37
Frame Number=364 Number of Objects=1
	 Object: car - Top: 31, Left: 586, Width: 99, Height: 37
Frame Number=365 Number of Objects=1
	 Object: car - Top: 31, Left: 586, Width: 99, Height: 37
Frame Number=366 Number of Objects=0
Frame Number=367 Number of Objects=0
Frame Number=368 Number of Objects=0
Frame Number=369 Number of Objects=1
	 Object: car - Top: 29, Left: 579, Width: 66, Height: 30
Frame Number=370 Number of Objects=1
	 Object: car - Top: 29, Left: 579, Width: 66, Height: 30
Frame Number=371 Number of Objects=1
	 Object: car - Top: 29, Left: 579, Width: 67, Height: 30
Frame Number=372 Number of Objects=0
Frame Number=373 Number of Objects=0
Frame Number=374 Number of Objects=0
Frame Number=375 Number of Objects=0
Frame Number=376 Number of Objects=0
Frame Number=377 Number of Objects=0
Frame Number=378 Number of Objects=0
Frame Number=379 Number of Objects=0
Frame Number=380 Number of Objects=0
Frame Number=381 Number of Objects=0
Frame Number=382 Number of Objects=0
Frame Number=383 Number of Objects=0
Frame Number=384 Number of Objects=0
Frame Number=385 Number of Objects=0
Frame Number=386 Number of Objects=0
Frame Number=387 Number of Objects=0
Frame Number=388 Number of Objects=0
Frame Number=389 Number of Objects=0
Frame Number=390 Number of Objects=0
Frame Number=391 Number of Objects=0
Frame Number=392 Number of Objects=0
Frame Number=393 Number of Objects=0
Frame Number=394 Number of Objects=0
Frame Number=395 Number of Objects=0
Frame Number=396 Number of Objects=0
Frame Number=397 Number of Objects=0
Frame Number=398 Number of Objects=0
Frame Number=399 Number of Objects=0
Frame Number=400 Number of Objects=0
Frame Number=401 Number of Objects=0
Frame Number=402 Number of Objects=0
Frame Number=403 Number of Objects=0
Frame Number=404 Number of Objects=0
Frame Number=405 Number of Objects=0
Frame Number=406 Number of Objects=0
Frame Number=407 Number of Objects=0
Frame Number=408 Number of Objects=0
Frame Number=409 Number of Objects=0
Frame Number=410 Number of Objects=0
Frame Number=411 Number of Objects=1
	 Object: car - Top: 24, Left: 452, Width: 40, Height: 23
Frame Number=412 Number of Objects=1
	 Object: car - Top: 24, Left: 452, Width: 40, Height: 23
Frame Number=413 Number of Objects=1
	 Object: car - Top: 24, Left: 451, Width: 40, Height: 23
Frame Number=414 Number of Objects=1
	 Object: car - Top: 22, Left: 459, Width: 46, Height: 29
Frame Number=415 Number of Objects=1
	 Object: car - Top: 22, Left: 459, Width: 46, Height: 29
Frame Number=416 Number of Objects=1
	 Object: car - Top: 22, Left: 459, Width: 46, Height: 29
Frame Number=417 Number of Objects=0
Frame Number=418 Number of Objects=0
Frame Number=419 Number of Objects=0
Frame Number=420 Number of Objects=1
	 Object: car - Top: 21, Left: 459, Width: 68, Height: 38
Frame Number=421 Number of Objects=1
	 Object: car - Top: 21, Left: 459, Width: 68, Height: 38
Frame Number=422 Number of Objects=1
	 Object: car - Top: 21, Left: 459, Width: 68, Height: 38
Frame Number=423 Number of Objects=1
	 Object: car - Top: 0, Left: 471, Width: 59, Height: 63
Frame Number=424 Number of Objects=1
	 Object: car - Top: 0, Left: 471, Width: 59, Height: 63
Frame Number=425 Number of Objects=1
	 Object: car - Top: 0, Left: 471, Width: 59, Height: 63
Frame Number=426 Number of Objects=1
	 Object: car - Top: 31, Left: 484, Width: 44, Height: 31
Frame Number=427 Number of Objects=1
	 Object: car - Top: 31, Left: 484, Width: 44, Height: 31
Frame Number=428 Number of Objects=1
	 Object: car - Top: 31, Left: 484, Width: 44, Height: 31
Frame Number=429 Number of Objects=1
	 Object: car - Top: 3, Left: 577, Width: 100, Height: 91
Frame Number=430 Number of Objects=1
	 Object: car - Top: 3, Left: 577, Width: 100, Height: 91
Frame Number=431 Number of Objects=1
	 Object: car - Top: 3, Left: 577, Width: 100, Height: 91
Frame Number=432 Number of Objects=1
	 Object: car - Top: 33, Left: 577, Width: 151, Height: 81
Frame Number=433 Number of Objects=1
	 Object: car - Top: 33, Left: 577, Width: 150, Height: 81
Frame Number=434 Number of Objects=1
	 Object: car - Top: 33, Left: 577, Width: 151, Height: 81
Frame Number=435 Number of Objects=0
Frame Number=436 Number of Objects=0
Frame Number=437 Number of Objects=0
Frame Number=438 Number of Objects=0
Frame Number=439 Number of Objects=0
Frame Number=440 Number of Objects=0
Frame Number=441 Number of Objects=0
Frame Number=442 Number of Objects=0
Frame Number=443 Number of Objects=0
Frame Number=444 Number of Objects=0
Frame Number=445 Number of Objects=0
Frame Number=446 Number of Objects=0
Frame Number=447 Number of Objects=1
	 Object: car - Top: 22, Left: 450, Width: 40, Height: 24
Frame Number=448 Number of Objects=1
	 Object: car - Top: 22, Left: 450, Width: 40, Height: 24
Frame Number=449 Number of Objects=1
	 Object: car - Top: 22, Left: 450, Width: 40, Height: 24
Frame Number=450 Number of Objects=1
	 Object: car - Top: 25, Left: 452, Width: 52, Height: 30
Frame Number=451 Number of Objects=1
	 Object: car - Top: 25, Left: 452, Width: 52, Height: 30
Frame Number=452 Number of Objects=1
	 Object: car - Top: 25, Left: 456, Width: 47, Height: 28
Frame Number=453 Number of Objects=1
	 Object: car - Top: 27, Left: 453, Width: 61, Height: 27
Frame Number=454 Number of Objects=1
	 Object: car - Top: 27, Left: 453, Width: 61, Height: 27
Frame Number=455 Number of Objects=1
	 Object: car - Top: 27, Left: 453, Width: 62, Height: 27
Frame Number=456 Number of Objects=1
	 Object: car - Top: 23, Left: 459, Width: 69, Height: 36
Frame Number=457 Number of Objects=1
	 Object: car - Top: 23, Left: 459, Width: 69, Height: 36
Frame Number=458 Number of Objects=1
	 Object: car - Top: 23, Left: 459, Width: 69, Height: 36
Frame Number=459 Number of Objects=1
	 Object: car - Top: 25, Left: 469, Width: 59, Height: 40
Frame Number=460 Number of Objects=1
	 Object: car - Top: 25, Left: 469, Width: 59, Height: 40
Frame Number=461 Number of Objects=1
	 Object: car - Top: 25, Left: 469, Width: 59, Height: 40
Frame Number=462 Number of Objects=2
	 Object: car - Top: 30, Left: 483, Width: 44, Height: 26
	 Object: car - Top: 37, Left: 481, Width: 47, Height: 34
Frame Number=463 Number of Objects=2
	 Object: car - Top: 30, Left: 483, Width: 44, Height: 25
	 Object: car - Top: 37, Left: 481, Width: 47, Height: 34
Frame Number=464 Number of Objects=2
	 Object: car - Top: 30, Left: 483, Width: 44, Height: 25
	 Object: car - Top: 37, Left: 481, Width: 47, Height: 34
Frame Number=465 Number of Objects=1
	 Object: car - Top: 35, Left: 578, Width: 73, Height: 57
Frame Number=466 Number of Objects=1
	 Object: car - Top: 35, Left: 578, Width: 73, Height: 57
Frame Number=467 Number of Objects=1
	 Object: car - Top: 35, Left: 578, Width: 73, Height: 57
Frame Number=468 Number of Objects=1
	 Object: car - Top: 30, Left: 577, Width: 133, Height: 82
Frame Number=469 Number of Objects=1
	 Object: car - Top: 30, Left: 577, Width: 133, Height: 82
Frame Number=470 Number of Objects=1
	 Object: car - Top: 30, Left: 577, Width: 133, Height: 82
Frame Number=471 Number of Objects=0
Frame Number=472 Number of Objects=0
Frame Number=473 Number of Objects=0
Frame Number=474 Number of Objects=0
Frame Number=475 Number of Objects=0
Frame Number=476 Number of Objects=0
Frame Number=477 Number of Objects=0
Frame Number=478 Number of Objects=0
Frame Number=479 Number of Objects=0
Frame Number=480 Number of Objects=0
Frame Number=481 Number of Objects=0
Frame Number=482 Number of Objects=0
Frame Number=483 Number of Objects=1
	 Object: car - Top: 30, Left: 359, Width: 39, Height: 19
Frame Number=484 Number of Objects=1
	 Object: car - Top: 30, Left: 359, Width: 39, Height: 19
Frame Number=485 Number of Objects=1
	 Object: car - Top: 30, Left: 359, Width: 39, Height: 19
Frame Number=486 Number of Objects=1
	 Object: car - Top: 24, Left: 362, Width: 40, Height: 22
Frame Number=487 Number of Objects=1
	 Object: car - Top: 24, Left: 362, Width: 40, Height: 22
Frame Number=488 Number of Objects=1
	 Object: car - Top: 24, Left: 362, Width: 40, Height: 22
Frame Number=489 Number of Objects=1
	 Object: car - Top: 23, Left: 363, Width: 41, Height: 24
Frame Number=490 Number of Objects=1
	 Object: car - Top: 23, Left: 363, Width: 41, Height: 24
Frame Number=491 Number of Objects=1
	 Object: car - Top: 23, Left: 363, Width: 41, Height: 24
Frame Number=492 Number of Objects=1
	 Object: car - Top: 24, Left: 365, Width: 44, Height: 28
Frame Number=493 Number of Objects=1
	 Object: car - Top: 24, Left: 365, Width: 44, Height: 28
Frame Number=494 Number of Objects=1
	 Object: car - Top: 24, Left: 365, Width: 44, Height: 28
Frame Number=495 Number of Objects=1
	 Object: car - Top: 24, Left: 366, Width: 46, Height: 28
Frame Number=496 Number of Objects=1
	 Object: car - Top: 24, Left: 366, Width: 46, Height: 28
Frame Number=497 Number of Objects=1
	 Object: car - Top: 24, Left: 366, Width: 46, Height: 28
Frame Number=498 Number of Objects=1
	 Object: car - Top: 26, Left: 367, Width: 52, Height: 32
Frame Number=499 Number of Objects=1
	 Object: car - Top: 26, Left: 367, Width: 52, Height: 32
Frame Number=500 Number of Objects=0
Frame Number=501 Number of Objects=1
	 Object: car - Top: 29, Left: 375, Width: 57, Height: 36
Frame Number=502 Number of Objects=1
	 Object: car - Top: 29, Left: 375, Width: 57, Height: 36
Frame Number=503 Number of Objects=1
	 Object: car - Top: 29, Left: 375, Width: 57, Height: 36
Frame Number=504 Number of Objects=0
Frame Number=505 Number of Objects=0
Frame Number=506 Number of Objects=0
Frame Number=507 Number of Objects=1
	 Object: car - Top: 32, Left: 376, Width: 74, Height: 47
Frame Number=508 Number of Objects=1
	 Object: car - Top: 32, Left: 376, Width: 74, Height: 47
Frame Number=509 Number of Objects=0
Frame Number=510 Number of Objects=1
	 Object: car - Top: 35, Left: 377, Width: 80, Height: 50
Frame Number=511 Number of Objects=1
	 Object: car - Top: 35, Left: 377, Width: 80, Height: 50
Frame Number=512 Number of Objects=1
	 Object: car - Top: 35, Left: 377, Width: 80, Height: 50
Frame Number=513 Number of Objects=1
	 Object: car - Top: 36, Left: 379, Width: 89, Height: 57
Frame Number=514 Number of Objects=1
	 Object: car - Top: 36, Left: 379, Width: 89, Height: 57
Frame Number=515 Number of Objects=1
	 Object: car - Top: 36, Left: 379, Width: 89, Height: 57
Frame Number=516 Number of Objects=1
	 Object: car - Top: 37, Left: 381, Width: 100, Height: 65
Frame Number=517 Number of Objects=1
	 Object: car - Top: 37, Left: 381, Width: 100, Height: 65
Frame Number=518 Number of Objects=1
	 Object: car - Top: 37, Left: 381, Width: 100, Height: 65
Frame Number=519 Number of Objects=2
	 Object: car - Top: 47, Left: 387, Width: 51, Height: 57
	 Object: car - Top: 46, Left: 390, Width: 121, Height: 81
Frame Number=520 Number of Objects=2
	 Object: car - Top: 47, Left: 387, Width: 51, Height: 57
	 Object: car - Top: 46, Left: 390, Width: 121, Height: 81
Frame Number=521 Number of Objects=2
	 Object: car - Top: 47, Left: 387, Width: 51, Height: 57
	 Object: car - Top: 46, Left: 390, Width: 121, Height: 81
Frame Number=522 Number of Objects=1
	 Object: car - Top: 48, Left: 394, Width: 137, Height: 95
Frame Number=523 Number of Objects=1
	 Object: car - Top: 48, Left: 394, Width: 137, Height: 95
Frame Number=524 Number of Objects=1
	 Object: car - Top: 48, Left: 394, Width: 137, Height: 95
Frame Number=525 Number of Objects=1
	 Object: car - Top: 52, Left: 396, Width: 153, Height: 107
Frame Number=526 Number of Objects=1
	 Object: car - Top: 52, Left: 396, Width: 153, Height: 107
Frame Number=527 Number of Objects=1
	 Object: car - Top: 52, Left: 396, Width: 153, Height: 107
Frame Number=528 Number of Objects=1
	 Object: car - Top: 53, Left: 401, Width: 166, Height: 127
Frame Number=529 Number of Objects=1
	 Object: car - Top: 53, Left: 401, Width: 166, Height: 127
Frame Number=530 Number of Objects=1
	 Object: car - Top: 53, Left: 401, Width: 166, Height: 127
Frame Number=531 Number of Objects=1
	 Object: car - Top: 57, Left: 398, Width: 188, Height: 142
Frame Number=532 Number of Objects=1
	 Object: car - Top: 57, Left: 398, Width: 188, Height: 142
Frame Number=533 Number of Objects=1
	 Object: car - Top: 57, Left: 398, Width: 188, Height: 142
Frame Number=534 Number of Objects=1
	 Object: car - Top: 61, Left: 402, Width: 204, Height: 150
Frame Number=535 Number of Objects=1
	 Object: car - Top: 61, Left: 402, Width: 204, Height: 150
Frame Number=536 Number of Objects=1
	 Object: car - Top: 61, Left: 402, Width: 204, Height: 150
Frame Number=537 Number of Objects=2
	 Object: car - Top: 22, Left: 367, Width: 37, Height: 26
	 Object: car - Top: 66, Left: 428, Width: 218, Height: 180
Frame Number=538 Number of Objects=2
	 Object: car - Top: 22, Left: 367, Width: 37, Height: 26
	 Object: car - Top: 66, Left: 428, Width: 218, Height: 180
Frame Number=539 Number of Objects=2
	 Object: car - Top: 22, Left: 367, Width: 37, Height: 26
	 Object: car - Top: 66, Left: 428, Width: 218, Height: 180
Frame Number=540 Number of Objects=2
	 Object: car - Top: 24, Left: 369, Width: 38, Height: 26
	 Object: car - Top: 68, Left: 436, Width: 224, Height: 203
Frame Number=541 Number of Objects=2
	 Object: car - Top: 24, Left: 369, Width: 38, Height: 26
	 Object: car - Top: 68, Left: 436, Width: 224, Height: 203
Frame Number=542 Number of Objects=2
	 Object: car - Top: 24, Left: 369, Width: 38, Height: 26
	 Object: car - Top: 68, Left: 436, Width: 224, Height: 203
Frame Number=543 Number of Objects=2
	 Object: car - Top: 76, Left: 430, Width: 264, Height: 230
	 Object: car - Top: 25, Left: 373, Width: 37, Height: 27
Frame Number=544 Number of Objects=2
	 Object: car - Top: 76, Left: 430, Width: 264, Height: 230
	 Object: car - Top: 25, Left: 373, Width: 37, Height: 27
Frame Number=545 Number of Objects=2
	 Object: car - Top: 76, Left: 430, Width: 264, Height: 230
	 Object: car - Top: 25, Left: 374, Width: 37, Height: 27
Frame Number=546 Number of Objects=2
	 Object: car - Top: 75, Left: 417, Width: 289, Height: 283
	 Object: car - Top: 25, Left: 373, Width: 42, Height: 29
Frame Number=547 Number of Objects=2
	 Object: car - Top: 75, Left: 417, Width: 289, Height: 283
	 Object: car - Top: 25, Left: 373, Width: 42, Height: 29
Frame Number=548 Number of Objects=2
	 Object: car - Top: 75, Left: 416, Width: 289, Height: 283
	 Object: car - Top: 25, Left: 373, Width: 42, Height: 29
Frame Number=549 Number of Objects=3
	 Object: bicycle - Top: 249, Left: 378, Width: 144, Height: 217
	 Object: car - Top: 84, Left: 359, Width: 314, Height: 362
	 Object: car - Top: 25, Left: 372, Width: 46, Height: 31
Frame Number=550 Number of Objects=3
	 Object: bicycle - Top: 249, Left: 377, Width: 144, Height: 217
	 Object: car - Top: 84, Left: 360, Width: 313, Height: 362
	 Object: car - Top: 25, Left: 372, Width: 46, Height: 31
Frame Number=551 Number of Objects=3
	 Object: bicycle - Top: 249, Left: 378, Width: 144, Height: 217
	 Object: car - Top: 84, Left: 360, Width: 314, Height: 362
	 Object: car - Top: 25, Left: 372, Width: 46, Height: 31
Frame Number=552 Number of Objects=2
	 Object: car - Top: 87, Left: 335, Width: 340, Height: 465
	 Object: car - Top: 25, Left: 372, Width: 51, Height: 35
Frame Number=553 Number of Objects=2
	 Object: car - Top: 87, Left: 336, Width: 339, Height: 465
	 Object: car - Top: 25, Left: 372, Width: 51, Height: 35
Frame Number=554 Number of Objects=2
	 Object: car - Top: 87, Left: 336, Width: 339, Height: 465
	 Object: car - Top: 25, Left: 372, Width: 51, Height: 35
Frame Number=555 Number of Objects=1
	 Object: car - Top: 27, Left: 380, Width: 52, Height: 38
Frame Number=556 Number of Objects=1
	 Object: car - Top: 27, Left: 380, Width: 52, Height: 38
Frame Number=557 Number of Objects=1
	 Object: car - Top: 27, Left: 380, Width: 52, Height: 38
Frame Number=558 Number of Objects=1
	 Object: car - Top: 27, Left: 376, Width: 62, Height: 41
Frame Number=559 Number of Objects=1
	 Object: car - Top: 27, Left: 376, Width: 62, Height: 41
Frame Number=560 Number of Objects=1
	 Object: car - Top: 27, Left: 376, Width: 62, Height: 41
Frame Number=561 Number of Objects=1
	 Object: car - Top: 28, Left: 379, Width: 65, Height: 46
Frame Number=562 Number of Objects=1
	 Object: car - Top: 28, Left: 379, Width: 65, Height: 46
Frame Number=563 Number of Objects=1
	 Object: car - Top: 28, Left: 379, Width: 65, Height: 46
Frame Number=564 Number of Objects=1
	 Object: car - Top: 31, Left: 383, Width: 71, Height: 48
Frame Number=565 Number of Objects=1
	 Object: car - Top: 31, Left: 383, Width: 71, Height: 48
Frame Number=566 Number of Objects=1
	 Object: car - Top: 31, Left: 383, Width: 71, Height: 48
Frame Number=567 Number of Objects=1
	 Object: car - Top: 31, Left: 380, Width: 81, Height: 55
Frame Number=568 Number of Objects=1
	 Object: car - Top: 30, Left: 380, Width: 81, Height: 56
Frame Number=569 Number of Objects=1
	 Object: car - Top: 30, Left: 380, Width: 81, Height: 56
Frame Number=570 Number of Objects=1
	 Object: car - Top: 33, Left: 383, Width: 86, Height: 57
Frame Number=571 Number of Objects=1
	 Object: car - Top: 33, Left: 383, Width: 86, Height: 57
Frame Number=572 Number of Objects=1
	 Object: car - Top: 33, Left: 383, Width: 86, Height: 57
Frame Number=573 Number of Objects=1
	 Object: car - Top: 35, Left: 390, Width: 98, Height: 70
Frame Number=574 Number of Objects=1
	 Object: car - Top: 35, Left: 390, Width: 98, Height: 70
Frame Number=575 Number of Objects=1
	 Object: car - Top: 35, Left: 390, Width: 98, Height: 70
Frame Number=576 Number of Objects=1
	 Object: car - Top: 38, Left: 392, Width: 107, Height: 77
Frame Number=577 Number of Objects=1
	 Object: car - Top: 38, Left: 392, Width: 107, Height: 78
Frame Number=578 Number of Objects=1
	 Object: car - Top: 38, Left: 392, Width: 107, Height: 78
Frame Number=579 Number of Objects=1
	 Object: car - Top: 41, Left: 395, Width: 114, Height: 88
Frame Number=580 Number of Objects=1
	 Object: car - Top: 41, Left: 395, Width: 114, Height: 88
Frame Number=581 Number of Objects=1
	 Object: car - Top: 41, Left: 395, Width: 114, Height: 88
Frame Number=582 Number of Objects=1
	 Object: car - Top: 44, Left: 395, Width: 124, Height: 101
Frame Number=583 Number of Objects=1
	 Object: car - Top: 44, Left: 395, Width: 124, Height: 101
Frame Number=584 Number of Objects=1
	 Object: car - Top: 44, Left: 395, Width: 124, Height: 101
Frame Number=585 Number of Objects=1
	 Object: car - Top: 49, Left: 388, Width: 137, Height: 119
Frame Number=586 Number of Objects=1
	 Object: car - Top: 49, Left: 388, Width: 137, Height: 119
Frame Number=587 Number of Objects=1
	 Object: car - Top: 49, Left: 388, Width: 137, Height: 118
Frame Number=588 Number of Objects=1
	 Object: car - Top: 56, Left: 372, Width: 160, Height: 146
Frame Number=589 Number of Objects=1
	 Object: car - Top: 56, Left: 372, Width: 160, Height: 146
Frame Number=590 Number of Objects=1
	 Object: car - Top: 56, Left: 372, Width: 160, Height: 146
Frame Number=591 Number of Objects=1
	 Object: car - Top: 67, Left: 305, Width: 229, Height: 242
Frame Number=592 Number of Objects=1
	 Object: car - Top: 67, Left: 305, Width: 229, Height: 242
Frame Number=593 Number of Objects=1
	 Object: car - Top: 67, Left: 305, Width: 229, Height: 242
Frame Number=594 Number of Objects=1
	 Object: car - Top: 80, Left: 205, Width: 323, Height: 350
Frame Number=595 Number of Objects=1
	 Object: car - Top: 80, Left: 205, Width: 323, Height: 350
Frame Number=596 Number of Objects=1
	 Object: car - Top: 80, Left: 205, Width: 323, Height: 350
Frame Number=597 Number of Objects=1
	 Object: car - Top: 91, Left: 209, Width: 309, Height: 290
Frame Number=598 Number of Objects=1
	 Object: car - Top: 91, Left: 209, Width: 309, Height: 290
Frame Number=599 Number of Objects=1
	 Object: car - Top: 92, Left: 209, Width: 309, Height: 289
Frame Number=600 Number of Objects=1
	 Object: person - Top: 34, Left: 309, Width: 306, Height: 661
Frame Number=601 Number of Objects=1
	 Object: person - Top: 33, Left: 309, Width: 305, Height: 662
Frame Number=602 Number of Objects=0
Frame Number=603 Number of Objects=0
Frame Number=604 Number of Objects=0
Frame Number=605 Number of Objects=0
Frame Number=606 Number of Objects=0
Frame Number=607 Number of Objects=0
Frame Number=608 Number of Objects=0
Frame Number=609 Number of Objects=0
Frame Number=610 Number of Objects=0
Frame Number=611 Number of Objects=0
Frame Number=612 Number of Objects=0
Frame Number=613 Number of Objects=0
Frame Number=614 Number of Objects=0
Frame Number=615 Number of Objects=0
Frame Number=616 Number of Objects=0
Frame Number=617 Number of Objects=0
Frame Number=618 Number of Objects=0
Frame Number=619 Number of Objects=0
Frame Number=620 Number of Objects=0
Frame Number=621 Number of Objects=0
Frame Number=622 Number of Objects=0
Frame Number=623 Number of Objects=0
Frame Number=624 Number of Objects=0
Frame Number=625 Number of Objects=0
Frame Number=626 Number of Objects=0
Frame Number=627 Number of Objects=0
Frame Number=628 Number of Objects=0
Frame Number=629 Number of Objects=0
Frame Number=630 Number of Objects=0
Frame Number=631 Number of Objects=0
Frame Number=632 Number of Objects=0
Frame Number=633 Number of Objects=0
Frame Number=634 Number of Objects=0
Frame Number=635 Number of Objects=0
Frame Number=636 Number of Objects=1
	 Object: car - Top: 27, Left: 487, Width: 42, Height: 35
Frame Number=637 Number of Objects=1
	 Object: car - Top: 27, Left: 487, Width: 42, Height: 35
Frame Number=638 Number of Objects=1
	 Object: car - Top: 27, Left: 487, Width: 42, Height: 35
Frame Number=639 Number of Objects=0
Frame Number=640 Number of Objects=0
Frame Number=641 Number of Objects=0
Frame Number=642 Number of Objects=0
Frame Number=643 Number of Objects=0
Frame Number=644 Number of Objects=0
Frame Number=645 Number of Objects=1
	 Object: car - Top: 16, Left: 575, Width: 104, Height: 87
Frame Number=646 Number of Objects=1
	 Object: car - Top: 16, Left: 575, Width: 104, Height: 87
Frame Number=647 Number of Objects=1
	 Object: car - Top: 16, Left: 575, Width: 104, Height: 87
Frame Number=648 Number of Objects=1
	 Object: car - Top: 4, Left: 576, Width: 176, Height: 118
Frame Number=649 Number of Objects=1
	 Object: car - Top: 4, Left: 576, Width: 176, Height: 118
Frame Number=650 Number of Objects=1
	 Object: car - Top: 4, Left: 576, Width: 176, Height: 118
Frame Number=651 Number of Objects=1
	 Object: car - Top: 14, Left: 576, Width: 245, Height: 138
Frame Number=652 Number of Objects=1
	 Object: car - Top: 14, Left: 576, Width: 246, Height: 139
Frame Number=653 Number of Objects=1
	 Object: car - Top: 13, Left: 576, Width: 245, Height: 139
Frame Number=654 Number of Objects=0
Frame Number=655 Number of Objects=0
Frame Number=656 Number of Objects=0
Frame Number=657 Number of Objects=0
Frame Number=658 Number of Objects=0
Frame Number=659 Number of Objects=0
Frame Number=660 Number of Objects=0
Frame Number=661 Number of Objects=0
Frame Number=662 Number of Objects=0
Frame Number=663 Number of Objects=0
Frame Number=664 Number of Objects=0
Frame Number=665 Number of Objects=0
Frame Number=666 Number of Objects=0
Frame Number=667 Number of Objects=0
Frame Number=668 Number of Objects=0
Frame Number=669 Number of Objects=0
Frame Number=670 Number of Objects=0
Frame Number=671 Number of Objects=0
Frame Number=672 Number of Objects=0
Frame Number=673 Number of Objects=0
Frame Number=674 Number of Objects=0
Frame Number=675 Number of Objects=0
Frame Number=676 Number of Objects=0
Frame Number=677 Number of Objects=0
Frame Number=678 Number of Objects=0
Frame Number=679 Number of Objects=0
Frame Number=680 Number of Objects=0
Frame Number=681 Number of Objects=1
	 Object: car - Top: 29, Left: 462, Width: 51, Height: 22
Frame Number=682 Number of Objects=1
	 Object: car - Top: 29, Left: 462, Width: 51, Height: 22
Frame Number=683 Number of Objects=1
	 Object: car - Top: 29, Left: 462, Width: 51, Height: 22
Frame Number=684 Number of Objects=0
Frame Number=685 Number of Objects=0
Frame Number=686 Number of Objects=0
Frame Number=687 Number of Objects=1
	 Object: car - Top: 23, Left: 480, Width: 48, Height: 33
Frame Number=688 Number of Objects=1
	 Object: car - Top: 23, Left: 480, Width: 48, Height: 33
Frame Number=689 Number of Objects=1
	 Object: car - Top: 23, Left: 480, Width: 48, Height: 33
Frame Number=690 Number of Objects=1
	 Object: car - Top: 26, Left: 484, Width: 44, Height: 34
Frame Number=691 Number of Objects=1
	 Object: car - Top: 26, Left: 484, Width: 44, Height: 34
Frame Number=692 Number of Objects=1
	 Object: car - Top: 26, Left: 484, Width: 44, Height: 34
Frame Number=693 Number of Objects=1
	 Object: car - Top: 26, Left: 477, Width: 51, Height: 38
Frame Number=694 Number of Objects=1
	 Object: car - Top: 26, Left: 478, Width: 51, Height: 38
Frame Number=695 Number of Objects=1
	 Object: car - Top: 26, Left: 478, Width: 51, Height: 38
Frame Number=696 Number of Objects=1
	 Object: car - Top: 35, Left: 482, Width: 47, Height: 34
Frame Number=697 Number of Objects=1
	 Object: car - Top: 35, Left: 482, Width: 47, Height: 34
Frame Number=698 Number of Objects=1
	 Object: car - Top: 35, Left: 482, Width: 47, Height: 34
Frame Number=699 Number of Objects=0
Frame Number=700 Number of Objects=0
Frame Number=701 Number of Objects=0
Frame Number=702 Number of Objects=0
Frame Number=703 Number of Objects=0
Frame Number=704 Number of Objects=0
Frame Number=705 Number of Objects=1
	 Object: car - Top: 3, Left: 575, Width: 109, Height: 97
Frame Number=706 Number of Objects=1
	 Object: car - Top: 3, Left: 575, Width: 110, Height: 98
Frame Number=707 Number of Objects=1
	 Object: car - Top: 3, Left: 575, Width: 110, Height: 97
Frame Number=708 Number of Objects=1
	 Object: car - Top: 27, Left: 575, Width: 152, Height: 86
Frame Number=709 Number of Objects=1
	 Object: car - Top: 27, Left: 575, Width: 152, Height: 86
Frame Number=710 Number of Objects=1
	 Object: car - Top: 27, Left: 575, Width: 152, Height: 86
Frame Number=711 Number of Objects=1
	 Object: car - Top: 31, Left: 577, Width: 202, Height: 98
Frame Number=712 Number of Objects=1
	 Object: car - Top: 32, Left: 577, Width: 202, Height: 98
Frame Number=713 Number of Objects=1
	 Object: car - Top: 31, Left: 577, Width: 203, Height: 99
Frame Number=714 Number of Objects=1
	 Object: car - Top: 33, Left: 579, Width: 233, Height: 117
Frame Number=715 Number of Objects=1
	 Object: car - Top: 33, Left: 579, Width: 234, Height: 117
Frame Number=716 Number of Objects=1
	 Object: car - Top: 33, Left: 579, Width: 235, Height: 117
Frame Number=717 Number of Objects=0
Frame Number=718 Number of Objects=0
Frame Number=719 Number of Objects=0
Frame Number=720 Number of Objects=0
Frame Number=721 Number of Objects=0
Frame Number=722 Number of Objects=0
Frame Number=723 Number of Objects=0
Frame Number=724 Number of Objects=0
Frame Number=725 Number of Objects=0
Frame Number=726 Number of Objects=0
Frame Number=727 Number of Objects=0
Frame Number=728 Number of Objects=0
Frame Number=729 Number of Objects=0
WARNING: [TRT]: The implicit batch dimension mode has been deprecated. Please create the network with NetworkDefinitionCreationFlag::kEXPLICIT_BATCH flag whenever possible.
INFO: ../nvdsinfer/nvdsinfer_model_builder.cpp:610 [Implicit Engine Info]: layers num: 3
0   INPUT  kFLOAT input_1         3x544x960       
1   OUTPUT kFLOAT output_bbox/BiasAdd 16x34x60        
2   OUTPUT kFLOAT output_cov/Sigmoid 4x34x60         

nvstreammux: Successfully handled EOS for source_id=0
Frame Number=730 Number of Objects=0
Frame Number=731 Number of Objects=0
End-of-stream
<enum GST_STATE_CHANGE_SUCCESS of type Gst.StateChangeReturn>

Analyzing Inference Results#

After the DeepStream pipeline completes the video processing, we summarize the inference results.

import pandas as pd

# Export data to a Pandas Series
obj_count_df=pd.Series(obj_counts, name='Object Count')
obj_count_df.index.name='Frame Number'

# Plot the Series
obj_count_df.plot(
    linestyle='none', 
    marker='.', 
    figsize=(15, 5), 
    ylim=[-.1, 3.1], 
    title='Object Count Over Time'
)
<AxesSubplot: title={'center': 'Object Count Over Time'}, xlabel='Frame Number'>
../../_images/09124e251b0d85e158b080fdd1fdbc7372a64647618f72f34c2bc77b5b8e438b.png

Extending the Pipeline#

We will add additional functionalities to the DeepStream pipeline to also create a composite video and write the output to a file. This is the updated pipeline architecture. We’ve adding new plugins based on their functionality.

image

  • The filesrc plugin will read data from a local file. There are other plugins available for reading data from various types of sources like camera, RTSP streams, and disk.

  • The h264parse plugin is used to parse the input elementary H.264 stream into frame-size bytes of data.

  • The nvv4l2decoder plugin will decode the input data using the appropriate codec, which is H.264 in this case.

  • The nvstreammux plugin is a required stream aggregator. This video aggregator helps in accepting n input streams and converts them into sequential batched frames. Even though our simple application only consumes one input stream, this plugin is required as nvinfer accepts batched buffers with the NvDsBatchMeta structure already attached.

    • This plugin takes width, height, and batch-size as parameters.

  • The nvinfer plugin performs transformation (format conversion and scaling) on the input frame based on network requirements and passes the transformed data to the low-level library. This is the plugin that we will use to define the deep learning task(s) associated with our application. The low-level library pre-processes the transformed frames (performs normalization and mean subtraction) and produces final float RGB/BGR/GRAY planar data which are passed to the TensorRT engine for inferencing. The output type generated by the low-level library depends on the network type. We will configure the nvinfer plugin for our TrafficCamNet object detection model. It attaches the inference results such as object class(s), bounding box coordinates, etc., to the metadata.

    • Note: Behaviour of inference is set through the config file. You can use the files provided below as a template or start the text file from scratch.

  • The nvvideoconvert plugin converts frames from NV12 (YUV) to RGBA as required by nvdsosd. It is also capable of performing scaling, cropping, and rotating on the frames.

  • The nvdsosd plugin draws bounding boxes and texts based on the metadata. It requires RGBA buffer as well as NvDsBatchMeta.

  • The nvvideoconvert plugin converts frames from RGBA to I420 (YUV) as required by avenc_mpeg4.

  • The capsfilter plugin does not modify data as such, but can enforce limitations on the data format. We use it to enforce the video conversion by nvvideoconvert to I420 (YUV) format.

  • The avenc_mpeg4 plugin encodes the I420 formatted frames using the MPEG4 codec.

  • The filesink plugin writes incoming data to a file in the local file system.

More information about the plugins can be found in the DeepStream Plugin Guide and GStreamer Plugin Guide.

Additionally, we will add a callback function on the sink pad of the nvdsosd plugin to access the metadata in the application. The application can then use this metadata to solve the given problem (in this case draw the bounding boxes and texts).

Initializing GStreamer and Pipeline#

To begin, we initialize GStreamer with Gst.init(list=None) and build a Gst.Pipeline object as pipeline using build_simple_pipeline(input_source). We will modify the elements included in this pipeline.

# Initialize GStreamer
Gst.init(None)

# Build pipeline
pipeline=build_simple_pipeline('data/sample_30.h264')
print('Successfully created a {} object'.format(type(pipeline)))
Created Pipeline
Created elements
Added elements to pipeline
Linked elements in pipeline
Successfully created a <class 'gi.repository.Gst.Pipeline'> object

Modifying Pipeline Elements#

The simple pipeline created already includes filesink > h264parse > nvv4l2decoder > nvstreammux > nvinfer > fakesink. We modify this pipeline to suit our new use case. First, we remove fakesink from the existing pipeline with Gst.Pipeline.remove(element). Next, we create the nvvideoconvert, nvdsosd, another nvvideoconvert, capsfilter, avenc_mpeg4, and filesink elements using Gst.ElementFactory.make(factoryname, name) (see documentation). We can configure elements using set_property(property_name, value) (see documentation) with the required parameters as needed. Finally, we add the elements to the pipeline with Gst.Pipeline.add(element).

# Remove Fakesink
fakesink=pipeline.get_by_name('fakesink')
pipeline.remove(fakesink)

# Create Convertor to convert from YUV to RGBA as required by nvdsosd
nvvidconv1=Gst.ElementFactory.make("nvvideoconvert", "convertor1")

# Create OSD with nvdsosd to draw on the converted RGBA buffer
nvosd=Gst.ElementFactory.make("nvdsosd", "onscreendisplay")

# Create Convertor to convert from RGBA to I420 as required by encoder
nvvidconv2=Gst.ElementFactory.make("nvvideoconvert", "convertor2")

# Create Capsfilter to enforce frame image format
capsfilter=Gst.ElementFactory.make("capsfilter", "capsfilter")
caps=Gst.Caps.from_string("video/x-raw, format=I420")
capsfilter.set_property("caps", caps)

# Create Encoder to encode I420 formatted frames using the MPEG4 codec
encoder = Gst.ElementFactory.make("avenc_mpeg4", "encoder")
encoder.set_property("bitrate", 2000000)

# Create Sink and set the location for the output file
filesink=Gst.ElementFactory.make('filesink', 'filesink')
filesink.set_property('location', 'output_03_encoded.mpeg4')
filesink.set_property("sync", 1)
print('Created elements')
Created elements
# Add elements to pipeline
pipeline.add(nvvidconv1)
pipeline.add(nvosd)
pipeline.add(nvvidconv2)
pipeline.add(capsfilter)
pipeline.add(encoder)
pipeline.add(filesink)
print('Added elements to pipeline')
Added elements to pipeline

Linking Pipeline Elements#

Finally, we link all these elements in the order that data flow through the pipeline with Gst.Element.link(Gst.Element).

# Get the nvinfer plugin by name
pgie=pipeline.get_by_name('primary-inference')

# Link elements together
pgie.link(nvvidconv1)
nvvidconv1.link(nvosd)
nvosd.link(nvvidconv2)
nvvidconv2.link(capsfilter)
capsfilter.link(encoder)
encoder.link(filesink)
print('Linked elements in pipeline')
Linked elements in pipeline

Modify Probe to Draw on Frames#

By the time the buffers reach the nvdsosd plugin, it will have the metadata it needs to draw bounding boxes and text labels for the detected objects on the frames. This means that a probe will not be needed if the default settings are sufficient. Based on specific use cases, we can use a probe to access and modify the metadata used by nvdsosd to draw, but it would have to be inserted at or before the sink pad of the nvdsosd plugin. To access the metadata, we can use the DeepStream Python bindings, pyds. There are generally two types of metadata we are interested in for drawing:

  • NvDsObjectMeta.rect_params and NvDsObjectMeta.text_params related to the objects detected or

  • NvDsBatchMeta > NvDsFrameMeta > NvDsDisplayMeta related to overlays we want to add to each frame

There are a few similar parameters we can change for each but adding overlays to each frame requires some additional work. In order to acquire this display metadata, we use

pyds.nvds_acquire_display_meta_from_pool(batch_meta)

and set num_labels, num_rects, and num_lines. We can then assign values via text_params, rect_params, and line_params. The display metadata have to be added to the frame metadata with

pyds.nvds_add_display_meta_to_frame(frame_meta, display_meta)

for drawing. We write the user-defined callback function osd_sink_pad_buffer_probe. Inside the function, we iterate through all the metadata types that are attached to the buffer. We want to add a text label at the top of each frame and modify the border color of the bounding boxes.

# DO NOT CHANGE THIS CELL
from random import random

# Define the Probe Function
def osd_sink_pad_buffer_probe(pad, info):
    gst_buffer=info.get_buffer()

    # Retrieve batch metadata from the gst_buffer
    # Note that pyds.gst_buffer_get_nvds_batch_meta() expects the
    # C address of gst_buffer as input, which is obtained with hash(gst_buffer)
    batch_meta=pyds.gst_buffer_get_nvds_batch_meta(hash(gst_buffer))
    l_frame=batch_meta.frame_meta_list

    # Iterate through each frame in the batch metadata until the end
    while l_frame is not None:
        try:
            frame_meta=pyds.NvDsFrameMeta.cast(l_frame.data)
        except StopIteration:
            break

        frame_number=frame_meta.frame_num
        num_rects=frame_meta.num_obj_meta
        l_obj=frame_meta.obj_meta_list
        
        # Iterate through each object in the frame metadata until the end
        while l_obj is not None:
            try:
                obj_meta=pyds.NvDsObjectMeta.cast(l_obj.data)
            except StopIteration:
                break
            
            # Set border color (red, green, blue, alpha) to random values
            obj_meta.rect_params.border_color.set(random(), random(), random(), random())
            
            try: 
                l_obj=l_obj.next
            except StopIteration:
                break

        # Acquire display metadata from pool and set number of labels to 1
        display_meta=pyds.nvds_acquire_display_meta_from_pool(batch_meta)
        display_meta.num_labels=1
        
        # Set text_params of the display metadata to local variable
        py_nvosd_text_params=display_meta.text_params[0]

        # Setting display text to be shown on screen
        py_nvosd_text_params.display_text="Frame Number={} Number of Objects={}".format(frame_number, num_rects)

        # Use pyds.get_string() to get display_text as string
        # Reading the display_text field here will return the C address of the
        # allocated string. Use pyds.get_string() to get the string content.
        print(pyds.get_string(py_nvosd_text_params.display_text))
        
        # Set the offsets where the string should appear
        py_nvosd_text_params.x_offset=10
        py_nvosd_text_params.y_offset=10

        # Set font, font-color (red, green, blue, alpha), and font-size
        py_nvosd_text_params.font_params.font_name="Serif"
        py_nvosd_text_params.font_params.font_size=15
        py_nvosd_text_params.font_params.font_color.set(1.0, 1.0, 1.0, 1.0)

        # Set text background color (red, green, blue, alpha)
        py_nvosd_text_params.set_bg_clr=1
        py_nvosd_text_params.text_bg_clr.set(0.0, 0.0, 0.0, 1.0)

        # Add to frame metadata
        pyds.nvds_add_display_meta_to_frame(frame_meta, display_meta)

        try:
            l_frame=l_frame.next
        except StopIteration:
            break
    return Gst.PadProbeReturn.OK

With the pipeline defined and the elements linked, we add the callback function on the sink pad of the nvdsosd plugin using Gst.Pad.add_probe(mask, callback). While attached, the probe notifies when there are data passing on a pad. We can use GST_PAD_PROBE_TYPE_BUFFER or GST_PAD_PROBE_TYPE_BUFFER_LIST for mask when creating the probe. We designed the callback function to work with a single buffer so we’re using Gst.PadProbeType.BUFFER.

# Add probe to nvdsosd plugin's sink
osdsinkpad=nvosd.get_static_pad("sink")
probe_id=osdsinkpad.add_probe(Gst.PadProbeType.BUFFER, osd_sink_pad_buffer_probe)
print('Attached probe')
Attached probe

Starting the Pipeline#

# Create an event loop
loop=GLib.MainLoop()

# Feed GStreamer bus messages to loop
bus=pipeline.get_bus()
bus.add_signal_watch()
bus.connect("message", bus_call, loop)
print('Added bus message handler')
Added bus message handler
# Start play back and listen to events - this will generate the output_03_raw.mpeg4 file
print("Starting pipeline")
pipeline.set_state(Gst.State.PLAYING)
try:
    loop.run()
except:
    pass

# Cleaning up as the pipeline comes to an end
pipeline.set_state(Gst.State.NULL)
Starting pipeline
0:47:00.746298571   436      0x2ac5920 INFO                 nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<primary-inference> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::buildModel() <nvdsinfer_context_impl.cpp:2002> [UID = 1]: Trying to create engine from model files
ERROR: [TRT]: 3: [builder.cpp::~Builder::307] Error Code 3: API Usage Error (Parameter check failed at: optimizer/api/builder.cpp::~Builder::307, condition: mObjectCounter.use_count() == 1. Destroying a builder object before destroying objects it created leads to undefined behavior.
)
0:47:11.455634246   436      0x2ac5920 INFO                 nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<primary-inference> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::buildModel() <nvdsinfer_context_impl.cpp:2034> [UID = 1]: serialize cuda engine to file: /dli/task/ngc_assets/trafficcamnet_vpruned_v1.0/resnet18_trafficcamnet_pruned.etlt_b1_gpu0_fp32.engine successfully
0:47:11.518760321   436      0x2ac5920 INFO                 nvinfer gstnvinfer_impl.cpp:328:notifyLoadModelStatus:<primary-inference> [UID 1]: Load new model:/dli/task/spec_files/pgie_config_trafficcamnet_03.txt sucessfully
Frame Number=0 Number of Objects=1
Frame Number=1 Number of Objects=1
Frame Number=2 Number of Objects=1
Frame Number=3 Number of Objects=1
Frame Number=4 Number of Objects=1
Frame Number=5 Number of Objects=1
Frame Number=6 Number of Objects=1
Frame Number=7 Number of Objects=1
Frame Number=8 Number of Objects=1
Frame Number=9 Number of Objects=1
Frame Number=10 Number of Objects=1
Frame Number=11 Number of Objects=1
Frame Number=12 Number of Objects=1
Frame Number=13 Number of Objects=1
Frame Number=14 Number of Objects=1
Frame Number=15 Number of Objects=1
Frame Number=16 Number of Objects=1
Frame Number=17 Number of Objects=1
Frame Number=18 Number of Objects=1
Frame Number=19 Number of Objects=1
Frame Number=20 Number of Objects=1
Frame Number=21 Number of Objects=1
Frame Number=22 Number of Objects=1
Frame Number=23 Number of Objects=1
Frame Number=24 Number of Objects=1
Frame Number=25 Number of Objects=1
Frame Number=26 Number of Objects=1
Frame Number=27 Number of Objects=1
Frame Number=28 Number of Objects=1
Frame Number=29 Number of Objects=1
Frame Number=30 Number of Objects=1
Frame Number=31 Number of Objects=1
Frame Number=32 Number of Objects=1
Frame Number=33 Number of Objects=1
Frame Number=34 Number of Objects=1
Frame Number=35 Number of Objects=1
Frame Number=36 Number of Objects=1
Frame Number=37 Number of Objects=1
Frame Number=38 Number of Objects=1
Frame Number=39 Number of Objects=1
Frame Number=40 Number of Objects=1
Frame Number=41 Number of Objects=1
Frame Number=42 Number of Objects=2
Frame Number=43 Number of Objects=2
Frame Number=44 Number of Objects=2
Frame Number=45 Number of Objects=2
Frame Number=46 Number of Objects=2
Frame Number=47 Number of Objects=2
Frame Number=48 Number of Objects=1
Frame Number=49 Number of Objects=1
Frame Number=50 Number of Objects=1
Frame Number=51 Number of Objects=1
Frame Number=52 Number of Objects=1
Frame Number=53 Number of Objects=1
Frame Number=54 Number of Objects=1
Frame Number=55 Number of Objects=1
Frame Number=56 Number of Objects=2
Frame Number=57 Number of Objects=0
Frame Number=58 Number of Objects=0
Frame Number=59 Number of Objects=0
Frame Number=60 Number of Objects=1
Frame Number=61 Number of Objects=1
Frame Number=62 Number of Objects=1
Frame Number=63 Number of Objects=1
Frame Number=64 Number of Objects=1
Frame Number=65 Number of Objects=1
Frame Number=66 Number of Objects=1
Frame Number=67 Number of Objects=1
Frame Number=68 Number of Objects=1
Frame Number=69 Number of Objects=1
Frame Number=70 Number of Objects=1
Frame Number=71 Number of Objects=1
Frame Number=72 Number of Objects=1
Frame Number=73 Number of Objects=1
Frame Number=74 Number of Objects=1
Frame Number=75 Number of Objects=1
Frame Number=76 Number of Objects=1
Frame Number=77 Number of Objects=1
Frame Number=78 Number of Objects=1
Frame Number=79 Number of Objects=1
Frame Number=80 Number of Objects=1
Frame Number=81 Number of Objects=1
Frame Number=82 Number of Objects=1
Frame Number=83 Number of Objects=1
Frame Number=84 Number of Objects=1
Frame Number=85 Number of Objects=1
Frame Number=86 Number of Objects=1
Frame Number=87 Number of Objects=1
Frame Number=88 Number of Objects=1
Frame Number=89 Number of Objects=1
Frame Number=90 Number of Objects=1
Frame Number=91 Number of Objects=1
Frame Number=92 Number of Objects=1
Frame Number=93 Number of Objects=1
Frame Number=94 Number of Objects=1
Frame Number=95 Number of Objects=1
Frame Number=96 Number of Objects=1
Frame Number=97 Number of Objects=1
Frame Number=98 Number of Objects=1
Frame Number=99 Number of Objects=1
Frame Number=100 Number of Objects=1
Frame Number=101 Number of Objects=1
Frame Number=102 Number of Objects=1
Frame Number=103 Number of Objects=1
Frame Number=104 Number of Objects=1
Frame Number=105 Number of Objects=1
Frame Number=106 Number of Objects=1
Frame Number=107 Number of Objects=1
Frame Number=108 Number of Objects=1
Frame Number=109 Number of Objects=1
Frame Number=110 Number of Objects=1
Frame Number=111 Number of Objects=1
Frame Number=112 Number of Objects=1
Frame Number=113 Number of Objects=1
Frame Number=114 Number of Objects=1
Frame Number=115 Number of Objects=2
Frame Number=116 Number of Objects=1
Frame Number=117 Number of Objects=0
Frame Number=118 Number of Objects=0
Frame Number=119 Number of Objects=0
Frame Number=120 Number of Objects=0
Frame Number=121 Number of Objects=0
Frame Number=122 Number of Objects=0
Frame Number=123 Number of Objects=0
Frame Number=124 Number of Objects=0
Frame Number=125 Number of Objects=0
Frame Number=126 Number of Objects=0
Frame Number=127 Number of Objects=0
Frame Number=128 Number of Objects=0
Frame Number=129 Number of Objects=0
Frame Number=130 Number of Objects=0
Frame Number=131 Number of Objects=0
Frame Number=132 Number of Objects=0
Frame Number=133 Number of Objects=0
Frame Number=134 Number of Objects=0
Frame Number=135 Number of Objects=0
Frame Number=136 Number of Objects=0
Frame Number=137 Number of Objects=0
Frame Number=138 Number of Objects=1
Frame Number=139 Number of Objects=1
Frame Number=140 Number of Objects=1
Frame Number=141 Number of Objects=0
Frame Number=142 Number of Objects=0
Frame Number=143 Number of Objects=0
Frame Number=144 Number of Objects=0
Frame Number=145 Number of Objects=0
Frame Number=146 Number of Objects=0
Frame Number=147 Number of Objects=0
Frame Number=148 Number of Objects=0
Frame Number=149 Number of Objects=0
Frame Number=150 Number of Objects=0
Frame Number=151 Number of Objects=0
Frame Number=152 Number of Objects=0
Frame Number=153 Number of Objects=0
Frame Number=154 Number of Objects=0
Frame Number=155 Number of Objects=0
Frame Number=156 Number of Objects=0
Frame Number=157 Number of Objects=0
Frame Number=158 Number of Objects=0
Frame Number=159 Number of Objects=1
Frame Number=160 Number of Objects=1
Frame Number=161 Number of Objects=1
Frame Number=162 Number of Objects=1
Frame Number=163 Number of Objects=1
Frame Number=164 Number of Objects=1
Frame Number=165 Number of Objects=1
Frame Number=166 Number of Objects=1
Frame Number=167 Number of Objects=1
Frame Number=168 Number of Objects=1
Frame Number=169 Number of Objects=1
Frame Number=170 Number of Objects=1
Frame Number=171 Number of Objects=1
Frame Number=172 Number of Objects=1
Frame Number=173 Number of Objects=1
Frame Number=174 Number of Objects=1
Frame Number=175 Number of Objects=1
Frame Number=176 Number of Objects=1
Frame Number=177 Number of Objects=1
Frame Number=178 Number of Objects=1
Frame Number=179 Number of Objects=1
Frame Number=180 Number of Objects=1
Frame Number=181 Number of Objects=1
Frame Number=182 Number of Objects=1
Frame Number=183 Number of Objects=1
Frame Number=184 Number of Objects=1
Frame Number=185 Number of Objects=1
Frame Number=186 Number of Objects=1
Frame Number=187 Number of Objects=1
Frame Number=188 Number of Objects=1
Frame Number=189 Number of Objects=1
Frame Number=190 Number of Objects=1
Frame Number=191 Number of Objects=1
Frame Number=192 Number of Objects=1
Frame Number=193 Number of Objects=1
Frame Number=194 Number of Objects=1
Frame Number=195 Number of Objects=1
Frame Number=196 Number of Objects=1
Frame Number=197 Number of Objects=1
Frame Number=198 Number of Objects=1
Frame Number=199 Number of Objects=1
Frame Number=200 Number of Objects=1
Frame Number=201 Number of Objects=1
Frame Number=202 Number of Objects=1
Frame Number=203 Number of Objects=1
Frame Number=204 Number of Objects=1
Frame Number=205 Number of Objects=1
Frame Number=206 Number of Objects=1
Frame Number=207 Number of Objects=1
Frame Number=208 Number of Objects=1
Frame Number=209 Number of Objects=1
Frame Number=210 Number of Objects=1
Frame Number=211 Number of Objects=1
Frame Number=212 Number of Objects=1
Frame Number=213 Number of Objects=1
Frame Number=214 Number of Objects=1
Frame Number=215 Number of Objects=1
Frame Number=216 Number of Objects=1
Frame Number=217 Number of Objects=1
Frame Number=218 Number of Objects=1
Frame Number=219 Number of Objects=1
Frame Number=220 Number of Objects=1
Frame Number=221 Number of Objects=1
Frame Number=222 Number of Objects=1
Frame Number=223 Number of Objects=1
Frame Number=224 Number of Objects=1
Frame Number=225 Number of Objects=1
Frame Number=226 Number of Objects=1
Frame Number=227 Number of Objects=1
Frame Number=228 Number of Objects=1
Frame Number=229 Number of Objects=1
Frame Number=230 Number of Objects=1
Frame Number=231 Number of Objects=1
Frame Number=232 Number of Objects=1
Frame Number=233 Number of Objects=1
Frame Number=234 Number of Objects=1
Frame Number=235 Number of Objects=1
Frame Number=236 Number of Objects=1
Frame Number=237 Number of Objects=1
Frame Number=238 Number of Objects=1
Frame Number=239 Number of Objects=1
Frame Number=240 Number of Objects=0
Frame Number=241 Number of Objects=0
Frame Number=242 Number of Objects=0
Frame Number=243 Number of Objects=0
Frame Number=244 Number of Objects=0
Frame Number=245 Number of Objects=0
Frame Number=246 Number of Objects=0
Frame Number=247 Number of Objects=0
Frame Number=248 Number of Objects=0
Frame Number=249 Number of Objects=0
Frame Number=250 Number of Objects=0
Frame Number=251 Number of Objects=0
Frame Number=252 Number of Objects=0
Frame Number=253 Number of Objects=0
Frame Number=254 Number of Objects=0
Frame Number=255 Number of Objects=1
Frame Number=256 Number of Objects=1
Frame Number=257 Number of Objects=1
Frame Number=258 Number of Objects=1
Frame Number=259 Number of Objects=1
Frame Number=260 Number of Objects=1
Frame Number=261 Number of Objects=0
Frame Number=262 Number of Objects=0
Frame Number=263 Number of Objects=0
Frame Number=264 Number of Objects=0
Frame Number=265 Number of Objects=0
Frame Number=266 Number of Objects=0
Frame Number=267 Number of Objects=0
Frame Number=268 Number of Objects=0
Frame Number=269 Number of Objects=0
Frame Number=270 Number of Objects=0
Frame Number=271 Number of Objects=0
Frame Number=272 Number of Objects=0
Frame Number=273 Number of Objects=0
Frame Number=274 Number of Objects=0
Frame Number=275 Number of Objects=0
Frame Number=276 Number of Objects=0
Frame Number=277 Number of Objects=0
Frame Number=278 Number of Objects=0
Frame Number=279 Number of Objects=0
Frame Number=280 Number of Objects=0
Frame Number=281 Number of Objects=0
Frame Number=282 Number of Objects=0
Frame Number=283 Number of Objects=0
Frame Number=284 Number of Objects=0
Frame Number=285 Number of Objects=0
Frame Number=286 Number of Objects=0
Frame Number=287 Number of Objects=0
Frame Number=288 Number of Objects=1
Frame Number=289 Number of Objects=1
Frame Number=290 Number of Objects=1
Frame Number=291 Number of Objects=1
Frame Number=292 Number of Objects=1
Frame Number=293 Number of Objects=1
Frame Number=294 Number of Objects=0
Frame Number=295 Number of Objects=0
Frame Number=296 Number of Objects=0
Frame Number=297 Number of Objects=0
Frame Number=298 Number of Objects=0
Frame Number=299 Number of Objects=0
Frame Number=300 Number of Objects=0
Frame Number=301 Number of Objects=0
Frame Number=302 Number of Objects=0
Frame Number=303 Number of Objects=0
Frame Number=304 Number of Objects=0
Frame Number=305 Number of Objects=0
Frame Number=306 Number of Objects=0
Frame Number=307 Number of Objects=0
Frame Number=308 Number of Objects=0
Frame Number=309 Number of Objects=0
Frame Number=310 Number of Objects=0
Frame Number=311 Number of Objects=0
Frame Number=312 Number of Objects=1
Frame Number=313 Number of Objects=1
Frame Number=314 Number of Objects=1
Frame Number=315 Number of Objects=1
Frame Number=316 Number of Objects=1
Frame Number=317 Number of Objects=1
Frame Number=318 Number of Objects=1
Frame Number=319 Number of Objects=1
Frame Number=320 Number of Objects=1
Frame Number=321 Number of Objects=1
Frame Number=322 Number of Objects=1
Frame Number=323 Number of Objects=1
Frame Number=324 Number of Objects=1
Frame Number=325 Number of Objects=1
Frame Number=326 Number of Objects=1
Frame Number=327 Number of Objects=1
Frame Number=328 Number of Objects=1
Frame Number=329 Number of Objects=1
Frame Number=330 Number of Objects=1
Frame Number=331 Number of Objects=1
Frame Number=332 Number of Objects=1
Frame Number=333 Number of Objects=1
Frame Number=334 Number of Objects=1
Frame Number=335 Number of Objects=0
Frame Number=336 Number of Objects=2
Frame Number=337 Number of Objects=2
Frame Number=338 Number of Objects=2
Frame Number=339 Number of Objects=1
Frame Number=340 Number of Objects=1
Frame Number=341 Number of Objects=1
Frame Number=342 Number of Objects=1
Frame Number=343 Number of Objects=1
Frame Number=344 Number of Objects=1
Frame Number=345 Number of Objects=0
Frame Number=346 Number of Objects=0
Frame Number=347 Number of Objects=0
Frame Number=348 Number of Objects=2
Frame Number=349 Number of Objects=2
Frame Number=350 Number of Objects=2
Frame Number=351 Number of Objects=1
Frame Number=352 Number of Objects=1
Frame Number=353 Number of Objects=1
Frame Number=354 Number of Objects=1
Frame Number=355 Number of Objects=1
Frame Number=356 Number of Objects=1
Frame Number=357 Number of Objects=1
Frame Number=358 Number of Objects=1
Frame Number=359 Number of Objects=1
Frame Number=360 Number of Objects=1
Frame Number=361 Number of Objects=1
Frame Number=362 Number of Objects=1
Frame Number=363 Number of Objects=1
Frame Number=364 Number of Objects=1
Frame Number=365 Number of Objects=1
Frame Number=366 Number of Objects=0
Frame Number=367 Number of Objects=0
Frame Number=368 Number of Objects=0
Frame Number=369 Number of Objects=1
Frame Number=370 Number of Objects=1
Frame Number=371 Number of Objects=1
Frame Number=372 Number of Objects=0
Frame Number=373 Number of Objects=0
Frame Number=374 Number of Objects=0
Frame Number=375 Number of Objects=0
Frame Number=376 Number of Objects=0
Frame Number=377 Number of Objects=0
Frame Number=378 Number of Objects=0
Frame Number=379 Number of Objects=0
Frame Number=380 Number of Objects=0
Frame Number=381 Number of Objects=0
Frame Number=382 Number of Objects=0
Frame Number=383 Number of Objects=0
Frame Number=384 Number of Objects=0
Frame Number=385 Number of Objects=0
Frame Number=386 Number of Objects=0
Frame Number=387 Number of Objects=0
Frame Number=388 Number of Objects=0
Frame Number=389 Number of Objects=0
Frame Number=390 Number of Objects=0
Frame Number=391 Number of Objects=0
Frame Number=392 Number of Objects=0
Frame Number=393 Number of Objects=0
Frame Number=394 Number of Objects=0
Frame Number=395 Number of Objects=0
Frame Number=396 Number of Objects=0
Frame Number=397 Number of Objects=0
Frame Number=398 Number of Objects=0
Frame Number=399 Number of Objects=0
Frame Number=400 Number of Objects=0
Frame Number=401 Number of Objects=0
Frame Number=402 Number of Objects=0
Frame Number=403 Number of Objects=0
Frame Number=404 Number of Objects=0
Frame Number=405 Number of Objects=0
Frame Number=406 Number of Objects=0
Frame Number=407 Number of Objects=0
Frame Number=408 Number of Objects=0
Frame Number=409 Number of Objects=0
Frame Number=410 Number of Objects=0
Frame Number=411 Number of Objects=1
Frame Number=412 Number of Objects=1
Frame Number=413 Number of Objects=1
Frame Number=414 Number of Objects=1
Frame Number=415 Number of Objects=1
Frame Number=416 Number of Objects=1
Frame Number=417 Number of Objects=0
Frame Number=418 Number of Objects=0
Frame Number=419 Number of Objects=0
Frame Number=420 Number of Objects=1
Frame Number=421 Number of Objects=1
Frame Number=422 Number of Objects=1
Frame Number=423 Number of Objects=1
Frame Number=424 Number of Objects=1
Frame Number=425 Number of Objects=1
Frame Number=426 Number of Objects=1
Frame Number=427 Number of Objects=1
Frame Number=428 Number of Objects=1
Frame Number=429 Number of Objects=1
Frame Number=430 Number of Objects=1
Frame Number=431 Number of Objects=1
Frame Number=432 Number of Objects=1
Frame Number=433 Number of Objects=1
Frame Number=434 Number of Objects=1
Frame Number=435 Number of Objects=0
Frame Number=436 Number of Objects=0
Frame Number=437 Number of Objects=0
Frame Number=438 Number of Objects=0
Frame Number=439 Number of Objects=0
Frame Number=440 Number of Objects=0
Frame Number=441 Number of Objects=0
Frame Number=442 Number of Objects=0
Frame Number=443 Number of Objects=0
Frame Number=444 Number of Objects=0
Frame Number=445 Number of Objects=0
Frame Number=446 Number of Objects=0
Frame Number=447 Number of Objects=1
Frame Number=448 Number of Objects=1
Frame Number=449 Number of Objects=1
Frame Number=450 Number of Objects=1
Frame Number=451 Number of Objects=1
Frame Number=452 Number of Objects=1
Frame Number=453 Number of Objects=1
Frame Number=454 Number of Objects=1
Frame Number=455 Number of Objects=1
Frame Number=456 Number of Objects=1
Frame Number=457 Number of Objects=1
Frame Number=458 Number of Objects=1
Frame Number=459 Number of Objects=1
Frame Number=460 Number of Objects=1
Frame Number=461 Number of Objects=1
Frame Number=462 Number of Objects=2
Frame Number=463 Number of Objects=2
Frame Number=464 Number of Objects=2
Frame Number=465 Number of Objects=1
Frame Number=466 Number of Objects=1
Frame Number=467 Number of Objects=1
Frame Number=468 Number of Objects=1
Frame Number=469 Number of Objects=1
Frame Number=470 Number of Objects=1
Frame Number=471 Number of Objects=0
Frame Number=472 Number of Objects=0
Frame Number=473 Number of Objects=0
Frame Number=474 Number of Objects=0
Frame Number=475 Number of Objects=0
Frame Number=476 Number of Objects=0
Frame Number=477 Number of Objects=0
Frame Number=478 Number of Objects=0
Frame Number=479 Number of Objects=0
Frame Number=480 Number of Objects=0
Frame Number=481 Number of Objects=0
Frame Number=482 Number of Objects=0
Frame Number=483 Number of Objects=1
Frame Number=484 Number of Objects=1
Frame Number=485 Number of Objects=1
Frame Number=486 Number of Objects=1
Frame Number=487 Number of Objects=1
Frame Number=488 Number of Objects=1
Frame Number=489 Number of Objects=1
Frame Number=490 Number of Objects=1
Frame Number=491 Number of Objects=1
Frame Number=492 Number of Objects=1
Frame Number=493 Number of Objects=1
Frame Number=494 Number of Objects=1
Frame Number=495 Number of Objects=1
Frame Number=496 Number of Objects=1
Frame Number=497 Number of Objects=1
Frame Number=498 Number of Objects=1
Frame Number=499 Number of Objects=1
Frame Number=500 Number of Objects=0
Frame Number=501 Number of Objects=1
Frame Number=502 Number of Objects=1
Frame Number=503 Number of Objects=1
Frame Number=504 Number of Objects=0
Frame Number=505 Number of Objects=0
Frame Number=506 Number of Objects=0
Frame Number=507 Number of Objects=1
Frame Number=508 Number of Objects=1
Frame Number=509 Number of Objects=0
Frame Number=510 Number of Objects=1
Frame Number=511 Number of Objects=1
Frame Number=512 Number of Objects=1
Frame Number=513 Number of Objects=1
Frame Number=514 Number of Objects=1
Frame Number=515 Number of Objects=1
Frame Number=516 Number of Objects=1
Frame Number=517 Number of Objects=1
Frame Number=518 Number of Objects=1
Frame Number=519 Number of Objects=2
Frame Number=520 Number of Objects=2
Frame Number=521 Number of Objects=2
Frame Number=522 Number of Objects=1
Frame Number=523 Number of Objects=1
Frame Number=524 Number of Objects=1
Frame Number=525 Number of Objects=1
Frame Number=526 Number of Objects=1
Frame Number=527 Number of Objects=1
Frame Number=528 Number of Objects=1
Frame Number=529 Number of Objects=1
Frame Number=530 Number of Objects=1
Frame Number=531 Number of Objects=1
Frame Number=532 Number of Objects=1
Frame Number=533 Number of Objects=1
Frame Number=534 Number of Objects=1
Frame Number=535 Number of Objects=1
Frame Number=536 Number of Objects=1
Frame Number=537 Number of Objects=2
Frame Number=538 Number of Objects=2
Frame Number=539 Number of Objects=2
Frame Number=540 Number of Objects=2
Frame Number=541 Number of Objects=2
Frame Number=542 Number of Objects=2
Frame Number=543 Number of Objects=2
Frame Number=544 Number of Objects=2
Frame Number=545 Number of Objects=2
Frame Number=546 Number of Objects=2
Frame Number=547 Number of Objects=2
Frame Number=548 Number of Objects=2
Frame Number=549 Number of Objects=3
Frame Number=550 Number of Objects=3
Frame Number=551 Number of Objects=3
Frame Number=552 Number of Objects=2
Frame Number=553 Number of Objects=2
Frame Number=554 Number of Objects=2
Frame Number=555 Number of Objects=1
Frame Number=556 Number of Objects=1
Frame Number=557 Number of Objects=1
Frame Number=558 Number of Objects=1
Frame Number=559 Number of Objects=1
Frame Number=560 Number of Objects=1
Frame Number=561 Number of Objects=1
Frame Number=562 Number of Objects=1
Frame Number=563 Number of Objects=1
Frame Number=564 Number of Objects=1
Frame Number=565 Number of Objects=1
Frame Number=566 Number of Objects=1
Frame Number=567 Number of Objects=1
Frame Number=568 Number of Objects=1
Frame Number=569 Number of Objects=1
Frame Number=570 Number of Objects=1
Frame Number=571 Number of Objects=1
Frame Number=572 Number of Objects=1
Frame Number=573 Number of Objects=1
Frame Number=574 Number of Objects=1
Frame Number=575 Number of Objects=1
Frame Number=576 Number of Objects=1
Frame Number=577 Number of Objects=1
Frame Number=578 Number of Objects=1
Frame Number=579 Number of Objects=1
Frame Number=580 Number of Objects=1
Frame Number=581 Number of Objects=1
Frame Number=582 Number of Objects=1
Frame Number=583 Number of Objects=1
Frame Number=584 Number of Objects=1
Frame Number=585 Number of Objects=1
Frame Number=586 Number of Objects=1
Frame Number=587 Number of Objects=1
Frame Number=588 Number of Objects=1
Frame Number=589 Number of Objects=1
Frame Number=590 Number of Objects=1
Frame Number=591 Number of Objects=1
Frame Number=592 Number of Objects=1
Frame Number=593 Number of Objects=1
Frame Number=594 Number of Objects=1
Frame Number=595 Number of Objects=1
Frame Number=596 Number of Objects=1
Frame Number=597 Number of Objects=1
Frame Number=598 Number of Objects=1
Frame Number=599 Number of Objects=1
Frame Number=600 Number of Objects=1
Frame Number=601 Number of Objects=1
Frame Number=602 Number of Objects=0
Frame Number=603 Number of Objects=0
Frame Number=604 Number of Objects=0
Frame Number=605 Number of Objects=0
Frame Number=606 Number of Objects=0
Frame Number=607 Number of Objects=0
Frame Number=608 Number of Objects=0
Frame Number=609 Number of Objects=0
Frame Number=610 Number of Objects=0
Frame Number=611 Number of Objects=0
Frame Number=612 Number of Objects=0
Frame Number=613 Number of Objects=0
Frame Number=614 Number of Objects=0
Frame Number=615 Number of Objects=0
Frame Number=616 Number of Objects=0
Frame Number=617 Number of Objects=0
Frame Number=618 Number of Objects=0
Frame Number=619 Number of Objects=0
Frame Number=620 Number of Objects=0
Frame Number=621 Number of Objects=0
Frame Number=622 Number of Objects=0
Frame Number=623 Number of Objects=0
Frame Number=624 Number of Objects=0
Frame Number=625 Number of Objects=0
Frame Number=626 Number of Objects=0
Frame Number=627 Number of Objects=0
Frame Number=628 Number of Objects=0
Frame Number=629 Number of Objects=0
Frame Number=630 Number of Objects=0
Frame Number=631 Number of Objects=0
Frame Number=632 Number of Objects=0
Frame Number=633 Number of Objects=0
Frame Number=634 Number of Objects=0
Frame Number=635 Number of Objects=0
Frame Number=636 Number of Objects=1
Frame Number=637 Number of Objects=1
Frame Number=638 Number of Objects=1
Frame Number=639 Number of Objects=0
Frame Number=640 Number of Objects=0
Frame Number=641 Number of Objects=0
Frame Number=642 Number of Objects=0
Frame Number=643 Number of Objects=0
Frame Number=644 Number of Objects=0
Frame Number=645 Number of Objects=1
Frame Number=646 Number of Objects=1
Frame Number=647 Number of Objects=1
Frame Number=648 Number of Objects=1
Frame Number=649 Number of Objects=1
Frame Number=650 Number of Objects=1
Frame Number=651 Number of Objects=1
Frame Number=652 Number of Objects=1
Frame Number=653 Number of Objects=1
Frame Number=654 Number of Objects=0
Frame Number=655 Number of Objects=0
Frame Number=656 Number of Objects=0
Frame Number=657 Number of Objects=0
Frame Number=658 Number of Objects=0
Frame Number=659 Number of Objects=0
Frame Number=660 Number of Objects=0
Frame Number=661 Number of Objects=0
Frame Number=662 Number of Objects=0
Frame Number=663 Number of Objects=0
Frame Number=664 Number of Objects=0
Frame Number=665 Number of Objects=0
Frame Number=666 Number of Objects=0
Frame Number=667 Number of Objects=0
Frame Number=668 Number of Objects=0
Frame Number=669 Number of Objects=0
Frame Number=670 Number of Objects=0
Frame Number=671 Number of Objects=0
Frame Number=672 Number of Objects=0
Frame Number=673 Number of Objects=0
Frame Number=674 Number of Objects=0
Frame Number=675 Number of Objects=0
Frame Number=676 Number of Objects=0
Frame Number=677 Number of Objects=0
Frame Number=678 Number of Objects=0
Frame Number=679 Number of Objects=0
Frame Number=680 Number of Objects=0
Frame Number=681 Number of Objects=1
Frame Number=682 Number of Objects=1
Frame Number=683 Number of Objects=1
Frame Number=684 Number of Objects=0
Frame Number=685 Number of Objects=0
Frame Number=686 Number of Objects=0
Frame Number=687 Number of Objects=1
Frame Number=688 Number of Objects=1
Frame Number=689 Number of Objects=1
Frame Number=690 Number of Objects=1
Frame Number=691 Number of Objects=1
Frame Number=692 Number of Objects=1
Frame Number=693 Number of Objects=1
Frame Number=694 Number of Objects=1
Frame Number=695 Number of Objects=1
Frame Number=696 Number of Objects=1
Frame Number=697 Number of Objects=1
Frame Number=698 Number of Objects=1
Frame Number=699 Number of Objects=0
Frame Number=700 Number of Objects=0
Frame Number=701 Number of Objects=0
Frame Number=702 Number of Objects=0
Frame Number=703 Number of Objects=0
Frame Number=704 Number of Objects=0
Frame Number=705 Number of Objects=1
Frame Number=706 Number of Objects=1
Frame Number=707 Number of Objects=1
Frame Number=708 Number of Objects=1
Frame Number=709 Number of Objects=1
Frame Number=710 Number of Objects=1
Frame Number=711 Number of Objects=1
Frame Number=712 Number of Objects=1
Frame Number=713 Number of Objects=1
Frame Number=714 Number of Objects=1
Frame Number=715 Number of Objects=1
Frame Number=716 Number of Objects=1
Frame Number=717 Number of Objects=0
Frame Number=718 Number of Objects=0
Frame Number=719 Number of Objects=0
Frame Number=720 Number of Objects=0
Frame Number=721 Number of Objects=0
Frame Number=722 Number of Objects=0
Frame Number=723 Number of Objects=0
Frame Number=724 Number of Objects=0
Frame Number=725 Number of Objects=0
Frame Number=726 Number of Objects=0
Frame Number=727 Number of Objects=0
WARNING: [TRT]: The implicit batch dimension mode has been deprecated. Please create the network with NetworkDefinitionCreationFlag::kEXPLICIT_BATCH flag whenever possible.
INFO: ../nvdsinfer/nvdsinfer_model_builder.cpp:610 [Implicit Engine Info]: layers num: 3
0   INPUT  kFLOAT input_1         3x544x960       
1   OUTPUT kFLOAT output_bbox/BiasAdd 16x34x60        
2   OUTPUT kFLOAT output_cov/Sigmoid 4x34x60         

nvstreammux: Successfully handled EOS for source_id=0
Frame Number=728 Number of Objects=0
Frame Number=729 Number of Objects=0
Frame Number=730 Number of Objects=0
Frame Number=731 Number of Objects=0
End-of-stream
<enum GST_STATE_CHANGE_SUCCESS of type Gst.StateChangeReturn>

Viewing the Inference#

In the next step, we convert the video file into a container file before playing it since the MPEG4 encoded video file can’t be played directly in Jupyter Notebook. The FFmpeg tool is a very fast video and audio converter with the general syntax:

  • ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...

# Convert MPEG4 video file to MP4 container file
!ffmpeg -i /dli/task/output_03_encoded.mpeg4 /dli/task/output_03.mp4 -y -loglevel quiet

# View the output video
Video("output_03.mp4", width=720)

Multi-DNN DeepStream Pipeline#

DeepStream pipelines can be constructed to perform complex analytics that involve multiple neural networks. One common use case for this would be to use a detector as a primary inference engine to localize an object and a classifier as a secondary inference engine. This is useful since classification models can often perform better on single objects within the frame.

Preparing the Deep Learning Models#

We’ll be using two purpose-built models from NGC - the TrafficCamNet object detection model and the VehicleTypeNet classification model.

# Download the purpose-built TrafficCamNet model from NGC
!ngc registry model download-version nvidia/tao/trafficcamnet:pruned_v1.0 --dest $NGC_DIR

# Download the purpose-built VehicleTypeNet model from NGC
!ngc registry model download-version nvidia/tao/vehicletypenet:pruned_v1.0.2 --dest $NGC_DIR
CLI_VERSION: Latest - 3.169.4 available (current: 3.60.0). Please update by using the command 'ngc version upgrade' 

Getting files to download...
 ━━0…Remaining: ?Elapsed: 0…Total: 3 - Completed: 0 - Failed: 0
 ━━0…Remaining: ?Elapsed: 0…Total: 3 - Completed: 0 - Failed: 0
 ━━0…Remaining: ?Elapsed: 0…Total: 3 - Completed: 0 - Failed: 0
 ━━0…Remaining: ?Elapsed: 0…Total: 3 - Completed: 0 - Failed: 0
  ━━ • Remaining: 0…Elapsed: 0…Total: 3 - Completed: 3 - Failed: 0
                                                                              
?25h
-------------------------------------------------------------------------------
   Download status: COMPLETED
   Downloaded local path model: /dli/task/ngc_assets/trafficcamnet_vpruned_v1.0
   Total files downloaded: 3
   Total transferred: 5.2 MB
   Started at: 2025-08-29 06:36:21
   Completed at: 2025-08-29 06:36:22
   Duration taken: 0s
-------------------------------------------------------------------------------
Getting files to download...
 ━━0…Remaining: ?Elapsed: 0…Total: 3 - Completed: 0 - Failed: 0
 ━━0…Remaining: ?Elapsed: 0…Total: 3 - Completed: 0 - Failed: 0
 ━━0…Remaining: ?Elapsed: 0…Total: 3 - Completed: 0 - Failed: 0
 ━━Remaining: 0…Elapsed: 0…Total: 3 - Completed: 2 - Failed: 0
 ━╸Remaining: 0…Elapsed: 0…Total: 3 - Completed: 2 - Failed: 0
  ━━ • Remaining: 0…Elapsed: 0…Total: 3 - Completed: 3 - Failed: 0
                                                                              
?25h
--------------------------------------------------------------------------------
   Download status: COMPLETED
   Downloaded local path model: /dli/task/ngc_assets/vehicletypenet_vpruned_v1.0.2
   Total files downloaded: 3
   Total transferred: 19.06 MB
   Started at: 2025-08-29 06:36:25
   Completed at: 2025-08-29 06:36:26
   Duration taken: 0s
--------------------------------------------------------------------------------

Pipeline Components#

This is the pipeline architecture of the application. We’ll be using an object detection network to identify and localize the cars in the frames, followed by a secondary inference to classify vehicle types.

image

Initializing GStreamer and Pipeline#

# Import necessary GStreamer libraries and DeepStream python bindings
import gi
gi.require_version('Gst', '1.0')
from gi.repository import GObject, Gst, GLib
from common.bus_call import bus_call
import pyds
# Initialize GStreamer
Gst.init(None)

# Create Pipeline
pipeline=Gst.Pipeline()
print('Created pipeline')
Created pipeline

Creating Elements#

# Create Source element for reading from a file and set the location property
source = Gst.ElementFactory.make("filesrc", "file-source")
source.set_property('location', "data/sample_30.h264")

# Create H264 Parser with h264parse as the input file is an elementary h264 stream
h264parser = Gst.ElementFactory.make("h264parse", "h264-parser")

# Create Decoder with nvv4l2decoder for accelerating decoding on GPU
decoder = Gst.ElementFactory.make("nvv4l2decoder", "nvv4l2-decoder")

# Create Streamux with nvstreammux to form batches for one or more sources and set properties
streammux = Gst.ElementFactory.make("nvstreammux", "Stream-muxer")
streammux.set_property('width', 888) 
streammux.set_property('height', 696) 
streammux.set_property('batch-size', 1)

# Create Primary GStreamer Inference Element with nvinfer to run inference on the decoder's output after batching
pgie=Gst.ElementFactory.make("nvinfer", "primary-inference")

# Create Secondary Inference Element with nvinfer to run inference on the pgie's output
sgie=Gst.ElementFactory.make("nvinfer", "secondary-inference")

# Create Convertor to convert from YUV to RGBA as required by nvdsosd
nvvidconv1=Gst.ElementFactory.make("nvvideoconvert", "convertor1")

# Create OSD with nvdsosd to draw on the converted RGBA buffer
nvosd=Gst.ElementFactory.make("nvdsosd", "onscreendisplay")

# Create Convertor to convert from RGBA to I420 as required by encoder
nvvidconv2=Gst.ElementFactory.make("nvvideoconvert", "convertor2")

# Create Capsfilter to enforce frame image format
capsfilter=Gst.ElementFactory.make("capsfilter", "capsfilter")
caps=Gst.Caps.from_string("video/x-raw, format=I420")
capsfilter.set_property("caps", caps)

# Create Encoder to encode I420 formatted frames using the MPEG4 codec
encoder=Gst.ElementFactory.make("avenc_mpeg4", "encoder")
encoder.set_property("bitrate", 2000000)

# Create Sink with fakesink as the end point of the pipeline
sink=Gst.ElementFactory.make('filesink', 'filesink')
sink.set_property('location', 'output_04_raw.mpeg4')
sink.set_property("sync", 1)
print('Created elements')
Created elements
# Add elements to pipeline
pipeline.add(source)
pipeline.add(h264parser)
pipeline.add(decoder)
pipeline.add(streammux)
pipeline.add(pgie)
pipeline.add(sgie)
pipeline.add(nvvidconv1)
pipeline.add(nvosd)
pipeline.add(nvvidconv2)
pipeline.add(capsfilter)
pipeline.add(encoder)
pipeline.add(sink)
print('Added elements to pipeline')
Added elements to pipeline

Review the Configuration File(s)#

!cat spec_files/pgie_config_trafficcamnet_04.txt
[property]
gpu-id=0
net-scale-factor=0.00392156862745098
tlt-model-key=tlt_encode
tlt-encoded-model=/dli/task/ngc_assets/trafficcamnet_vpruned_v1.0/resnet18_trafficcamnet_pruned.etlt
labelfile-path=/dli/task/ngc_assets/trafficcamnet_vpruned_v1.0/labels.txt
infer-dims=3;544;960
uff-input-blob-name=input_1
batch-size=1
process-mode=1
model-color-format=0
# 0=FP32, 1=INT8, 2=FP16 mode
network-mode=0
num-detected-classes=4
interval=0
gie-unique-id=1
output-blob-names=output_bbox/BiasAdd;output_cov/Sigmoid
cluster-mode=2

# Use the config params below for NMS clustering mode
[class-attrs-all]
topk=20
nms-iou-threshold=0.5
pre-cluster-threshold=0.2
!cat spec_files/sgie_config_vehicletypenet_04.txt
[property]
gpu-id=0
net-scale-factor=1
tlt-model-key=tlt_encode
tlt-encoded-model=/dli/task/ngc_assets/vehicletypenet_vpruned_v1.0.2/resnet18_vehicletypenet_pruned.etlt
labelfile-path=/dli/task/ngc_assets/vehicletypenet_vpruned_v1.0.2/labels.txt
infer-dims=3;224;224
uff-input-blob-name=input_1
batch-size=1
process-mode=2
model-color-format=0
# 0=FP32, 1=INT8, 2=FP16 mode
network-mode=0
network-type=1
num-detected-classes=6
gie-unique-id=2
operate-on-gie-id=1
operate-on-class-ids=0
output-blob-names=predictions/Softmax
verbose=1
# Set the location of the config file
pgie.set_property('config-file-path', 'spec_files/pgie_config_trafficcamnet_04.txt')

sgie.set_property('config-file-path', 'spec_files/sgie_config_vehicletypenet_04.txt')

Labels for the vehicletypenet model (classification model)

# Review the labels
!cat ngc_assets/vehicletypenet_vpruned_v1.0.2/labels.txt
coupe;largevehicle;sedan;suv;truck;van

Add Probe to OSD Sink Pad#

We can use a similar probe function to access the metadata. However, in this case we also traverse the metadata generated from the secondary inference plugin. In this example our secondary inference was a classifier performed on the car class from the primary inference. We can access the metadata generated in classifier_meta_list after we cast it with NvDsClassifierMeta.cast(). Depending on how many secondary inferences there are, the NvDsObjectMeta object may have one or more NvDsClassifierMeta objects. We will also need to cast to NvDsLabelInfo class to get the resulting classification of the secondary inference(s).

# Define the Probe Function
def osd_sink_pad_buffer_probe(pad, info):
    gst_buffer = info.get_buffer()

    # Retrieve batch metadata from the gst_buffer
    # Note that pyds.gst_buffer_get_nvds_batch_meta() expects the
    # C address of gst_buffer as input, which is obtained with hash(gst_buffer)
    batch_meta = pyds.gst_buffer_get_nvds_batch_meta(hash(gst_buffer))
    l_frame = batch_meta.frame_meta_list

    # Iterate through each frame in the batch metadata until the end
    while l_frame is not None:
        try:
            frame_meta = pyds.NvDsFrameMeta.cast(l_frame.data)
        except StopIteration:
            break

        frame_num=frame_meta.frame_num
        num_obj = frame_meta.num_obj_meta
        l_obj=frame_meta.obj_meta_list
        
        print("Frame Number={} Number of Objects={}".format(frame_num, num_obj))
        
        # Iterate through each object in the frame metadata until the end
        while l_obj is not None:
            try:
                obj_meta=pyds.NvDsObjectMeta.cast(l_obj.data)
                
                # Define an analyze_meta function to manipulate metadata
                analyze_meta(obj_meta)
            except StopIteration:
                break
                
            try: 
                l_obj=l_obj.next
            except StopIteration:
                break
        
        try:
            l_frame=l_frame.next
        except StopIteration:
            break
    return Gst.PadProbeReturn.OK
PGIE_CLASS_ID_CAR=0

# Define helper function
def analyze_meta(obj_meta): 
    # Only car supports secondary inference
    if obj_meta.class_id == PGIE_CLASS_ID_CAR:     
        cls_meta=obj_meta.classifier_meta_list
        
        # Iterate through each class meta until the end
        while cls_meta is not None:
            cls=pyds.NvDsClassifierMeta.cast(cls_meta.data)
            # Get label info
            label_info=cls.label_info_list  
            
            # Iterate through each label info meta until the end
            while label_info is not None:
                # Cast data type of label from pyds.GList
                label_meta=pyds.glist_get_nvds_label_info(label_info.data)
                if cls.unique_component_id==2:
                    print('\t Type & Probability = {}% {}'.format(round(label_meta.result_prob*100), label_meta.result_label))
                try:
                    label_info=label_info.next
                except StopIteration:
                    break
            
            try:
                cls_meta=cls_meta.next
            except StopIteration:
                break
    return None
# Add probe to nvdsosd plugin's sink
osdsinkpad = nvosd.get_static_pad("sink")
osdsinkpad.add_probe(Gst.PadProbeType.BUFFER, osd_sink_pad_buffer_probe)
print('Attached probe')
Attached probe

Start the Pipeline#

# Create an event loop
loop=GLib.MainLoop()

# Feed GStreamer bus messages to loop
bus=pipeline.get_bus()
bus.add_signal_watch()
bus.connect ("message", bus_call, loop)
print('Added bus message handler')
Added bus message handler
# Start play back and listen to events - this will generate the output_04_raw.mpeg4 file
print("Starting pipeline \n")
pipeline.set_state(Gst.State.PLAYING)
try: 
    loop.run()
except: 
    pass

# Cleaning up as the pipeline comes to an end
pipeline.set_state(Gst.State.NULL)
Starting pipeline 
0:03:08.820121737    65      0x4208580 INFO                 nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<secondary-inference> NvDsInferContext[UID 2]: Info from NvDsInferContextImpl::buildModel() <nvdsinfer_context_impl.cpp:2002> [UID = 2]: Trying to create engine from model files
ERROR: [TRT]: 3: [builder.cpp::~Builder::307] Error Code 3: API Usage Error (Parameter check failed at: optimizer/api/builder.cpp::~Builder::307, condition: mObjectCounter.use_count() == 1. Destroying a builder object before destroying objects it created leads to undefined behavior.
)
0:03:22.282364400    65      0x4208580 INFO                 nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<secondary-inference> NvDsInferContext[UID 2]: Info from NvDsInferContextImpl::buildModel() <nvdsinfer_context_impl.cpp:2034> [UID = 2]: serialize cuda engine to file: /dli/task/ngc_assets/vehicletypenet_vpruned_v1.0.2/resnet18_vehicletypenet_pruned.etlt_b1_gpu0_fp32.engine successfully
0:03:22.345215790    65      0x4208580 INFO                 nvinfer gstnvinfer_impl.cpp:328:notifyLoadModelStatus:<secondary-inference> [UID 2]: Load new model:spec_files/sgie_config_vehicletypenet_04.txt sucessfully
0:03:22.345279039    65      0x4208580 INFO                 nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<primary-inference> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::buildModel() <nvdsinfer_context_impl.cpp:2002> [UID = 1]: Trying to create engine from model files
ERROR: [TRT]: 3: [builder.cpp::~Builder::307] Error Code 3: API Usage Error (Parameter check failed at: optimizer/api/builder.cpp::~Builder::307, condition: mObjectCounter.use_count() == 1. Destroying a builder object before destroying objects it created leads to undefined behavior.
)
0:03:44.875901407    65      0x4208580 INFO                 nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<primary-inference> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::buildModel() <nvdsinfer_context_impl.cpp:2034> [UID = 1]: serialize cuda engine to file: /dli/task/ngc_assets/trafficcamnet_vpruned_v1.0/resnet18_trafficcamnet_pruned.etlt_b1_gpu0_fp32.engine successfully
0:03:44.946473488    65      0x4208580 INFO                 nvinfer gstnvinfer_impl.cpp:328:notifyLoadModelStatus:<primary-inference> [UID 1]: Load new model:spec_files/pgie_config_trafficcamnet_04.txt sucessfully
Frame Number=0 Number of Objects=1
	 Type & Probability = 65% suv
Frame Number=1 Number of Objects=1
	 Type & Probability = 65% suv
Frame Number=2 Number of Objects=1
	 Type & Probability = 65% suv
Frame Number=3 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=4 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=5 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=6 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=7 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=8 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=9 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=10 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=11 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=12 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=13 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=14 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=15 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=16 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=17 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=18 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=19 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=20 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=21 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=22 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=23 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=24 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=25 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=26 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=27 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=28 Number of Objects=1
	 Type & Probability = 95% sedan
Frame Number=29 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=30 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=31 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=32 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=33 Number of Objects=1
	 Type & Probability = 97% sedan
Frame Number=34 Number of Objects=1
	 Type & Probability = 97% sedan
Frame Number=35 Number of Objects=1
	 Type & Probability = 97% sedan
Frame Number=36 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=37 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=38 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=39 Number of Objects=1
	 Type & Probability = 95% sedan
Frame Number=40 Number of Objects=1
	 Type & Probability = 96% sedan
Frame Number=41 Number of Objects=1
	 Type & Probability = 95% sedan
Frame Number=42 Number of Objects=2
	 Type & Probability = 49% largevehicle
	 Type & Probability = 99% sedan
Frame Number=43 Number of Objects=2
	 Type & Probability = 49% largevehicle
	 Type & Probability = 99% sedan
Frame Number=44 Number of Objects=2
	 Type & Probability = 49% largevehicle
	 Type & Probability = 99% sedan
Frame Number=45 Number of Objects=2
	 Type & Probability = 51% suv
	 Type & Probability = 54% coupe
Frame Number=46 Number of Objects=2
	 Type & Probability = 74% largevehicle
	 Type & Probability = 54% coupe
Frame Number=47 Number of Objects=2
	 Type & Probability = 75% largevehicle
	 Type & Probability = 53% coupe
Frame Number=48 Number of Objects=1
	 Type & Probability = 85% sedan
Frame Number=49 Number of Objects=1
	 Type & Probability = 84% sedan
Frame Number=50 Number of Objects=1
	 Type & Probability = 85% sedan
Frame Number=51 Number of Objects=1
	 Type & Probability = 95% sedan
Frame Number=52 Number of Objects=1
	 Type & Probability = 95% sedan
Frame Number=53 Number of Objects=1
	 Type & Probability = 96% sedan
Frame Number=54 Number of Objects=1
	 Type & Probability = 54% sedan
Frame Number=55 Number of Objects=1
	 Type & Probability = 53% sedan
Frame Number=56 Number of Objects=2
	 Type & Probability = 100% largevehicle
	 Type & Probability = 52% coupe
Frame Number=57 Number of Objects=0
Frame Number=58 Number of Objects=0
Frame Number=59 Number of Objects=0
Frame Number=60 Number of Objects=1
	 Type & Probability = 95% largevehicle
Frame Number=61 Number of Objects=1
	 Type & Probability = 98% largevehicle
Frame Number=62 Number of Objects=1
	 Type & Probability = 98% largevehicle
Frame Number=63 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=64 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=65 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=66 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=67 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=68 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=69 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=70 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=71 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=72 Number of Objects=1
	 Type & Probability = 87% largevehicle
Frame Number=73 Number of Objects=1
	 Type & Probability = 87% largevehicle
Frame Number=74 Number of Objects=1
	 Type & Probability = 87% largevehicle
Frame Number=75 Number of Objects=1
	 Type & Probability = 54% largevehicle
Frame Number=76 Number of Objects=1
	 Type & Probability = 82% largevehicle
Frame Number=77 Number of Objects=1
	 Type & Probability = 73% sedan
Frame Number=78 Number of Objects=1
	 Type & Probability = 77% largevehicle
Frame Number=79 Number of Objects=1
	 Type & Probability = 77% largevehicle
Frame Number=80 Number of Objects=1
	 Type & Probability = 75% largevehicle
Frame Number=81 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=82 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=83 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=84 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=85 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=86 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=87 Number of Objects=1
	 Type & Probability = 96% sedan
Frame Number=88 Number of Objects=1
	 Type & Probability = 96% sedan
Frame Number=89 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=90 Number of Objects=1
	 Type & Probability = 50% sedan
Frame Number=91 Number of Objects=1
	 Type & Probability = 52% sedan
Frame Number=92 Number of Objects=1
	 Type & Probability = 50% sedan
Frame Number=93 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=94 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=95 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=96 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=97 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=98 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=99 Number of Objects=1
	 Type & Probability = 81% truck
Frame Number=100 Number of Objects=1
	 Type & Probability = 85% truck
Frame Number=101 Number of Objects=1
	 Type & Probability = 84% truck
Frame Number=102 Number of Objects=1
	 Type & Probability = 93% truck
Frame Number=103 Number of Objects=1
	 Type & Probability = 93% truck
Frame Number=104 Number of Objects=1
	 Type & Probability = 92% truck
Frame Number=105 Number of Objects=1
	 Type & Probability = 88% sedan
Frame Number=106 Number of Objects=1
	 Type & Probability = 93% sedan
Frame Number=107 Number of Objects=1
	 Type & Probability = 93% sedan
Frame Number=108 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=109 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=110 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=111 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=112 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=113 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=114 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=115 Number of Objects=2
	 Type & Probability = 67% sedan
	 Type & Probability = 98% sedan
Frame Number=116 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=117 Number of Objects=0
Frame Number=118 Number of Objects=0
Frame Number=119 Number of Objects=0
Frame Number=120 Number of Objects=0
Frame Number=121 Number of Objects=0
Frame Number=122 Number of Objects=0
Frame Number=123 Number of Objects=0
Frame Number=124 Number of Objects=0
Frame Number=125 Number of Objects=0
Frame Number=126 Number of Objects=0
Frame Number=127 Number of Objects=0
Frame Number=128 Number of Objects=0
Frame Number=129 Number of Objects=0
Frame Number=130 Number of Objects=0
Frame Number=131 Number of Objects=0
Frame Number=132 Number of Objects=0
Frame Number=133 Number of Objects=0
Frame Number=134 Number of Objects=0
Frame Number=135 Number of Objects=0
Frame Number=136 Number of Objects=0
Frame Number=137 Number of Objects=0
Frame Number=138 Number of Objects=1
	 Type & Probability = 99% coupe
Frame Number=139 Number of Objects=1
	 Type & Probability = 99% coupe
Frame Number=140 Number of Objects=1
	 Type & Probability = 99% coupe
Frame Number=141 Number of Objects=0
Frame Number=142 Number of Objects=0
Frame Number=143 Number of Objects=0
Frame Number=144 Number of Objects=0
Frame Number=145 Number of Objects=0
Frame Number=146 Number of Objects=0
Frame Number=147 Number of Objects=0
Frame Number=148 Number of Objects=0
Frame Number=149 Number of Objects=0
Frame Number=150 Number of Objects=0
Frame Number=151 Number of Objects=0
Frame Number=152 Number of Objects=0
Frame Number=153 Number of Objects=0
Frame Number=154 Number of Objects=0
Frame Number=155 Number of Objects=0
Frame Number=156 Number of Objects=0
Frame Number=157 Number of Objects=0
Frame Number=158 Number of Objects=0
Frame Number=159 Number of Objects=1
	 Type & Probability = 93% largevehicle
Frame Number=160 Number of Objects=1
	 Type & Probability = 93% largevehicle
Frame Number=161 Number of Objects=1
	 Type & Probability = 93% largevehicle
Frame Number=162 Number of Objects=1
	 Type & Probability = 90% largevehicle
Frame Number=163 Number of Objects=1
	 Type & Probability = 90% largevehicle
Frame Number=164 Number of Objects=1
	 Type & Probability = 90% largevehicle
Frame Number=165 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=166 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=167 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=168 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=169 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=170 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=171 Number of Objects=1
	 Type & Probability = 86% suv
Frame Number=172 Number of Objects=1
	 Type & Probability = 86% suv
Frame Number=173 Number of Objects=1
	 Type & Probability = 86% suv
Frame Number=174 Number of Objects=1
	 Type & Probability = 88% sedan
Frame Number=175 Number of Objects=1
	 Type & Probability = 89% sedan
Frame Number=176 Number of Objects=1
	 Type & Probability = 89% sedan
Frame Number=177 Number of Objects=1
	 Type & Probability = 82% largevehicle
Frame Number=178 Number of Objects=1
	 Type & Probability = 82% largevehicle
Frame Number=179 Number of Objects=1
	 Type & Probability = 82% largevehicle
Frame Number=180 Number of Objects=1
	 Type & Probability = 69% sedan
Frame Number=181 Number of Objects=1
	 Type & Probability = 69% sedan
Frame Number=182 Number of Objects=1
	 Type & Probability = 54% sedan
Frame Number=183 Number of Objects=1
	 Type & Probability = 95% sedan
Frame Number=184 Number of Objects=1
	 Type & Probability = 96% sedan
Frame Number=185 Number of Objects=1
	 Type & Probability = 96% sedan
Frame Number=186 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=187 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=188 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=189 Number of Objects=1
	 Type & Probability = 68% sedan
Frame Number=190 Number of Objects=1
	 Type & Probability = 68% sedan
Frame Number=191 Number of Objects=1
	 Type & Probability = 68% sedan
Frame Number=192 Number of Objects=1
	 Type & Probability = 83% suv
Frame Number=193 Number of Objects=1
	 Type & Probability = 40% suv
Frame Number=194 Number of Objects=1
	 Type & Probability = 95% suv
Frame Number=195 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=196 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=197 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=198 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=199 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=200 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=201 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=202 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=203 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=204 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=205 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=206 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=207 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=208 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=209 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=210 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=211 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=212 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=213 Number of Objects=1
	 Type & Probability = 87% sedan
Frame Number=214 Number of Objects=1
	 Type & Probability = 87% sedan
Frame Number=215 Number of Objects=1
	 Type & Probability = 87% sedan
Frame Number=216 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=217 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=218 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=219 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=220 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=221 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=222 Number of Objects=1
	 Type & Probability = 93% sedan
Frame Number=223 Number of Objects=1
	 Type & Probability = 93% sedan
Frame Number=224 Number of Objects=1
	 Type & Probability = 93% sedan
Frame Number=225 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=226 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=227 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=228 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=229 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=230 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=231 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=232 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=233 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=234 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=235 Number of Objects=1
	 Type & Probability = 96% sedan
Frame Number=236 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=237 Number of Objects=1
	 Type & Probability = 73% largevehicle
Frame Number=238 Number of Objects=1
	 Type & Probability = 72% largevehicle
Frame Number=239 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=240 Number of Objects=0
Frame Number=241 Number of Objects=0
Frame Number=242 Number of Objects=0
Frame Number=243 Number of Objects=0
Frame Number=244 Number of Objects=0
Frame Number=245 Number of Objects=0
Frame Number=246 Number of Objects=0
Frame Number=247 Number of Objects=0
Frame Number=248 Number of Objects=0
Frame Number=249 Number of Objects=0
Frame Number=250 Number of Objects=0
Frame Number=251 Number of Objects=0
Frame Number=252 Number of Objects=0
Frame Number=253 Number of Objects=0
Frame Number=254 Number of Objects=0
Frame Number=255 Number of Objects=1
	 Type & Probability = 99% suv
Frame Number=256 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=257 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=258 Number of Objects=1
	 Type & Probability = 84% largevehicle
Frame Number=259 Number of Objects=1
	 Type & Probability = 87% largevehicle
Frame Number=260 Number of Objects=1
	 Type & Probability = 85% largevehicle
Frame Number=261 Number of Objects=0
Frame Number=262 Number of Objects=0
Frame Number=263 Number of Objects=0
Frame Number=264 Number of Objects=0
Frame Number=265 Number of Objects=0
Frame Number=266 Number of Objects=0
Frame Number=267 Number of Objects=0
Frame Number=268 Number of Objects=0
Frame Number=269 Number of Objects=0
Frame Number=270 Number of Objects=0
Frame Number=271 Number of Objects=0
Frame Number=272 Number of Objects=0
Frame Number=273 Number of Objects=0
Frame Number=274 Number of Objects=0
Frame Number=275 Number of Objects=0
Frame Number=276 Number of Objects=0
Frame Number=277 Number of Objects=0
Frame Number=278 Number of Objects=0
Frame Number=279 Number of Objects=0
Frame Number=280 Number of Objects=0
Frame Number=281 Number of Objects=0
Frame Number=282 Number of Objects=0
Frame Number=283 Number of Objects=0
Frame Number=284 Number of Objects=0
Frame Number=285 Number of Objects=0
Frame Number=286 Number of Objects=0
Frame Number=287 Number of Objects=0
Frame Number=288 Number of Objects=1
	 Type & Probability = 65% largevehicle
Frame Number=289 Number of Objects=1
	 Type & Probability = 75% largevehicle
Frame Number=290 Number of Objects=1
	 Type & Probability = 74% largevehicle
Frame Number=291 Number of Objects=1
	 Type & Probability = 58% largevehicle
Frame Number=292 Number of Objects=1
	 Type & Probability = 53% largevehicle
Frame Number=293 Number of Objects=1
	 Type & Probability = 73% largevehicle
Frame Number=294 Number of Objects=0
Frame Number=295 Number of Objects=0
Frame Number=296 Number of Objects=0
Frame Number=297 Number of Objects=0
Frame Number=298 Number of Objects=0
Frame Number=299 Number of Objects=0
Frame Number=300 Number of Objects=0
Frame Number=301 Number of Objects=0
Frame Number=302 Number of Objects=0
Frame Number=303 Number of Objects=0
Frame Number=304 Number of Objects=0
Frame Number=305 Number of Objects=0
Frame Number=306 Number of Objects=0
Frame Number=307 Number of Objects=0
Frame Number=308 Number of Objects=0
Frame Number=309 Number of Objects=0
Frame Number=310 Number of Objects=0
Frame Number=311 Number of Objects=0
Frame Number=312 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=313 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=314 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=315 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=316 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=317 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=318 Number of Objects=1
	 Type & Probability = 88% suv
Frame Number=319 Number of Objects=1
	 Type & Probability = 88% suv
Frame Number=320 Number of Objects=1
	 Type & Probability = 88% suv
Frame Number=321 Number of Objects=1
	 Type & Probability = 55% suv
Frame Number=322 Number of Objects=1
	 Type & Probability = 55% suv
Frame Number=323 Number of Objects=1
	 Type & Probability = 52% suv
Frame Number=324 Number of Objects=1
	 Type & Probability = 54% largevehicle
Frame Number=325 Number of Objects=1
	 Type & Probability = 52% largevehicle
Frame Number=326 Number of Objects=1
	 Type & Probability = 56% largevehicle
Frame Number=327 Number of Objects=1
	 Type & Probability = 69% largevehicle
Frame Number=328 Number of Objects=1
	 Type & Probability = 69% largevehicle
Frame Number=329 Number of Objects=1
	 Type & Probability = 75% largevehicle
Frame Number=330 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=331 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=332 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=333 Number of Objects=1
	 Type & Probability = 45% largevehicle
Frame Number=334 Number of Objects=1
	 Type & Probability = 45% largevehicle
Frame Number=335 Number of Objects=0
Frame Number=336 Number of Objects=2
	 Type & Probability = 51% truck
	 Type & Probability = 100% largevehicle
Frame Number=337 Number of Objects=2
	 Type & Probability = 51% truck
	 Type & Probability = 100% largevehicle
Frame Number=338 Number of Objects=2
	 Type & Probability = 51% truck
	 Type & Probability = 100% largevehicle
Frame Number=339 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=340 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=341 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=342 Number of Objects=1
	 Type & Probability = 98% largevehicle
Frame Number=343 Number of Objects=1
	 Type & Probability = 98% largevehicle
Frame Number=344 Number of Objects=1
	 Type & Probability = 98% largevehicle
Frame Number=345 Number of Objects=0
Frame Number=346 Number of Objects=0
Frame Number=347 Number of Objects=0
Frame Number=348 Number of Objects=2
	 Type & Probability = 78% largevehicle
	 Type & Probability = 100% largevehicle
Frame Number=349 Number of Objects=2
	 Type & Probability = 76% largevehicle
	 Type & Probability = 99% largevehicle
Frame Number=350 Number of Objects=2
	 Type & Probability = 72% largevehicle
	 Type & Probability = 100% largevehicle
Frame Number=351 Number of Objects=1
	 Type & Probability = 41% largevehicle
Frame Number=352 Number of Objects=1
	 Type & Probability = 45% suv
Frame Number=353 Number of Objects=1
	 Type & Probability = 43% suv
Frame Number=354 Number of Objects=1
	 Type & Probability = 60% sedan
Frame Number=355 Number of Objects=1
	 Type & Probability = 84% sedan
Frame Number=356 Number of Objects=1
	 Type & Probability = 84% sedan
Frame Number=357 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=358 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=359 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=360 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=361 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=362 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=363 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=364 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=365 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=366 Number of Objects=0
Frame Number=367 Number of Objects=0
Frame Number=368 Number of Objects=0
Frame Number=369 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=370 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=371 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=372 Number of Objects=0
Frame Number=373 Number of Objects=0
Frame Number=374 Number of Objects=0
Frame Number=375 Number of Objects=0
Frame Number=376 Number of Objects=0
Frame Number=377 Number of Objects=0
Frame Number=378 Number of Objects=0
Frame Number=379 Number of Objects=0
Frame Number=380 Number of Objects=0
Frame Number=381 Number of Objects=0
Frame Number=382 Number of Objects=0
Frame Number=383 Number of Objects=0
Frame Number=384 Number of Objects=0
Frame Number=385 Number of Objects=0
Frame Number=386 Number of Objects=0
Frame Number=387 Number of Objects=0
Frame Number=388 Number of Objects=0
Frame Number=389 Number of Objects=0
Frame Number=390 Number of Objects=0
Frame Number=391 Number of Objects=0
Frame Number=392 Number of Objects=0
Frame Number=393 Number of Objects=0
Frame Number=394 Number of Objects=0
Frame Number=395 Number of Objects=0
Frame Number=396 Number of Objects=0
Frame Number=397 Number of Objects=0
Frame Number=398 Number of Objects=0
Frame Number=399 Number of Objects=0
Frame Number=400 Number of Objects=0
Frame Number=401 Number of Objects=0
Frame Number=402 Number of Objects=0
Frame Number=403 Number of Objects=0
Frame Number=404 Number of Objects=0
Frame Number=405 Number of Objects=0
Frame Number=406 Number of Objects=0
Frame Number=407 Number of Objects=0
Frame Number=408 Number of Objects=0
Frame Number=409 Number of Objects=0
Frame Number=410 Number of Objects=0
Frame Number=411 Number of Objects=1
	 Type & Probability = 95% largevehicle
Frame Number=412 Number of Objects=1
	 Type & Probability = 95% largevehicle
Frame Number=413 Number of Objects=1
	 Type & Probability = 95% largevehicle
Frame Number=414 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=415 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=416 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=417 Number of Objects=0
Frame Number=418 Number of Objects=0
Frame Number=419 Number of Objects=0
Frame Number=420 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=421 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=422 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=423 Number of Objects=1
	 Type & Probability = 89% largevehicle
Frame Number=424 Number of Objects=1
	 Type & Probability = 89% largevehicle
Frame Number=425 Number of Objects=1
	 Type & Probability = 89% largevehicle
Frame Number=426 Number of Objects=1
	 Type & Probability = 51% largevehicle
Frame Number=427 Number of Objects=1
	 Type & Probability = 51% largevehicle
Frame Number=428 Number of Objects=1
	 Type & Probability = 51% largevehicle
Frame Number=429 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=430 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=431 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=432 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=433 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=434 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=435 Number of Objects=0
Frame Number=436 Number of Objects=0
Frame Number=437 Number of Objects=0
Frame Number=438 Number of Objects=0
Frame Number=439 Number of Objects=0
Frame Number=440 Number of Objects=0
Frame Number=441 Number of Objects=0
Frame Number=442 Number of Objects=0
Frame Number=443 Number of Objects=0
Frame Number=444 Number of Objects=0
Frame Number=445 Number of Objects=0
Frame Number=446 Number of Objects=0
Frame Number=447 Number of Objects=1
	 Type & Probability = 88% suv
Frame Number=448 Number of Objects=1
	 Type & Probability = 88% suv
Frame Number=449 Number of Objects=1
	 Type & Probability = 89% suv
Frame Number=450 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=451 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=452 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=453 Number of Objects=1
	 Type & Probability = 98% largevehicle
Frame Number=454 Number of Objects=1
	 Type & Probability = 98% largevehicle
Frame Number=455 Number of Objects=1
	 Type & Probability = 88% largevehicle
Frame Number=456 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=457 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=458 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=459 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=460 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=461 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=462 Number of Objects=2
	 Type & Probability = 81% largevehicle
	 Type & Probability = 100% largevehicle
Frame Number=463 Number of Objects=2
	 Type & Probability = 100% largevehicle
	 Type & Probability = 100% largevehicle
Frame Number=464 Number of Objects=2
	 Type & Probability = 99% largevehicle
	 Type & Probability = 100% largevehicle
Frame Number=465 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=466 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=467 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=468 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=469 Number of Objects=1
	 Type & Probability = 93% sedan
Frame Number=470 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=471 Number of Objects=0
Frame Number=472 Number of Objects=0
Frame Number=473 Number of Objects=0
Frame Number=474 Number of Objects=0
Frame Number=475 Number of Objects=0
Frame Number=476 Number of Objects=0
Frame Number=477 Number of Objects=0
Frame Number=478 Number of Objects=0
Frame Number=479 Number of Objects=0
Frame Number=480 Number of Objects=0
Frame Number=481 Number of Objects=0
Frame Number=482 Number of Objects=0
Frame Number=483 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=484 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=485 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=486 Number of Objects=1
	 Type & Probability = 77% suv
Frame Number=487 Number of Objects=1
	 Type & Probability = 77% suv
Frame Number=488 Number of Objects=1
	 Type & Probability = 77% suv
Frame Number=489 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=490 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=491 Number of Objects=1
	 Type & Probability = 93% largevehicle
Frame Number=492 Number of Objects=1
	 Type & Probability = 62% largevehicle
Frame Number=493 Number of Objects=1
	 Type & Probability = 62% largevehicle
Frame Number=494 Number of Objects=1
	 Type & Probability = 62% largevehicle
Frame Number=495 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=496 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=497 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=498 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=499 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=500 Number of Objects=0
Frame Number=501 Number of Objects=1
	 Type & Probability = 97% sedan
Frame Number=502 Number of Objects=1
	 Type & Probability = 97% sedan
Frame Number=503 Number of Objects=1
	 Type & Probability = 97% sedan
Frame Number=504 Number of Objects=0
Frame Number=505 Number of Objects=0
Frame Number=506 Number of Objects=0
Frame Number=507 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=508 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=509 Number of Objects=0
Frame Number=510 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=511 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=512 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=513 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=514 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=515 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=516 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=517 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=518 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=519 Number of Objects=2
	 Type & Probability = 99% largevehicle
	 Type & Probability = 88% truck
Frame Number=520 Number of Objects=2
	 Type & Probability = 99% largevehicle
	 Type & Probability = 88% truck
Frame Number=521 Number of Objects=2
	 Type & Probability = 99% largevehicle
	 Type & Probability = 88% truck
Frame Number=522 Number of Objects=1
	 Type & Probability = 79% truck
Frame Number=523 Number of Objects=1
	 Type & Probability = 79% truck
Frame Number=524 Number of Objects=1
	 Type & Probability = 79% truck
Frame Number=525 Number of Objects=1
	 Type & Probability = 48% sedan
Frame Number=526 Number of Objects=1
	 Type & Probability = 48% sedan
Frame Number=527 Number of Objects=1
	 Type & Probability = 48% sedan
Frame Number=528 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=529 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=530 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=531 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=532 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=533 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=534 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=535 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=536 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=537 Number of Objects=2
	 Type & Probability = 53% suv
	 Type & Probability = 60% coupe
Frame Number=538 Number of Objects=2
	 Type & Probability = 53% suv
	 Type & Probability = 60% coupe
Frame Number=539 Number of Objects=2
	 Type & Probability = 53% suv
	 Type & Probability = 61% coupe
Frame Number=540 Number of Objects=2
	 Type & Probability = 100% largevehicle
	 Type & Probability = 99% sedan
Frame Number=541 Number of Objects=2
	 Type & Probability = 100% largevehicle
	 Type & Probability = 99% sedan
Frame Number=542 Number of Objects=2
	 Type & Probability = 100% largevehicle
	 Type & Probability = 99% sedan
Frame Number=543 Number of Objects=2
	 Type & Probability = 99% sedan
	 Type & Probability = 66% largevehicle
Frame Number=544 Number of Objects=2
	 Type & Probability = 99% sedan
	 Type & Probability = 63% largevehicle
Frame Number=545 Number of Objects=2
	 Type & Probability = 99% sedan
	 Type & Probability = 66% largevehicle
Frame Number=546 Number of Objects=2
	 Type & Probability = 99% sedan
	 Type & Probability = 85% largevehicle
Frame Number=547 Number of Objects=2
	 Type & Probability = 99% sedan
	 Type & Probability = 88% sedan
Frame Number=548 Number of Objects=2
	 Type & Probability = 99% sedan
	 Type & Probability = 85% largevehicle
Frame Number=549 Number of Objects=3
	 Type & Probability = 91% suv
	 Type & Probability = 70% largevehicle
Frame Number=550 Number of Objects=3
	 Type & Probability = 91% suv
	 Type & Probability = 70% largevehicle
Frame Number=551 Number of Objects=3
	 Type & Probability = 91% suv
	 Type & Probability = 70% largevehicle
Frame Number=552 Number of Objects=2
	 Type & Probability = 56% sedan
	 Type & Probability = 93% largevehicle
Frame Number=553 Number of Objects=2
	 Type & Probability = 55% sedan
	 Type & Probability = 93% largevehicle
Frame Number=554 Number of Objects=2
	 Type & Probability = 55% sedan
	 Type & Probability = 93% largevehicle
Frame Number=555 Number of Objects=1
	 Type & Probability = 72% largevehicle
Frame Number=556 Number of Objects=1
	 Type & Probability = 72% largevehicle
Frame Number=557 Number of Objects=1
	 Type & Probability = 72% largevehicle
Frame Number=558 Number of Objects=1
	 Type & Probability = 58% suv
Frame Number=559 Number of Objects=1
	 Type & Probability = 58% suv
Frame Number=560 Number of Objects=1
	 Type & Probability = 58% suv
Frame Number=561 Number of Objects=1
	 Type & Probability = 61% largevehicle
Frame Number=562 Number of Objects=1
	 Type & Probability = 61% largevehicle
Frame Number=563 Number of Objects=1
	 Type & Probability = 61% largevehicle
Frame Number=564 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=565 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=566 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=567 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=568 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=569 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=570 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=571 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=572 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=573 Number of Objects=1
	 Type & Probability = 77% largevehicle
Frame Number=574 Number of Objects=1
	 Type & Probability = 77% largevehicle
Frame Number=575 Number of Objects=1
	 Type & Probability = 77% largevehicle
Frame Number=576 Number of Objects=1
	 Type & Probability = 99% suv
Frame Number=577 Number of Objects=1
	 Type & Probability = 99% suv
Frame Number=578 Number of Objects=1
	 Type & Probability = 99% suv
Frame Number=579 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=580 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=581 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=582 Number of Objects=1
	 Type & Probability = 81% suv
Frame Number=583 Number of Objects=1
	 Type & Probability = 81% suv
Frame Number=584 Number of Objects=1
	 Type & Probability = 81% suv
Frame Number=585 Number of Objects=1
	 Type & Probability = 83% suv
Frame Number=586 Number of Objects=1
	 Type & Probability = 83% suv
Frame Number=587 Number of Objects=1
	 Type & Probability = 84% suv
Frame Number=588 Number of Objects=1
	 Type & Probability = 93% sedan
Frame Number=589 Number of Objects=1
	 Type & Probability = 89% sedan
Frame Number=590 Number of Objects=1
	 Type & Probability = 92% sedan
Frame Number=591 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=592 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=593 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=594 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=595 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=596 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=597 Number of Objects=1
	 Type & Probability = 95% coupe
Frame Number=598 Number of Objects=1
	 Type & Probability = 95% coupe
Frame Number=599 Number of Objects=1
	 Type & Probability = 97% coupe
Frame Number=600 Number of Objects=1
Frame Number=601 Number of Objects=1
Frame Number=602 Number of Objects=0
Frame Number=603 Number of Objects=0
Frame Number=604 Number of Objects=0
Frame Number=605 Number of Objects=0
Frame Number=606 Number of Objects=0
Frame Number=607 Number of Objects=0
Frame Number=608 Number of Objects=0
Frame Number=609 Number of Objects=0
Frame Number=610 Number of Objects=0
Frame Number=611 Number of Objects=0
Frame Number=612 Number of Objects=0
Frame Number=613 Number of Objects=0
Frame Number=614 Number of Objects=0
Frame Number=615 Number of Objects=0
Frame Number=616 Number of Objects=0
Frame Number=617 Number of Objects=0
Frame Number=618 Number of Objects=0
Frame Number=619 Number of Objects=0
Frame Number=620 Number of Objects=0
Frame Number=621 Number of Objects=0
Frame Number=622 Number of Objects=0
Frame Number=623 Number of Objects=0
Frame Number=624 Number of Objects=0
Frame Number=625 Number of Objects=0
Frame Number=626 Number of Objects=0
Frame Number=627 Number of Objects=0
Frame Number=628 Number of Objects=0
Frame Number=629 Number of Objects=0
Frame Number=630 Number of Objects=0
Frame Number=631 Number of Objects=0
Frame Number=632 Number of Objects=0
Frame Number=633 Number of Objects=0
Frame Number=634 Number of Objects=0
Frame Number=635 Number of Objects=0
Frame Number=636 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=637 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=638 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=639 Number of Objects=0
Frame Number=640 Number of Objects=0
Frame Number=641 Number of Objects=0
Frame Number=642 Number of Objects=0
Frame Number=643 Number of Objects=0
Frame Number=644 Number of Objects=0
Frame Number=645 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=646 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=647 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=648 Number of Objects=1
	 Type & Probability = 90% sedan
Frame Number=649 Number of Objects=1
	 Type & Probability = 70% sedan
Frame Number=650 Number of Objects=1
	 Type & Probability = 73% largevehicle
Frame Number=651 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=652 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=653 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=654 Number of Objects=0
Frame Number=655 Number of Objects=0
Frame Number=656 Number of Objects=0
Frame Number=657 Number of Objects=0
Frame Number=658 Number of Objects=0
Frame Number=659 Number of Objects=0
Frame Number=660 Number of Objects=0
Frame Number=661 Number of Objects=0
Frame Number=662 Number of Objects=0
Frame Number=663 Number of Objects=0
Frame Number=664 Number of Objects=0
Frame Number=665 Number of Objects=0
Frame Number=666 Number of Objects=0
Frame Number=667 Number of Objects=0
Frame Number=668 Number of Objects=0
Frame Number=669 Number of Objects=0
Frame Number=670 Number of Objects=0
Frame Number=671 Number of Objects=0
Frame Number=672 Number of Objects=0
Frame Number=673 Number of Objects=0
Frame Number=674 Number of Objects=0
Frame Number=675 Number of Objects=0
Frame Number=676 Number of Objects=0
Frame Number=677 Number of Objects=0
Frame Number=678 Number of Objects=0
Frame Number=679 Number of Objects=0
Frame Number=680 Number of Objects=0
Frame Number=681 Number of Objects=1
	 Type & Probability = 51% largevehicle
Frame Number=682 Number of Objects=1
	 Type & Probability = 55% largevehicle
Frame Number=683 Number of Objects=1
	 Type & Probability = 51% largevehicle
Frame Number=684 Number of Objects=0
Frame Number=685 Number of Objects=0
Frame Number=686 Number of Objects=0
Frame Number=687 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=688 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=689 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=690 Number of Objects=1
	 Type & Probability = 89% sedan
Frame Number=691 Number of Objects=1
	 Type & Probability = 89% sedan
Frame Number=692 Number of Objects=1
	 Type & Probability = 89% sedan
Frame Number=693 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=694 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=695 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=696 Number of Objects=1
	 Type & Probability = 38% largevehicle
Frame Number=697 Number of Objects=1
	 Type & Probability = 38% largevehicle
Frame Number=698 Number of Objects=1
	 Type & Probability = 38% largevehicle
Frame Number=699 Number of Objects=0
Frame Number=700 Number of Objects=0
Frame Number=701 Number of Objects=0
Frame Number=702 Number of Objects=0
Frame Number=703 Number of Objects=0
Frame Number=704 Number of Objects=0
Frame Number=705 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=706 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=707 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=708 Number of Objects=1
	 Type & Probability = 78% sedan
Frame Number=709 Number of Objects=1
	 Type & Probability = 78% sedan
Frame Number=710 Number of Objects=1
	 Type & Probability = 78% sedan
Frame Number=711 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=712 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=713 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=714 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=715 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=716 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=717 Number of Objects=0
Frame Number=718 Number of Objects=0
Frame Number=719 Number of Objects=0
Frame Number=720 Number of Objects=0
Frame Number=721 Number of Objects=0
Frame Number=722 Number of Objects=0
Frame Number=723 Number of Objects=0
Frame Number=724 Number of Objects=0
Frame Number=725 Number of Objects=0
Frame Number=726 Number of Objects=0
Frame Number=727 Number of Objects=0
WARNING: [TRT]: The implicit batch dimension mode has been deprecated. Please create the network with NetworkDefinitionCreationFlag::kEXPLICIT_BATCH flag whenever possible.
INFO: ../nvdsinfer/nvdsinfer_model_builder.cpp:610 [Implicit Engine Info]: layers num: 2
0   INPUT  kFLOAT input_1         3x224x224       
1   OUTPUT kFLOAT predictions/Softmax 6x1x1           

WARNING: [TRT]: The implicit batch dimension mode has been deprecated. Please create the network with NetworkDefinitionCreationFlag::kEXPLICIT_BATCH flag whenever possible.
INFO: ../nvdsinfer/nvdsinfer_model_builder.cpp:610 [Implicit Engine Info]: layers num: 3
0   INPUT  kFLOAT input_1         3x544x960       
1   OUTPUT kFLOAT output_bbox/BiasAdd 16x34x60        
2   OUTPUT kFLOAT output_cov/Sigmoid 4x34x60         

nvstreammux: Successfully handled EOS for source_id=0
Frame Number=728 Number of Objects=0
Frame Number=729 Number of Objects=0
Frame Number=730 Number of Objects=0
Frame Number=731 Number of Objects=0
End-of-stream
<enum GST_STATE_CHANGE_SUCCESS of type Gst.StateChangeReturn>

Latency with Debug Log#

Latency is the time difference between when data enter one element and into the next in the pipeline. In general, low latency is desirable and particularly important for real-time pipelines that are time-critical. In the context of video analytics, latency is the amount of time it takes for the input streams to be processed. Latency in a DeepStream pipeline can be measured using GStreamer debugging capabilities. The debug log is very useful but can be verbose. We specify the amount of desired output based on the below table (take from GStreamer documentation). By setting the GST-DEBUG environment variable to GST_SCHEDULING:7 when running the DeepStream pipeline, we get a trace log that contains details on when the buffers are processed. GStreamer allows for custom debugging information handlers, but the default one is very useful. When using the default handler, the content of each line in the debug output looks like the below and includes various information.

In the next step, we run the pipeline using app_3_pt_1.py and preview the first few lines of the output trace.log file. In order to make the log file useful, we parse the text and export the data into a dataframe. For demonstration, we have included a simple script to accomplish this.

# DO NOT CHANGE THIS CELL
!GST_DEBUG='GST_SCHEDULING:7' GST_DEBUG_FILE='/dli/task/logs/trace.log' python final_app.py data/sample_30.h264
Created Pipeline
Created elements
Added elements to pipeline
Linked elements in pipeline
Attached probe
Added bus message handler
Starting pipeline
ERROR: [TRT]: 3: [builder.cpp::~Builder::307] Error Code 3: API Usage Error (Parameter check failed at: optimizer/api/builder.cpp::~Builder::307, condition: mObjectCounter.use_count() == 1. Destroying a builder object before destroying objects it created leads to undefined behavior.
)
WARNING: [TRT]: The implicit batch dimension mode has been deprecated. Please create the network with NetworkDefinitionCreationFlag::kEXPLICIT_BATCH flag whenever possible.
INFO: ../nvdsinfer/nvdsinfer_model_builder.cpp:610 [Implicit Engine Info]: layers num: 2
0   INPUT  kFLOAT input_1         3x224x224       
1   OUTPUT kFLOAT predictions/Softmax 6x1x1           

ERROR: [TRT]: 3: [builder.cpp::~Builder::307] Error Code 3: API Usage Error (Parameter check failed at: optimizer/api/builder.cpp::~Builder::307, condition: mObjectCounter.use_count() == 1. Destroying a builder object before destroying objects it created leads to undefined behavior.
)
WARNING: [TRT]: The implicit batch dimension mode has been deprecated. Please create the network with NetworkDefinitionCreationFlag::kEXPLICIT_BATCH flag whenever possible.
INFO: ../nvdsinfer/nvdsinfer_model_builder.cpp:610 [Implicit Engine Info]: layers num: 3
0   INPUT  kFLOAT input_1         3x544x960       
1   OUTPUT kFLOAT output_bbox/BiasAdd 16x34x60        
2   OUTPUT kFLOAT output_cov/Sigmoid 4x34x60         


(python:339): GStreamer-CRITICAL **: 07:06:03.727: gst_debug_log_valist: assertion 'category != NULL' failed

(python:339): GStreamer-CRITICAL **: 07:06:03.727: gst_debug_log_valist: assertion 'category != NULL' failed

(python:339): GStreamer-CRITICAL **: 07:06:03.727: gst_debug_log_valist: assertion 'category != NULL' failed

(python:339): GStreamer-CRITICAL **: 07:06:03.727: gst_debug_log_valist: assertion 'category != NULL' failed
Frame Number=0 Number of Objects=1
	 Type & Probability = 65% suv
Frame Number=1 Number of Objects=1
	 Type & Probability = 65% suv
Frame Number=2 Number of Objects=1
	 Type & Probability = 65% suv
Frame Number=3 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=4 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=5 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=6 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=7 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=8 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=9 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=10 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=11 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=12 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=13 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=14 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=15 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=16 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=17 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=18 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=19 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=20 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=21 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=22 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=23 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=24 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=25 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=26 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=27 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=28 Number of Objects=1
	 Type & Probability = 95% sedan
Frame Number=29 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=30 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=31 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=32 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=33 Number of Objects=1
	 Type & Probability = 97% sedan
Frame Number=34 Number of Objects=1
	 Type & Probability = 97% sedan
Frame Number=35 Number of Objects=1
	 Type & Probability = 97% sedan
Frame Number=36 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=37 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=38 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=39 Number of Objects=1
	 Type & Probability = 95% sedan
Frame Number=40 Number of Objects=1
	 Type & Probability = 96% sedan
Frame Number=41 Number of Objects=1
	 Type & Probability = 95% sedan
Frame Number=42 Number of Objects=2
	 Type & Probability = 49% largevehicle
	 Type & Probability = 99% sedan
Frame Number=43 Number of Objects=2
	 Type & Probability = 49% largevehicle
	 Type & Probability = 99% sedan
Frame Number=44 Number of Objects=2
	 Type & Probability = 49% largevehicle
	 Type & Probability = 99% sedan
Frame Number=45 Number of Objects=2
	 Type & Probability = 51% suv
	 Type & Probability = 54% coupe
Frame Number=46 Number of Objects=2
	 Type & Probability = 74% largevehicle
	 Type & Probability = 54% coupe
Frame Number=47 Number of Objects=2
	 Type & Probability = 75% largevehicle
	 Type & Probability = 53% coupe
Frame Number=48 Number of Objects=1
	 Type & Probability = 85% sedan
Frame Number=49 Number of Objects=1
	 Type & Probability = 84% sedan
Frame Number=50 Number of Objects=1
	 Type & Probability = 85% sedan
Frame Number=51 Number of Objects=1
	 Type & Probability = 95% sedan
Frame Number=52 Number of Objects=1
	 Type & Probability = 95% sedan
Frame Number=53 Number of Objects=1
	 Type & Probability = 96% sedan
Frame Number=54 Number of Objects=1
	 Type & Probability = 54% sedan
Frame Number=55 Number of Objects=1
	 Type & Probability = 53% sedan
Frame Number=56 Number of Objects=2
	 Type & Probability = 100% largevehicle
	 Type & Probability = 52% coupe
Frame Number=57 Number of Objects=0
Frame Number=58 Number of Objects=0
Frame Number=59 Number of Objects=0
Frame Number=60 Number of Objects=1
	 Type & Probability = 95% largevehicle
Frame Number=61 Number of Objects=1
	 Type & Probability = 98% largevehicle
Frame Number=62 Number of Objects=1
	 Type & Probability = 98% largevehicle
Frame Number=63 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=64 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=65 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=66 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=67 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=68 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=69 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=70 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=71 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=72 Number of Objects=1
	 Type & Probability = 87% largevehicle
Frame Number=73 Number of Objects=1
	 Type & Probability = 87% largevehicle
Frame Number=74 Number of Objects=1
	 Type & Probability = 87% largevehicle
Frame Number=75 Number of Objects=1
	 Type & Probability = 54% largevehicle
Frame Number=76 Number of Objects=1
	 Type & Probability = 82% largevehicle
Frame Number=77 Number of Objects=1
	 Type & Probability = 73% sedan
Frame Number=78 Number of Objects=1
	 Type & Probability = 77% largevehicle
Frame Number=79 Number of Objects=1
	 Type & Probability = 77% largevehicle
Frame Number=80 Number of Objects=1
	 Type & Probability = 75% largevehicle
Frame Number=81 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=82 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=83 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=84 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=85 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=86 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=87 Number of Objects=1
	 Type & Probability = 96% sedan
Frame Number=88 Number of Objects=1
	 Type & Probability = 96% sedan
Frame Number=89 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=90 Number of Objects=1
	 Type & Probability = 50% sedan
Frame Number=91 Number of Objects=1
	 Type & Probability = 52% sedan
Frame Number=92 Number of Objects=1
	 Type & Probability = 50% sedan
Frame Number=93 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=94 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=95 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=96 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=97 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=98 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=99 Number of Objects=1
	 Type & Probability = 81% truck
Frame Number=100 Number of Objects=1
	 Type & Probability = 85% truck
Frame Number=101 Number of Objects=1
	 Type & Probability = 84% truck
Frame Number=102 Number of Objects=1
	 Type & Probability = 93% truck
Frame Number=103 Number of Objects=1
	 Type & Probability = 93% truck
Frame Number=104 Number of Objects=1
	 Type & Probability = 92% truck
Frame Number=105 Number of Objects=1
	 Type & Probability = 88% sedan
Frame Number=106 Number of Objects=1
	 Type & Probability = 93% sedan
Frame Number=107 Number of Objects=1
	 Type & Probability = 93% sedan
Frame Number=108 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=109 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=110 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=111 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=112 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=113 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=114 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=115 Number of Objects=2
	 Type & Probability = 67% sedan
	 Type & Probability = 98% sedan
Frame Number=116 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=117 Number of Objects=0
Frame Number=118 Number of Objects=0
Frame Number=119 Number of Objects=0
Frame Number=120 Number of Objects=0
Frame Number=121 Number of Objects=0
Frame Number=122 Number of Objects=0
Frame Number=123 Number of Objects=0
Frame Number=124 Number of Objects=0
Frame Number=125 Number of Objects=0
Frame Number=126 Number of Objects=0
Frame Number=127 Number of Objects=0
Frame Number=128 Number of Objects=0
Frame Number=129 Number of Objects=0
Frame Number=130 Number of Objects=0
Frame Number=131 Number of Objects=0
Frame Number=132 Number of Objects=0
Frame Number=133 Number of Objects=0
Frame Number=134 Number of Objects=0
Frame Number=135 Number of Objects=0
Frame Number=136 Number of Objects=0
Frame Number=137 Number of Objects=0
Frame Number=138 Number of Objects=1
	 Type & Probability = 99% coupe
Frame Number=139 Number of Objects=1
	 Type & Probability = 99% coupe
Frame Number=140 Number of Objects=1
	 Type & Probability = 99% coupe
Frame Number=141 Number of Objects=0
Frame Number=142 Number of Objects=0
Frame Number=143 Number of Objects=0
Frame Number=144 Number of Objects=0
Frame Number=145 Number of Objects=0
Frame Number=146 Number of Objects=0
Frame Number=147 Number of Objects=0
Frame Number=148 Number of Objects=0
Frame Number=149 Number of Objects=0
Frame Number=150 Number of Objects=0
Frame Number=151 Number of Objects=0
Frame Number=152 Number of Objects=0
Frame Number=153 Number of Objects=0
Frame Number=154 Number of Objects=0
Frame Number=155 Number of Objects=0
Frame Number=156 Number of Objects=0
Frame Number=157 Number of Objects=0
Frame Number=158 Number of Objects=0
Frame Number=159 Number of Objects=1
	 Type & Probability = 93% largevehicle
Frame Number=160 Number of Objects=1
	 Type & Probability = 93% largevehicle
Frame Number=161 Number of Objects=1
	 Type & Probability = 93% largevehicle
Frame Number=162 Number of Objects=1
	 Type & Probability = 90% largevehicle
Frame Number=163 Number of Objects=1
	 Type & Probability = 90% largevehicle
Frame Number=164 Number of Objects=1
	 Type & Probability = 90% largevehicle
Frame Number=165 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=166 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=167 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=168 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=169 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=170 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=171 Number of Objects=1
	 Type & Probability = 86% suv
Frame Number=172 Number of Objects=1
	 Type & Probability = 86% suv
Frame Number=173 Number of Objects=1
	 Type & Probability = 86% suv
Frame Number=174 Number of Objects=1
	 Type & Probability = 88% sedan
Frame Number=175 Number of Objects=1
	 Type & Probability = 89% sedan
Frame Number=176 Number of Objects=1
	 Type & Probability = 89% sedan
Frame Number=177 Number of Objects=1
	 Type & Probability = 82% largevehicle
Frame Number=178 Number of Objects=1
	 Type & Probability = 82% largevehicle
Frame Number=179 Number of Objects=1
	 Type & Probability = 82% largevehicle
Frame Number=180 Number of Objects=1
	 Type & Probability = 69% sedan
Frame Number=181 Number of Objects=1
	 Type & Probability = 69% sedan
Frame Number=182 Number of Objects=1
	 Type & Probability = 54% sedan
Frame Number=183 Number of Objects=1
	 Type & Probability = 95% sedan
Frame Number=184 Number of Objects=1
	 Type & Probability = 96% sedan
Frame Number=185 Number of Objects=1
	 Type & Probability = 96% sedan
Frame Number=186 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=187 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=188 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=189 Number of Objects=1
	 Type & Probability = 68% sedan
Frame Number=190 Number of Objects=1
	 Type & Probability = 68% sedan
Frame Number=191 Number of Objects=1
	 Type & Probability = 68% sedan
Frame Number=192 Number of Objects=1
	 Type & Probability = 83% suv
Frame Number=193 Number of Objects=1
	 Type & Probability = 40% suv
Frame Number=194 Number of Objects=1
	 Type & Probability = 95% suv
Frame Number=195 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=196 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=197 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=198 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=199 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=200 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=201 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=202 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=203 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=204 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=205 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=206 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=207 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=208 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=209 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=210 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=211 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=212 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=213 Number of Objects=1
	 Type & Probability = 87% sedan
Frame Number=214 Number of Objects=1
	 Type & Probability = 87% sedan
Frame Number=215 Number of Objects=1
	 Type & Probability = 87% sedan
Frame Number=216 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=217 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=218 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=219 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=220 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=221 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=222 Number of Objects=1
	 Type & Probability = 93% sedan
Frame Number=223 Number of Objects=1
	 Type & Probability = 93% sedan
Frame Number=224 Number of Objects=1
	 Type & Probability = 93% sedan
Frame Number=225 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=226 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=227 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=228 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=229 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=230 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=231 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=232 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=233 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=234 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=235 Number of Objects=1
	 Type & Probability = 96% sedan
Frame Number=236 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=237 Number of Objects=1
	 Type & Probability = 73% largevehicle
Frame Number=238 Number of Objects=1
	 Type & Probability = 72% largevehicle
Frame Number=239 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=240 Number of Objects=0
Frame Number=241 Number of Objects=0
Frame Number=242 Number of Objects=0
Frame Number=243 Number of Objects=0
Frame Number=244 Number of Objects=0
Frame Number=245 Number of Objects=0
Frame Number=246 Number of Objects=0
Frame Number=247 Number of Objects=0
Frame Number=248 Number of Objects=0
Frame Number=249 Number of Objects=0
Frame Number=250 Number of Objects=0
Frame Number=251 Number of Objects=0
Frame Number=252 Number of Objects=0
Frame Number=253 Number of Objects=0
Frame Number=254 Number of Objects=0
Frame Number=255 Number of Objects=1
	 Type & Probability = 99% suv
Frame Number=256 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=257 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=258 Number of Objects=1
	 Type & Probability = 84% largevehicle
Frame Number=259 Number of Objects=1
	 Type & Probability = 87% largevehicle
Frame Number=260 Number of Objects=1
	 Type & Probability = 85% largevehicle
Frame Number=261 Number of Objects=0
Frame Number=262 Number of Objects=0
Frame Number=263 Number of Objects=0
Frame Number=264 Number of Objects=0
Frame Number=265 Number of Objects=0
Frame Number=266 Number of Objects=0
Frame Number=267 Number of Objects=0
Frame Number=268 Number of Objects=0
Frame Number=269 Number of Objects=0
Frame Number=270 Number of Objects=0
Frame Number=271 Number of Objects=0
Frame Number=272 Number of Objects=0
Frame Number=273 Number of Objects=0
Frame Number=274 Number of Objects=0
Frame Number=275 Number of Objects=0
Frame Number=276 Number of Objects=0
Frame Number=277 Number of Objects=0
Frame Number=278 Number of Objects=0
Frame Number=279 Number of Objects=0
Frame Number=280 Number of Objects=0
Frame Number=281 Number of Objects=0
Frame Number=282 Number of Objects=0
Frame Number=283 Number of Objects=0
Frame Number=284 Number of Objects=0
Frame Number=285 Number of Objects=0
Frame Number=286 Number of Objects=0
Frame Number=287 Number of Objects=0
Frame Number=288 Number of Objects=1
	 Type & Probability = 65% largevehicle
Frame Number=289 Number of Objects=1
	 Type & Probability = 75% largevehicle
Frame Number=290 Number of Objects=1
	 Type & Probability = 74% largevehicle
Frame Number=291 Number of Objects=1
	 Type & Probability = 58% largevehicle
Frame Number=292 Number of Objects=1
	 Type & Probability = 53% largevehicle
Frame Number=293 Number of Objects=1
	 Type & Probability = 73% largevehicle
Frame Number=294 Number of Objects=0
Frame Number=295 Number of Objects=0
Frame Number=296 Number of Objects=0
Frame Number=297 Number of Objects=0
Frame Number=298 Number of Objects=0
Frame Number=299 Number of Objects=0
Frame Number=300 Number of Objects=0
Frame Number=301 Number of Objects=0
Frame Number=302 Number of Objects=0
Frame Number=303 Number of Objects=0
Frame Number=304 Number of Objects=0
Frame Number=305 Number of Objects=0
Frame Number=306 Number of Objects=0
Frame Number=307 Number of Objects=0
Frame Number=308 Number of Objects=0
Frame Number=309 Number of Objects=0
Frame Number=310 Number of Objects=0
Frame Number=311 Number of Objects=0
Frame Number=312 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=313 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=314 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=315 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=316 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=317 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=318 Number of Objects=1
	 Type & Probability = 88% suv
Frame Number=319 Number of Objects=1
	 Type & Probability = 88% suv
Frame Number=320 Number of Objects=1
	 Type & Probability = 88% suv
Frame Number=321 Number of Objects=1
	 Type & Probability = 55% suv
Frame Number=322 Number of Objects=1
	 Type & Probability = 55% suv
Frame Number=323 Number of Objects=1
	 Type & Probability = 52% suv
Frame Number=324 Number of Objects=1
	 Type & Probability = 54% largevehicle
Frame Number=325 Number of Objects=1
	 Type & Probability = 52% largevehicle
Frame Number=326 Number of Objects=1
	 Type & Probability = 56% largevehicle
Frame Number=327 Number of Objects=1
	 Type & Probability = 69% largevehicle
Frame Number=328 Number of Objects=1
	 Type & Probability = 69% largevehicle
Frame Number=329 Number of Objects=1
	 Type & Probability = 75% largevehicle
Frame Number=330 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=331 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=332 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=333 Number of Objects=1
	 Type & Probability = 45% largevehicle
Frame Number=334 Number of Objects=1
	 Type & Probability = 45% largevehicle
Frame Number=335 Number of Objects=0
Frame Number=336 Number of Objects=2
	 Type & Probability = 51% truck
	 Type & Probability = 100% largevehicle
Frame Number=337 Number of Objects=2
	 Type & Probability = 51% truck
	 Type & Probability = 100% largevehicle
Frame Number=338 Number of Objects=2
	 Type & Probability = 51% truck
	 Type & Probability = 100% largevehicle
Frame Number=339 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=340 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=341 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=342 Number of Objects=1
	 Type & Probability = 98% largevehicle
Frame Number=343 Number of Objects=1
	 Type & Probability = 98% largevehicle
Frame Number=344 Number of Objects=1
	 Type & Probability = 98% largevehicle
Frame Number=345 Number of Objects=0
Frame Number=346 Number of Objects=0
Frame Number=347 Number of Objects=0
Frame Number=348 Number of Objects=2
	 Type & Probability = 78% largevehicle
	 Type & Probability = 100% largevehicle
Frame Number=349 Number of Objects=2
	 Type & Probability = 76% largevehicle
	 Type & Probability = 99% largevehicle
Frame Number=350 Number of Objects=2
	 Type & Probability = 72% largevehicle
	 Type & Probability = 100% largevehicle
Frame Number=351 Number of Objects=1
	 Type & Probability = 41% largevehicle
Frame Number=352 Number of Objects=1
	 Type & Probability = 45% suv
Frame Number=353 Number of Objects=1
	 Type & Probability = 43% suv
Frame Number=354 Number of Objects=1
	 Type & Probability = 60% sedan
Frame Number=355 Number of Objects=1
	 Type & Probability = 84% sedan
Frame Number=356 Number of Objects=1
	 Type & Probability = 84% sedan
Frame Number=357 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=358 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=359 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=360 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=361 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=362 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=363 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=364 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=365 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=366 Number of Objects=0
Frame Number=367 Number of Objects=0
Frame Number=368 Number of Objects=0
Frame Number=369 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=370 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=371 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=372 Number of Objects=0
Frame Number=373 Number of Objects=0
Frame Number=374 Number of Objects=0
Frame Number=375 Number of Objects=0
Frame Number=376 Number of Objects=0
Frame Number=377 Number of Objects=0
Frame Number=378 Number of Objects=0
Frame Number=379 Number of Objects=0
Frame Number=380 Number of Objects=0
Frame Number=381 Number of Objects=0
Frame Number=382 Number of Objects=0
Frame Number=383 Number of Objects=0
Frame Number=384 Number of Objects=0
Frame Number=385 Number of Objects=0
Frame Number=386 Number of Objects=0
Frame Number=387 Number of Objects=0
Frame Number=388 Number of Objects=0
Frame Number=389 Number of Objects=0
Frame Number=390 Number of Objects=0
Frame Number=391 Number of Objects=0
Frame Number=392 Number of Objects=0
Frame Number=393 Number of Objects=0
Frame Number=394 Number of Objects=0
Frame Number=395 Number of Objects=0
Frame Number=396 Number of Objects=0
Frame Number=397 Number of Objects=0
Frame Number=398 Number of Objects=0
Frame Number=399 Number of Objects=0
Frame Number=400 Number of Objects=0
Frame Number=401 Number of Objects=0
Frame Number=402 Number of Objects=0
Frame Number=403 Number of Objects=0
Frame Number=404 Number of Objects=0
Frame Number=405 Number of Objects=0
Frame Number=406 Number of Objects=0
Frame Number=407 Number of Objects=0
Frame Number=408 Number of Objects=0
Frame Number=409 Number of Objects=0
Frame Number=410 Number of Objects=0
Frame Number=411 Number of Objects=1
	 Type & Probability = 95% largevehicle
Frame Number=412 Number of Objects=1
	 Type & Probability = 95% largevehicle
Frame Number=413 Number of Objects=1
	 Type & Probability = 95% largevehicle
Frame Number=414 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=415 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=416 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=417 Number of Objects=0
Frame Number=418 Number of Objects=0
Frame Number=419 Number of Objects=0
Frame Number=420 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=421 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=422 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=423 Number of Objects=1
	 Type & Probability = 89% largevehicle
Frame Number=424 Number of Objects=1
	 Type & Probability = 89% largevehicle
Frame Number=425 Number of Objects=1
	 Type & Probability = 89% largevehicle
Frame Number=426 Number of Objects=1
	 Type & Probability = 51% largevehicle
Frame Number=427 Number of Objects=1
	 Type & Probability = 51% largevehicle
Frame Number=428 Number of Objects=1
	 Type & Probability = 51% largevehicle
Frame Number=429 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=430 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=431 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=432 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=433 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=434 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=435 Number of Objects=0
Frame Number=436 Number of Objects=0
Frame Number=437 Number of Objects=0
Frame Number=438 Number of Objects=0
Frame Number=439 Number of Objects=0
Frame Number=440 Number of Objects=0
Frame Number=441 Number of Objects=0
Frame Number=442 Number of Objects=0
Frame Number=443 Number of Objects=0
Frame Number=444 Number of Objects=0
Frame Number=445 Number of Objects=0
Frame Number=446 Number of Objects=0
Frame Number=447 Number of Objects=1
	 Type & Probability = 88% suv
Frame Number=448 Number of Objects=1
	 Type & Probability = 88% suv
Frame Number=449 Number of Objects=1
	 Type & Probability = 89% suv
Frame Number=450 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=451 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=452 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=453 Number of Objects=1
	 Type & Probability = 98% largevehicle
Frame Number=454 Number of Objects=1
	 Type & Probability = 98% largevehicle
Frame Number=455 Number of Objects=1
	 Type & Probability = 88% largevehicle
Frame Number=456 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=457 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=458 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=459 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=460 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=461 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=462 Number of Objects=2
	 Type & Probability = 81% largevehicle
	 Type & Probability = 100% largevehicle
Frame Number=463 Number of Objects=2
	 Type & Probability = 100% largevehicle
	 Type & Probability = 100% largevehicle
Frame Number=464 Number of Objects=2
	 Type & Probability = 99% largevehicle
	 Type & Probability = 100% largevehicle
Frame Number=465 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=466 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=467 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=468 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=469 Number of Objects=1
	 Type & Probability = 93% sedan
Frame Number=470 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=471 Number of Objects=0
Frame Number=472 Number of Objects=0
Frame Number=473 Number of Objects=0
Frame Number=474 Number of Objects=0
Frame Number=475 Number of Objects=0
Frame Number=476 Number of Objects=0
Frame Number=477 Number of Objects=0
Frame Number=478 Number of Objects=0
Frame Number=479 Number of Objects=0
Frame Number=480 Number of Objects=0
Frame Number=481 Number of Objects=0
Frame Number=482 Number of Objects=0
Frame Number=483 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=484 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=485 Number of Objects=1
	 Type & Probability = 97% largevehicle
Frame Number=486 Number of Objects=1
	 Type & Probability = 77% suv
Frame Number=487 Number of Objects=1
	 Type & Probability = 77% suv
Frame Number=488 Number of Objects=1
	 Type & Probability = 77% suv
Frame Number=489 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=490 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=491 Number of Objects=1
	 Type & Probability = 93% largevehicle
Frame Number=492 Number of Objects=1
	 Type & Probability = 62% largevehicle
Frame Number=493 Number of Objects=1
	 Type & Probability = 62% largevehicle
Frame Number=494 Number of Objects=1
	 Type & Probability = 62% largevehicle
Frame Number=495 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=496 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=497 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=498 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=499 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=500 Number of Objects=0
Frame Number=501 Number of Objects=1
	 Type & Probability = 97% sedan
Frame Number=502 Number of Objects=1
	 Type & Probability = 97% sedan
Frame Number=503 Number of Objects=1
	 Type & Probability = 97% sedan
Frame Number=504 Number of Objects=0
Frame Number=505 Number of Objects=0
Frame Number=506 Number of Objects=0
Frame Number=507 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=508 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=509 Number of Objects=0
Frame Number=510 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=511 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=512 Number of Objects=1
	 Type & Probability = 100% suv
Frame Number=513 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=514 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=515 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=516 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=517 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=518 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=519 Number of Objects=2
	 Type & Probability = 99% largevehicle
	 Type & Probability = 88% truck
Frame Number=520 Number of Objects=2
	 Type & Probability = 99% largevehicle
	 Type & Probability = 88% truck
Frame Number=521 Number of Objects=2
	 Type & Probability = 99% largevehicle
	 Type & Probability = 88% truck
Frame Number=522 Number of Objects=1
	 Type & Probability = 79% truck
Frame Number=523 Number of Objects=1
	 Type & Probability = 79% truck
Frame Number=524 Number of Objects=1
	 Type & Probability = 79% truck
Frame Number=525 Number of Objects=1
	 Type & Probability = 48% sedan
Frame Number=526 Number of Objects=1
	 Type & Probability = 48% sedan
Frame Number=527 Number of Objects=1
	 Type & Probability = 48% sedan
Frame Number=528 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=529 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=530 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=531 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=532 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=533 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=534 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=535 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=536 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=537 Number of Objects=2
	 Type & Probability = 53% suv
	 Type & Probability = 60% coupe
Frame Number=538 Number of Objects=2
	 Type & Probability = 53% suv
	 Type & Probability = 60% coupe
Frame Number=539 Number of Objects=2
	 Type & Probability = 53% suv
	 Type & Probability = 61% coupe
Frame Number=540 Number of Objects=2
	 Type & Probability = 100% largevehicle
	 Type & Probability = 99% sedan
Frame Number=541 Number of Objects=2
	 Type & Probability = 100% largevehicle
	 Type & Probability = 99% sedan
Frame Number=542 Number of Objects=2
	 Type & Probability = 100% largevehicle
	 Type & Probability = 99% sedan
Frame Number=543 Number of Objects=2
	 Type & Probability = 99% sedan
	 Type & Probability = 66% largevehicle
Frame Number=544 Number of Objects=2
	 Type & Probability = 99% sedan
	 Type & Probability = 63% largevehicle
Frame Number=545 Number of Objects=2
	 Type & Probability = 99% sedan
	 Type & Probability = 66% largevehicle
Frame Number=546 Number of Objects=2
	 Type & Probability = 99% sedan
	 Type & Probability = 85% largevehicle
Frame Number=547 Number of Objects=2
	 Type & Probability = 99% sedan
	 Type & Probability = 88% sedan
Frame Number=548 Number of Objects=2
	 Type & Probability = 99% sedan
	 Type & Probability = 85% largevehicle
Frame Number=549 Number of Objects=3
	 Type & Probability = 91% suv
	 Type & Probability = 70% largevehicle
Frame Number=550 Number of Objects=3
	 Type & Probability = 91% suv
	 Type & Probability = 70% largevehicle
Frame Number=551 Number of Objects=3
	 Type & Probability = 91% suv
	 Type & Probability = 70% largevehicle
Frame Number=552 Number of Objects=2
	 Type & Probability = 56% sedan
	 Type & Probability = 93% largevehicle
Frame Number=553 Number of Objects=2
	 Type & Probability = 55% sedan
	 Type & Probability = 93% largevehicle
Frame Number=554 Number of Objects=2
	 Type & Probability = 55% sedan
	 Type & Probability = 93% largevehicle
Frame Number=555 Number of Objects=1
	 Type & Probability = 72% largevehicle
Frame Number=556 Number of Objects=1
	 Type & Probability = 72% largevehicle
Frame Number=557 Number of Objects=1
	 Type & Probability = 72% largevehicle
Frame Number=558 Number of Objects=1
	 Type & Probability = 58% suv
Frame Number=559 Number of Objects=1
	 Type & Probability = 58% suv
Frame Number=560 Number of Objects=1
	 Type & Probability = 58% suv
Frame Number=561 Number of Objects=1
	 Type & Probability = 61% largevehicle
Frame Number=562 Number of Objects=1
	 Type & Probability = 61% largevehicle
Frame Number=563 Number of Objects=1
	 Type & Probability = 61% largevehicle
Frame Number=564 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=565 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=566 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=567 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=568 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=569 Number of Objects=1
	 Type & Probability = 99% largevehicle
Frame Number=570 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=571 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=572 Number of Objects=1
	 Type & Probability = 96% largevehicle
Frame Number=573 Number of Objects=1
	 Type & Probability = 77% largevehicle
Frame Number=574 Number of Objects=1
	 Type & Probability = 77% largevehicle
Frame Number=575 Number of Objects=1
	 Type & Probability = 77% largevehicle
Frame Number=576 Number of Objects=1
	 Type & Probability = 99% suv
Frame Number=577 Number of Objects=1
	 Type & Probability = 99% suv
Frame Number=578 Number of Objects=1
	 Type & Probability = 99% suv
Frame Number=579 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=580 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=581 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=582 Number of Objects=1
	 Type & Probability = 81% suv
Frame Number=583 Number of Objects=1
	 Type & Probability = 81% suv
Frame Number=584 Number of Objects=1
	 Type & Probability = 81% suv
Frame Number=585 Number of Objects=1
	 Type & Probability = 83% suv
Frame Number=586 Number of Objects=1
	 Type & Probability = 83% suv
Frame Number=587 Number of Objects=1
	 Type & Probability = 84% suv
Frame Number=588 Number of Objects=1
	 Type & Probability = 93% sedan
Frame Number=589 Number of Objects=1
	 Type & Probability = 89% sedan
Frame Number=590 Number of Objects=1
	 Type & Probability = 92% sedan
Frame Number=591 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=592 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=593 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=594 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=595 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=596 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=597 Number of Objects=1
	 Type & Probability = 95% coupe
Frame Number=598 Number of Objects=1
	 Type & Probability = 95% coupe
Frame Number=599 Number of Objects=1
	 Type & Probability = 97% coupe
Frame Number=600 Number of Objects=1
Frame Number=601 Number of Objects=1
Frame Number=602 Number of Objects=0
Frame Number=603 Number of Objects=0
Frame Number=604 Number of Objects=0
Frame Number=605 Number of Objects=0
Frame Number=606 Number of Objects=0
Frame Number=607 Number of Objects=0
Frame Number=608 Number of Objects=0
Frame Number=609 Number of Objects=0
Frame Number=610 Number of Objects=0
Frame Number=611 Number of Objects=0
Frame Number=612 Number of Objects=0
Frame Number=613 Number of Objects=0
Frame Number=614 Number of Objects=0
Frame Number=615 Number of Objects=0
Frame Number=616 Number of Objects=0
Frame Number=617 Number of Objects=0
Frame Number=618 Number of Objects=0
Frame Number=619 Number of Objects=0
Frame Number=620 Number of Objects=0
Frame Number=621 Number of Objects=0
Frame Number=622 Number of Objects=0
Frame Number=623 Number of Objects=0
Frame Number=624 Number of Objects=0
Frame Number=625 Number of Objects=0
Frame Number=626 Number of Objects=0
Frame Number=627 Number of Objects=0
Frame Number=628 Number of Objects=0
Frame Number=629 Number of Objects=0
Frame Number=630 Number of Objects=0
Frame Number=631 Number of Objects=0
Frame Number=632 Number of Objects=0
Frame Number=633 Number of Objects=0
Frame Number=634 Number of Objects=0
Frame Number=635 Number of Objects=0
Frame Number=636 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=637 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=638 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=639 Number of Objects=0
Frame Number=640 Number of Objects=0
Frame Number=641 Number of Objects=0
Frame Number=642 Number of Objects=0
Frame Number=643 Number of Objects=0
Frame Number=644 Number of Objects=0
Frame Number=645 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=646 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=647 Number of Objects=1
	 Type & Probability = 98% suv
Frame Number=648 Number of Objects=1
	 Type & Probability = 90% sedan
Frame Number=649 Number of Objects=1
	 Type & Probability = 70% sedan
Frame Number=650 Number of Objects=1
	 Type & Probability = 73% largevehicle
Frame Number=651 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=652 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=653 Number of Objects=1
	 Type & Probability = 100% sedan
Frame Number=654 Number of Objects=0
Frame Number=655 Number of Objects=0
Frame Number=656 Number of Objects=0
Frame Number=657 Number of Objects=0
Frame Number=658 Number of Objects=0
Frame Number=659 Number of Objects=0
Frame Number=660 Number of Objects=0
Frame Number=661 Number of Objects=0
Frame Number=662 Number of Objects=0
Frame Number=663 Number of Objects=0
Frame Number=664 Number of Objects=0
Frame Number=665 Number of Objects=0
Frame Number=666 Number of Objects=0
Frame Number=667 Number of Objects=0
Frame Number=668 Number of Objects=0
Frame Number=669 Number of Objects=0
Frame Number=670 Number of Objects=0
Frame Number=671 Number of Objects=0
Frame Number=672 Number of Objects=0
Frame Number=673 Number of Objects=0
Frame Number=674 Number of Objects=0
Frame Number=675 Number of Objects=0
Frame Number=676 Number of Objects=0
Frame Number=677 Number of Objects=0
Frame Number=678 Number of Objects=0
Frame Number=679 Number of Objects=0
Frame Number=680 Number of Objects=0
Frame Number=681 Number of Objects=1
	 Type & Probability = 51% largevehicle
Frame Number=682 Number of Objects=1
	 Type & Probability = 55% largevehicle
Frame Number=683 Number of Objects=1
	 Type & Probability = 51% largevehicle
Frame Number=684 Number of Objects=0
Frame Number=685 Number of Objects=0
Frame Number=686 Number of Objects=0
Frame Number=687 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=688 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=689 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=690 Number of Objects=1
	 Type & Probability = 89% sedan
Frame Number=691 Number of Objects=1
	 Type & Probability = 89% sedan
Frame Number=692 Number of Objects=1
	 Type & Probability = 89% sedan
Frame Number=693 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=694 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=695 Number of Objects=1
	 Type & Probability = 94% sedan
Frame Number=696 Number of Objects=1
	 Type & Probability = 38% largevehicle
Frame Number=697 Number of Objects=1
	 Type & Probability = 38% largevehicle
Frame Number=698 Number of Objects=1
	 Type & Probability = 38% largevehicle
Frame Number=699 Number of Objects=0
Frame Number=700 Number of Objects=0
Frame Number=701 Number of Objects=0
Frame Number=702 Number of Objects=0
Frame Number=703 Number of Objects=0
Frame Number=704 Number of Objects=0
Frame Number=705 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=706 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=707 Number of Objects=1
	 Type & Probability = 100% largevehicle
Frame Number=708 Number of Objects=1
	 Type & Probability = 78% sedan
Frame Number=709 Number of Objects=1
	 Type & Probability = 78% sedan
Frame Number=710 Number of Objects=1
	 Type & Probability = 78% sedan
Frame Number=711 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=712 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=713 Number of Objects=1
	 Type & Probability = 98% sedan
Frame Number=714 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=715 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=716 Number of Objects=1
	 Type & Probability = 99% sedan
Frame Number=717 Number of Objects=0
Frame Number=718 Number of Objects=0
Frame Number=719 Number of Objects=0
Frame Number=720 Number of Objects=0
Frame Number=721 Number of Objects=0
Frame Number=722 Number of Objects=0
Frame Number=723 Number of Objects=0
Frame Number=724 Number of Objects=0
Frame Number=725 Number of Objects=0
Frame Number=726 Number of Objects=0
Frame Number=727 Number of Objects=0
nvstreammux: Successfully handled EOS for source_id=0
Frame Number=728 Number of Objects=0
Frame Number=729 Number of Objects=0
Frame Number=730 Number of Objects=0
Frame Number=731 Number of Objects=0
End-of-stream
# DO NOT CHANGE THIS CELL
!head /dli/task/logs/trace.log
0:00:00.172938764   339      0x3a10690 LOG           GST_SCHEDULING gstpad.c:1440:gst_pad_add_probe:<onscreendisplay:sink> adding probe for mask 0x00000010
0:00:00.172971657   339      0x3a10690 LOG           GST_SCHEDULING gstpad.c:1466:gst_pad_add_probe:<onscreendisplay:sink> got probe id 1
0:00:00.406916273   339      0x3a10690 INFO                 nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<secondary-inference> NvDsInferContext[UID 2]: Info from NvDsInferContextImpl::buildModel() <nvdsinfer_context_impl.cpp:2002> [UID = 2]: Trying to create engine from model files
0:00:12.497221643   339      0x3a10690 INFO                 nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<secondary-inference> NvDsInferContext[UID 2]: Info from NvDsInferContextImpl::buildModel() <nvdsinfer_context_impl.cpp:2034> [UID = 2]: serialize cuda engine to file: /dli/task/ngc_assets/vehicletypenet_vpruned_v1.0.2/resnet18_vehicletypenet_pruned.etlt_b1_gpu0_fp32.engine successfully
0:00:12.558627894   339      0x3a10690 INFO                 nvinfer gstnvinfer_impl.cpp:328:notifyLoadModelStatus:<secondary-inference> [UID 2]: Load new model:/dli/task/spec_files/sgie_config_vehicletypenet_04.txt sucessfully
0:00:12.558691981   339      0x3a10690 INFO                 nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<primary-inference> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::buildModel() <nvdsinfer_context_impl.cpp:2002> [UID = 1]: Trying to create engine from model files
0:00:34.863342139   339      0x3a10690 INFO                 nvinfer gstnvinfer.cpp:682:gst_nvinfer_logger:<primary-inference> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::buildModel() <nvdsinfer_context_impl.cpp:2034> [UID = 1]: serialize cuda engine to file: /dli/task/ngc_assets/trafficcamnet_vpruned_v1.0/resnet18_trafficcamnet_pruned.etlt_b1_gpu0_fp32.engine successfully
0:00:34.932542529   339      0x3a10690 INFO                 nvinfer gstnvinfer_impl.cpp:328:notifyLoadModelStatus:<primary-inference> [UID 1]: Load new model:/dli/task/spec_files/pgie_config_trafficcamnet_03.txt sucessfully
0:00:34.934497080   339      0x3a291e0 LOG           GST_SCHEDULING gstpad.c:3725:do_probe_callbacks:<onscreendisplay:sink> do probes
0:00:34.934529293   339      0x3a291e0 LOG           GST_SCHEDULING gstpad.c:3612:probe_hook_marshal:<onscreendisplay:sink> hook 1 with flags 0x00003010 does not match 00001042
# Import dependencies
import re
import pandas as pd

trace_log=[]
# Column headers per documentation
headers=['time_stamp', 'process_id', 'thread_id', 'level', 'category', 'src_file_line', 'function', 'object_name', 'message']

# Helper function to remove ANSI escape sequences
def escape_ansi(line):
    ansi_escape = re.compile(r'(?:\x1B[@-_]|[\x80-\x9F])[0-?]*[ -/]*[@-~]')
    return ansi_escape.sub('', line)

# Open trace.log
with open('/dli/task/logs/trace.log') as f: 
    # Read file
    lines=f.readlines()
    # Iterate through each line
    for each_line in lines: 
        # Exclude the last character, which is a newline (\n) character
        current_line=escape_ansi(each_line[:-1])
        # Split based on white space(s), keeping in mind that src_file, line, function, and object are concatenated together
        time_stamp, process_id, thread_id, level, category, src_file_line_function_object, message=re.split(' +', current_line, maxsplit=6)
        # Split src_file, line, function, and object based on the semicolon character
        src_file, line, function, object=src_file_line_function_object.split(':', maxsplit=3)
        # Add all data to the trace_log list
        trace_log.append([time_stamp, process_id, thread_id, level, category, f'{src_file}:{line}', function, object, message])

# Export data to a DataFrame
df=pd.DataFrame(trace_log, columns=headers)
# Preview the dataframe
df.head()
time_stamp process_id thread_id level category src_file_line function object_name message
0 0:00:00.172938764 339 0x3a10690 LOG GST_SCHEDULING gstpad.c:1440 gst_pad_add_probe <onscreendisplay:sink> adding probe for mask 0x00000010
1 0:00:00.172971657 339 0x3a10690 LOG GST_SCHEDULING gstpad.c:1466 gst_pad_add_probe <onscreendisplay:sink> got probe id 1
2 0:00:00.406916273 339 0x3a10690 INFO nvinfer gstnvinfer.cpp:682 gst_nvinfer_logger <secondary-inference> NvDsInferContext[UID 2]: Info from NvDsInferCo...
3 0:00:12.497221643 339 0x3a10690 INFO nvinfer gstnvinfer.cpp:682 gst_nvinfer_logger <secondary-inference> NvDsInferContext[UID 2]: Info from NvDsInferCo...
4 0:00:12.558627894 339 0x3a10690 INFO nvinfer gstnvinfer_impl.cpp:328 notifyLoadModelStatus <secondary-inference> [UID 2]: Load new model:/dli/task/spec_files/s...

Each line captures the time stamp of the message as well as the time stamp of the frame in the message column. For demonstration, we’ve included the below script to parse out the time stamp of the frames being processed from the message column. By examining the time stamp of the messages related to the same frame, we can see when each frame enters different elements in the pipeline. We can therefore derive the approximate latency by analyzing the time differences. For example, we can calculate the time difference between getting a message from fakesink and nvinfer to determine the amount of time it took for nvinfer to process the frame.

# Iterate through rows backwards to get the time stamp
for idx, row in df[::-1].iterrows(): 
    # Time stamp is pts if object is a sink
    if row['object_name'] in ['<stream-muxer:sink_0>', '<primary-inference:sink>', '<fakesink:sink>']: 
        try: 
            df.loc[idx, 'frame_ts']=re.findall('pts \d+:\d+:\d+.\d+', row['message'])[0].split('pts ')[-1]
        except: 
            pass
    # Time stamp is dts if object is a decoder sink
    elif row['object_name']=='<nvv4l2-decoder:sink>': 
        try: 
            ts=re.findall('dts \d+:\d+:\d+.\d+', row['message'])[0].split('dts ')[-1]
            if ts: 
                df.loc[idx, 'frame_ts']=ts
                decoder_offset=re.findall('offset \d+', row['message'])[0].split('offset ')[-1]
        except: 
            pass
    # Time stamp is same as dts of decoder with same offset for file source
    elif row['object_name']=='<file-source:src>':
        try: 
            src_offset=re.findall('offset \d+', row['message'])[0].split('offset ')[-1]
            if src_offset==decoder_offset: 
                df.loc[idx, 'frame_ts']=ts
        except: 
            pass
time_df=df[['time_stamp', 'object_name', 'frame_ts']].dropna().drop_duplicates(subset=['object_name', 'frame_ts'])

# Pivot dataframe
time_df=time_df.pivot(index='object_name', values='time_stamp', columns='frame_ts')

# Leave time stamp as only seconds 
time_df.columns=[float(each_column.split(':')[2]) for each_column in time_df.columns]

# Clean up
time_df=time_df.dropna(axis=1)

# Display time_df
time_df=time_df.sort_values(0.0).applymap(lambda x: float(x.rsplit(':')[2]))
print('Time Stamp when Buffer Arrives (seconds)')
display(time_df) 
Time Stamp when Buffer Arrives (seconds)
0.000000 0.433333 1.100000 1.766667 2.733333 3.633333 4.766667 5.400000 7.666667 8.333333 ... 24.066666 24.100000 24.133333 24.166666 24.200000 24.233333 24.266666 24.300000 24.333333 24.366666
object_name
<file-source:src> 34.934574 35.663063 36.302625 37.001356 37.935973 38.835896 39.969197 40.603594 42.869313 43.535860 ... 59.269717 59.302680 59.336046 59.369420 59.402713 59.435944 59.469314 59.502681 59.535807 59.569175
<nvv4l2-decoder:sink> 34.936760 35.663137 36.302768 37.001467 37.936045 38.836007 39.969273 40.603679 42.869385 43.536024 ... 59.269765 59.302720 59.336087 59.369460 59.402782 59.435986 59.469356 59.502720 59.535848 59.569206
<stream-muxer:sink_0> 35.048593 35.902513 36.601253 37.267906 38.202834 39.134591 40.235822 40.967915 43.135842 43.901223 ... 59.535682 59.569027 59.602390 59.635679 59.669107 59.702322 59.735592 59.769025 59.802324 59.835729
<primary-inference:sink> 35.619003 35.935681 36.602584 37.269316 38.235794 39.137380 40.269077 40.968153 43.169133 43.901988 ... 59.569023 59.602311 59.635604 59.669091 59.702336 59.735513 59.768942 59.802317 59.835571 59.869005

4 rows × 51 columns

# Calculate time difference as processed time
diff_df=-time_df.diff(-1).T

# Plot results
diff_df.iloc[:, :-1].plot(figsize=(15, 5)).legend(loc='upper right')
<matplotlib.legend.Legend at 0x7f78945625e0>
../../_images/f1627d416e21b4b5ccbd68f6bd6a6d0effeabd861670757c804d897e268e352a.png

Viewing the Inference#

In the next step, we convert the video file into a container file before playing it since the MPEG4 encoded video file can’t be played directly in JupyterLab. The FFmpeg tool is a very fast video and audio converter with the general syntax:

  • ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...

# Convert MPEG4 video file to MP4 container file
!ffmpeg -i /dli/task/output_04_raw.mpeg4 /dli/task/output_04.mp4 -y -loglevel quiet
from IPython.display import Video
Video("output_04.mp4", width=720)