sudo apt-get install gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! x264enc ! rtph264pay name=pay0 pt=96 ! udpsink host=127.0.0.1 port=8554
오류 : WARNING: erroneous pipeline: no element "x264enc"
GStreamer 플러그인이 설치되어 있지 않아서 발생함
x264enc GStreamer 플러그인을 설치하면 됨
Ubuntu에서 x264enc 플러그인을 설치하는 방법:
sudo apt-get install gstreamer1.0-plugins-ugly
gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! x264enc ! rtph264pay name=pay0 pt=96 ! udpsink host=127.0.0.1 port=8554
파이프라인에서 v4l2src는 웹캠에서 비디오 스트림을 가져오고, videoconvert는 포맷을 변환함.
x264enc는 비디오를 인코딩하고, rtph264pay는 RTP 페이로드로 변환함.
udpsink는 RTP 패킷을 지정된 호스트와 포트로 보냄

입력으로부터 비디오 데이터를 가져와서 x264enc를 사용하여 H.264로 인코딩하고, RTP 패킷으로 변환하는 GStreamer 파이프라인이다. 그리고 udpsink를 사용하여 RTP 패킷을 UDP 패킷으로 전송하고 있음.
RTP/UDP 스트림을 생성하고, 이를 수신하여 재생하는 RTSP 클라이언트 프로그램을 구현할 수 있음.
로그를 보면 "Pipeline is live and does not need PREROLL ..."와 같은 메시지가 표시되는데, 이는 파이프라인이 PREROLL 단계를 건너뛰고 바로 PLAYING 상태로 전환되었음을 의미함.
이는 GStreamer의 자동 PREROLL 기능 덕분에 가능.
이 파이프라인을 통해 생성된 RTP/UDP 스트림을 수신하여 재생할 RTSP 클라이언트 프로그램을 구현하면 됨.