gst로 야누스 webrtc를 사용하기 위해 기록함
jetson 성능 최대화
sudo nvpmodel -m 0 #최대 성능 모드
sudo jetson_clocks #모든 CPU 코어와 GPU가 최대 클럭으로 설정
cuda 사용을 위한 opencv 빌드
gstreamer 빌드
https://developer.ridgerun.com/wiki/index.php/Compile_gstreamer_on_Jetson_TX1_and_TX2
2개의 빌드를 통해서 webRTC를 사용하려고 했으나, 아래 파이썬 코드에서 GstWebRTC를 호출하지 못함
from gi.repository import Gst
gi.require_version('GstWebRTC', '1.0')
여러가지 해 봤는데, 그냥 gst 라이브러리를 설치 해 보기로 함
https://gstreamer.freedesktop.org/documentation/installing/on-linux.html?gi-language=c
apt-get install libgstreamer1.0-dev \\
libgstreamer-plugins-base1.0-dev \\
libgstreamer-plugins-bad1.0-dev \\ --> 이게 설치 되면서 opencv를 덮어 쓴다..
gstreamer1.0-plugins-base \\
gstreamer1.0-plugins-good \\
gstreamer1.0-plugins-bad \\
gstreamer1.0-plugins-ugly \\
gstreamer1.0-libav \\
gstreamer1.0-tools \\
gstreamer1.0-x \\
gstreamer1.0-alsa \\
gstreamer1.0-gl \\
gstreamer1.0-gtk3 \\
gstreamer1.0-qt5 \\
gstreamer1.0-pulseaudio
gst 파이프 라인은 다음과 같음.
webrtcbin name=sendrecv bundle-policy=max-bundle
rtspsrc location=rtsp_url ! queue ! rtph264depay !
video/x-h264 ! nvv4l2decoder ! queue ! nvvidconv !
queue ! vp8enc deadline=1 ! rtpvp8pay !
queue ! application/x-rtp,media=video,encoding-name=VP8,payload=97 ! sendrecv.