Sunday, March 17, 2013

Raspberry Pi: Webcam Microphone Streaming Test

  1. Install ALSA
    sudo apt-get install gstreamer0.10-alsa
  2. Audio sound test using alsasrc
    gst-launch -v alsasrc device=hw:1 ! audioconvert ! volume volume=10 ! alsasink
  3. Microphone streaming over TCP
    TX (RPi)
    gst-launch alsasrc device=hw:1 ! queue ! audioconvert ! speexenc ! queue ! tcpserversink host=x.x.x.x port=5001
    RX (Ubuntu on Pandaboard ES)
    gst-launch tcpclientsrc host=x.x.x.x port=5001 ! sppxdec ! volume volume=10 ! autoaudiosink
    The latency was not good enough, around 1 sec.
    (Note: TX host IP should be receiver/Pandaboard IP address, and RX host IP address should be transmitter/Rpi IP address.)
  4. Microphone streaming over UDP
    TX (RPi)
    gst-launch -v alsasrc device=hw:1 ! audioconvert ! audioresample ! 'audio/x-raw-int,rate=8000,width=16,channels=1' ! speexenc ! rtpspeexpay ! udpsink host=x.x.x.x port=5001
    RX (Ubuntu on Pandaboard ES)
    gst-launch udpsrc port=6666 caps="application/x-rtp, media=(string)audio, clock-rate=(int)16000, encoding-name=(string)SPEEX, encoding-params=(string)1, payload=(int)110" ! gstrtpjitterbuffer ! rtpspeexdepay ! speexdec ! audioconvert ! audioresample ! volume volume=10 ! autoaudiosink
    Still around 1 sec latency...(Note: host IP should be receiver/Pandaboard IP address)


Hardware:
    Raspberry Pi
    PS3 Eye
    EW-7781Uh WiFi dongle
    Ubuntu machine (Pandaboard ES)

Summary:
    PS3 eye was used for microphone streaming over TCP/UDP.
    The latency was not so great (around 1 sec), and it needs to be investigated, especially using different encoder.  
     RPi CPU usage was about 51%  for TCP(top command)
     RPi CPU usage was about 29%  for UDP(top command)

Reference:




                 

1 comment: