# VLC & [Gsteamer](https://forums.developer.nvidia.com/t/streaming-desktop-with-rtsp-gstreamer-server/143765) Ethernet 影像傳輸
> ChiaChe [time=Tue, Feb 18, 2025 1:38 PM]
> Jetson Orin Nano (VLC Server) ---> PC(GSteamer Clients)
> H264畫質10s~20s後品質會開始清晰,持續調整Server傳輸參數
[TOC]
## [ ](#Logitech-C920 "Logitech-C920")Logitech C920
| mode | Camera Delay | Jetson (Server) to PC(Clients) |
| -------- |:------------:|:------------------------------:|
| Cheese | 0.03 | X |
| VLC | 0.5↓ | VLC: 6s、Gsteamer: 0.2s ~ 3s |
| GSteamer | 0.8↓ | - |
| Live555 | - | - |
### Camera 解析度規格查詢
```
v4l2-ctl --device=/dev/video0 --list-formats-ext
[0]: 'YUYV' (YUYV 4:2:2)
Size: Discrete 1920x1080
Interval: Discrete 0.200s (5.000 fps)
Size: Discrete 2304x1296
Interval: Discrete 0.500s (2.000 fps)
Size: Discrete 2304x1536
Interval: Discrete 0.500s (2.000 fps)
[1]: 'MJPG' (Motion-JPEG, compressed)
Size: Discrete 1920x1080
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.042s (24.000 fps)
Interval: Discrete 0.050s (20.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Interval: Discrete 0.100s (10.000 fps)
Interval: Discrete 0.133s (7.500 fps)
Interval: Discrete 0.200s (5.000 fps)
```
## VLC install
```
sudo apt install vlc-plugin-access-extra
sudo apt install -y nvidia-jetpack
sudo apt-get install -y gtk-doc-tools
sudo apt-get install -y libgstreamer1.0-0 gstreamer1.0-plugins-base
sudo apt-get install -y gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly
sudo apt-get install -y gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools
sudo apt-get install -y gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
```
### VLC RTSP Server
H264 參數
`ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、placebo`
#### Camera
```
cvlc -vvv v4l2:///dev/video0 \
--sout '#transcode{vcodec=h264,vb=800,fps=30,acodec=mp4a,venc=x264{preset=ultrafast,tune=zerolatency,keyint=15}}:rtp{sdp=rtsp://:8554/live.ts}' \
--network-caching=50 \
--sout-rtp-caching=25 \
--live-caching=25 \
-I dummy
```
#### Screen
```
cvlc -vvv screen:// \
--sout '#transcode{vcodec=h264,vb=2000,fps=15,acodec=vp8,venc=x264{preset=ultrafast,tune=zerolatency,keyint=15}}:rtp{sdp=rtsp://:8554/live.ts}' \
--network-caching=100 \
--sout-rtp-caching=25 \
--live-caching=25 \
-I dummy
```
## GStreamer
```
wget https://github.com/GStreamer/gst-rtsp-server/archive/1.8.zip
cd gst-rtsp-server-1.8/
git clone https://github.com/GStreamer/common.git
./autogen.sh
make -j4
sudo make install
cd example/
#測試RTSP串流影像
./test-launch "( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )"
```

### Camera影像顯示
```
gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! autovideosink
gst-launch-1.0 v4l2src device=/dev/video0 ! 'video/x-raw,width=1440,height=1080,framerate=30/1,format=UYVY' ! videoconvert ! autovideosink
```
### Client
```
gst-launch-1.0 rtspsrc location=rtsp://10.42.0.136:8554/live.ts latency=0 ! decodebin ! autovideosink
```
## Live555~(Jetson Orin Nano make尚未成功)
```
sudo apt update
sudo apt install libssl-dev
sudo apt-get install build-essential
sudo apt-get remove liblivemedia-dev
cd $HOME
wget http://www.live555.com/liveMedia/public/live555-latest.tar.gz
tar xvf live555-latest.tar.gz
cd live
./genMakefiles linux
make
sudo cp -r $HOME/live /usr/lib
make clean
```