Jetson TX2

Use case I: 
How to use Devkit for a purpose of video communication via web-browser [update: in some cases web skype will say "incompatible browser", but that issue is rather linux specific]
DevKit board for video+audio communication via web browser [Chromium] + webskype/hangiouts/jitsi etc.
Terminal N1 //steps 1-10 are based on the  post  by DaneLLL // It takes to create a videoloopback device and  redirect devkit-board sensor output to the loopback 
sudo su
cd /usr/src/linux-headers-4.4.38-tegra
make modules_prepare
mkdir v4l2loopback
cd v4l2loopback
git clone
cd v4l2loopback
make install
modprobe v4l2loopback devices=1 video_nr=2 exclusive_caps=1
echo options v4l2loopback devices=1 video_nr=2 exclusive_caps=1 >
echo v4l2loopback > /etc/modules
update-initramfs -u
gst-launch-1.0 nvcamerasrc ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)I420, framerate=(fraction)30/1' ! nvtee ! nvvidconv ! 'video/x-raw, format=(string)I420, framerate=(fraction)30/1' ! tee ! v4l2sink device=/dev/video2
Terminal N2
export DISPLAY=:0
// done, now the browser can  be used for video conference since it will work with MIPI CSI as with "usb web camera"
Desktop Icon creation ( to be used instead of the steps above named Terminal N1 [14] and Terminal N2[1,2] )
cd ~/Desktop 
gst-launch-1.0 nvcamerasrc ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)I420, framerate=(fraction)30/1' ! nvtee ! nvvidconv ! 'video/x-raw, format=(string)I420, framerate=(fraction)30/1' ! tee ! v4l2sink device=/dev/video2 &
export DISPLAY=:0
chmod +x
nano chromium.desktop
[Desktop Entry]
Name=Chromium Web Browser
Exec=/home/nvidia/Desktop/ %U
Use case II: How to extend disk capacity of jetson to the  capacity of  Host PC  for video recording
Devkit board disk drive extension and record movies [audio+video] / record screen
sudo apt-get install sshfs
mkdir mountfolder
sshfs user@host:/folder /mountfolder
cd mountfolder
[ Use case II-a: How to record movies with devkit ]  // special thanks to  Honey_patouceul & DaneLL 
apt-get install gstreamer1.0-plugins-bad
gst-launch-1.0 nvcamerasrc num-buffers=300 ! omxh264enc ! queue ! mux. alsasrc num-buffers=1000 device="hw:2,0" ! voaacenc ! queue ! qtmux name=mux ! filesink location=b.mp4
[ Use case II-b-1: noaudio]  
gst-launch-1.0 nvcamerasrc fpsRange="30.0 30.0" ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)I420, framerate=(fraction)30/1' ! omxh264enc ! qtmux ! filesink location=test1.mp4 -e
[ Use case II-b-2: noaudio]   
gst-launch-1.0 nvcamerasrc ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)I420, framerate=(fraction)30/1' ! omxh264enc ! 'video/x-h264,stream-format=(string)byte-stream' ! filesink location="test.h264" -e
[Use case II-c : display capture]  by HooverLv [source]
gst-launch-1.0 -v ximagesrc use-damage=0 ! nvvidconv ! 'video/x-raw(memory:NVMM),alignment=(string)au,format=(string)I420,framerate=(fraction)25/1,pixel-aspect-ratio=(fraction)1/1'
! omxh264enc ! 'video/x-h264,stream-format=(string)byte-stream' ! filesink location="test.h264" -e
That can be converted into mp4 with:
ffmpeg -framerate 24 -i input.264 -c copy
NB! Needless to say that to write videos out of /mountfolder in the example will fill the entire Jetson eMMC.
Use case III: How to use Devkit for running Virtualbox, Teamviewer, Tor Browser, or whatever x86_64 application
Devkit board uses Host PC extension and delivers running application from Host PC processor to Jetson screen
sudo apt-get install gstreamer1.0-libav
sudo add-apt-repository ppa:x2go/stable 
sudo apt-get update 
sudo apt-get install x2goserver x2goserver-xsession
sudo apt-get install xfce4
sudo apt-get install x2goclient
Presuming ssh public key of Jetson has been added to the Host PC authorized_keys file,
we can now setup delivery of either entire  Host Desktop or a separate binary window to the Jetson via x2goxclient 
Use case IV: How to stream video using the devkit onboard sensor ov5693 and play the stream from Host PC /Network
tar -xvf gst-rtsp-server-1.8.3.tar.xz 
cd gst-rtsp-server-1.8.3
./configure --libdir=/usr/lib/arm-linux-gnueabihf/
cd examples/
./test-launch "( nvcamerasrc sensor-id=0 ! video/x-raw(memory:NVMM), width=1920, height=1080, framerate=30/1, format=I420 ! nvvidconv flip-method=4 ! video/x-raw, width=720, height=480, framerate=30/1, 
format=I420 ! timeoverlay ! omxh265enc ! rtph265pay name=pay0 pt=96 )"
sudo iptables -A INPUT -p tcp --dport 8554 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 8554 -m conntrack --ctstate ESTABLISHED -j ACCEPT
Now a local 
VLC will play the stream or  a local/network gst-launch-1.0 client as below:
gst-launch-1.0 rtspsrc location=rtsp://  ! 'application/x-rtp, media=(string)video' ! decodebin ! videoconvert ! ximagesink
ssh name@jetson_ip -L 8554:localhost:8554
The above done -  Host PC  VLC will somewhat likely to play 
 the Jetson camera stream as a 
local with
. Otherwise, if it doesn't work, the network address of Jetson needs to be specified.