Using gstreamer to stream h264 via TCP or UDP
Create a file called set_env.sh and source it from the terminal before executing programs or gstreamer packages. This must be done in every terminal that you want to use gstreamer in.
Create the file:
$ vim set_env.shPFX=/home/user/gst/runtime
export PATH=$PATH:$PFX/bin
export LD_RUN_PATH=$LD_RUN_PATH:$PFX/lib
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$PFX/lib/pkgconfig
export GST_PLUGIN_PATH=$PFX/lib/gstreamer-1.0Source the file
$ . set_env.sh- libx264-dev — Provides H.264 encoder.
- libgudev-1.0-dev — Required for the new uvch264src
- libusb-1.0-0-dev — Required for the new uvch264src
- yasm — Assembler needed for gst-libav
- autoconf
- bison
- gtk-doc-tools
sudo apt-get install libx264-dev
sudo apt-get install libgudev-1.0-dev
sudo apt-get install libusb-1.0-0-dev
sudo apt-get install yasm
sudo apt-get install autoconf
sudo apt-get install flex bison
sudo apt-get install gtk-doc-toolsGstreamer source packages are available from: https://gstreamer.freedesktop.org/modules/
git clone https://cgit.freedesktop.org/gstreamer/orc
git clone https://cgit.freedesktop.org/gstreamer/gstreamer
git clone https://cgit.freedesktop.org/gstreamer/gst-plugins-base
git clone https://cgit.freedesktop.org/gstreamer/gst-plugins-good
git clone https://cgit.freedesktop.org/gstreamer/gst-plugins-bad
git clone https://cgit.freedesktop.org/gstreamer/gst-plugins-ugly
git clone https://cgit.freedesktop.org/gstreamer/gst-libav1.Setup environment
. set_env.sh2.Build ORC using --prefix=/home/user/gst/runtime
cd orc
./autogen.sh --prefix=/home/user/gst/runtime && make && sudo make install3.Build opus 1.1 from source if you need it
4.Build gstreamer using --prefix=/home/user/gst/runtime
cd gstreamer
./autogen.sh --prefix=/home/user/gst/runtime && make && sudo make install5.Build gst-plugins-base using --enable-orc --prefix=/home/user/gst/runtime
cd gat-plugins-base
./autogen.sh --enable-orc --prefix=/home/user/gst/runtime && make && sudo make install6.Build gst-plugins-good using --enable-orc --prefix=/home/user/gst/runtime
cd gat-plugins-good
./autogen.sh --enable-orc --prefix=/home/user/gst/runtime && make && sudo make install7.Build gst-plugins-bad using --enable-orc --prefix=/home/user/gst/runtime
cd gat-plugins-bad
./autogen.sh --enable-orc --prefix=/home/user/gst/runtime && make && sudo make install8.Build gst-plugins-ugly using --enable-orc --prefix=/home/user/gst/runtime
cd gat-plugins-ugly
./autogen.sh --enable-orc --prefix=/home/user/gst/runtime && make && sudo make install9.Build gst-libav using --enable-orc --prefix=/home/user/gst/runtime
cd gat-libav
./autogen.sh --enable-orc --prefix=/home/user/gst/runtime && make && sudo make installsudo apt-get install libgstreamer1.0-0
sudo apt-get install gstreamer1.0-plugins-base
sudo apt-get install gstreamer1.0-plugins-good
sudo apt-get install gstreamer1.0-plugins-bad
sudo apt-get install gstreamer1.0-plugins-ugly sudo apt-get install
sudo apt-get install gstreamer1.0-libav
sudo apt-get install gstreamer1.0-doc
sudo apt-get install gstreamer1.0-toolsTo start the receiver:
gst-launch-1.0 -v udpsrc port=6666 ! application/x-rtp, encoding-name=H264 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! autovideosinkTo start the sender:
gst-launch-1.0 uvch264src device=/dev/video1 name=src auto-start=true src.vidsrc ! video/x-h264,width=1280,height=720,framerate=30/1 ! h264parse ! rtph264pay ! udpsink host=127.0.0.1(Receiver's IP address) port=6666http://oz9aec.net/software/gstreamer/using-the-logitech-c920-webcam-with-gstreamer-12
https://gstreamer.freedesktop.org/documentation/installing/on-linux.html