Arduino live555
|
LIVE555 is a set of open source (LGPL) C++ libraries developed by Live Networks, Inc. for multimedia streaming. The libraries support open standards such as RTP/RTCP and RTSP for streaming, and can also manage video RTP payload formats such as MPEG, AAC, AMR, AC-3 and Vorbis.
It is used internally by well-known software such as VLC and mplayer.
In order to make the library available for Arduino I have
The biggest challenge was with the last point. Unfortunately Arduino does not provide a proper stdio.h implementation that can be used to access files. On the other hand most projects assume that stdio.h is available and therfore do not use any additional abstraction layer: live555 is here not an exception.
I have also created a simple mp3 streaming API. Here is an example that uses the SdFat library from Bill Greiman to access the files on a SD card:
In the constructor of the SimpleMP3Streamer we need to indicate the file access class. For starting the streaming we need to provide a file and the destination ip address: 192.168.1.255
is a broadcast address. This is done with the help of the RTSPSimpleStreamerConfig. If we did not start the network yet we need to provide the ssid and password. The cfg.isAutoRestart = true;
is making shure that when the end of the file is reached that we restart again. I also provide the afterPlayingCallback method which can be used to select a new file and "restart playing"...
The VLC Player can be used to receive the streamed music. Just use -> File -> Open Network and enter the udp://@:6666
address.
Here is the generated class documentation
I am really struggeling to make this work. The sound is breaking up and I did not find so far what is causing this.
For Arduino you can download the library as zip and call include Library -> zip library. Or you can git clone this project into the Arduino libraries folder e.g. with
I recommend to use the git method, so that you can simply get updates by executing the git pull
command in the arduino-live555 library folder.
For building and running the code on your desktop, please consult the original build instructions
Please note that this library only works properly for environments that can handle symbolic links correctly.