Skip to content
Matthias edited this page Jul 16, 2013 · 51 revisions

Table of Contents

About GStreamer-Phone

gstreamer-phone is a console tool, which allows to make video calls independent of a graphical system installed. It negotiates a session with a remote partner via SIP, XMPP (Jabber, Google Talk) or Google Hangouts (planned) and initiates H.264 compressed video transmission via RTP using gstreamer. gstreamer-phone is especially designed for usage on the Raspberry Pi with special focus on the Raspberry's hardware H.264 encoding and decoding capabilities. The camera for development is the Logitech C920, which features hardware H.264 encoding.

About Gstreamer

How to test gstreamer

PC:

 $ gst-launch-0.10 -v v4l2src device=/dev/video1 ! 'video/x-h264,width=800,framerate=15/2' ! rtph264pay ! udpsink host=raspberry port=9078

Raspberry:

 $ gst-launch-1.0 -v udpsrc port=9078 ! 'application/x-rtp,payload=96,encoding-name=H264' ! queue ! rtph264depay ! h264parse ! decodebin ! autovideosink

Development status

Capturing

  • uvch264 for gstreamer-0.10 works perfectly
  • H.264 stream bitrates can be adjusted in the command line

Streaming

  • streaming through SSH tunnel works
  • streaming via RTP works

Playback

Not working

  • video preview on the recording machine does not work, since eglglessink for 0.10 won't run and only 0.10 features the uvch264 plugin
  • gst-omx for gstreamer-0.10 will not launch
  • gstreamer-1.0 will not compile dfbvideosink, because it's not been ported yet

Future plans

  • SIP support, see also Issue list
  • Android app
  • Video conference with other common SIP clients
  • SRTP support
  • RTP over SSH support

Dependencies

  • a Raspberry Pi
  • a Logitech C920 webcam
  • gstreamer
My /etc/apt/sources.list is:
deb http://ramses.wh2.tu-dresden.de/pub/mirrors/raspbian/raspbian/ wheezy main contrib non-free rpi
deb-src http://ramses.wh2.tu-dresden.de/pub/mirrors/raspbian/raspbian/ wheezy main contrib non-free rpi
deb http://vontaene.de/raspbian-updates/ . main
deb-src http://vontaene.de/raspbian-updates/ . main
apt-get install libgstreamer0.10-0 gstreamer0.10-tools \
  gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly \
  v4l-utils

System configuration

 apt-get install libnss-mdns mdns-scan avahi-{utils,daemon}
  • /etc/nsswitch.conf
 hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

Links

Debian packaging

STUN