TX1/TX2 Motion Estimation performed on RTP streaming video (YUV colour space as per RFC 4175). Compatible with DEF-STAN 00-82
Please be patient whilst we fix some of the issues with this code.
- Use Gstreamer1.0 for RTP nvxio FrameSource
- Output video as raw RTP backets (no Gstreamer required)
- CUDA YUV to RGB conversion
- CUDA RBG to YUV conversion
- Output RTP stream with motion overlay
- Colour code arrows based on speed (green=slow, amber=medium, red=fast)
Some additional features that are not currently planned.
- Support for interlaced DEF STAN 00-82 streams
- Support for other Uncompressed video formats (RGB, BGR etc ...)
- SAP support
To obtain the repository, navigate to a folder of your choosing on the Jetson. First, make sure git and cmake are installed locally:
sudo apt-get install git cmake
Then clone the rtp-motion-estimation repo:
git clone http://github.com/ross-abaco/rtp-motion-estimation
When cmake is run, a special pre-installation script (CMakePreBuild.sh) is run and will automatically install any dependencies.
mkdir build
cd build
cmake ../
Make sure you are still in the motion-estimation/build directory, created above in step #2.
cd motion-estimation/build # omit if pwd is already /build from above
make
For jetson 64bit builds the architecte will be aarch64.
Some macros control how the demo can be run and there are located in config.h
- HEADLESS 0 - Dont put anything out on the local display. Usefull for headless operation.
- GST_MULTICAST 1 - Set this for multicast sources
- RTP_STREAM_SOURCE - Define to use RTP Stream class as source (not gstreamer)
- GST_SOURCE 1 - 1 if RTP source, 0 if file source.
- GST_RTP_SINK 1 - RTP Output
- TIMEING_DEBUG 0 - Show timings in stdio
There are several test scripts provided in the root directory.
- testFile01.sh - Catch RTP output using Gstreamer
- testRtp01.sh - Catch RTP output using Gstreamer
- testRtp02.sh - Simple gst-launch-1.0 -v videotestsrc test with motion (1280 x 720)
- testRtp03.sh - Simple gst-launch-1.0 -v videotestsrc test without motion (1280 x 720)
- testRtp04-syntheticvideo.sh - Use a gstreamer videotessrc as input and RTP output (recommended)
- testRtp05-webcam.sh - Use a webcam as input and RTP output
- testRtp06-file.sh - Use the test file 960 x 540 as input and RTP output
Below is the example gstreamer pipline of a moving ball that can be used to test the algorithm :
Using gstreamer as a test source.
Using a live RTP camera to stream video.