README

November 22, 2009 ยท View on GitHub

erlyvideo is a flash streaming server, written in erlang.

currently it can:

  • stream, seek, pause and resume mp4 and flv files
  • fast starting of flv playback with building index in background
  • record flv from camera
  • have possibility to auth users
  • broadcast flv between people
  • provide push channel to flash, just like juggernaut, just like AMQP (look doc/push.edoc)

currently in development:

  • good recording from flash camera. Currently there are problems.
  • improve handling of background vlc/ffmpeg for them to recode uploaded videos
  • reading of MPEG TS. It may be required for streaming and recording from video cameras

future plans:

  • try to change quality on fly
  • RTSP/RTP to read from QuickTime Broadcaster

What you can do right now?

  • use it for streaming flv and mp4 files
  • use it as a replacement for long-poll push channels
  • use it as a recorder of video camera
  • use it with longtailvideo player

How can You help?

  • Launch it and test on your content;
  • make fork on github, add your improvements and push them to me.

How to launch:

  • git clone git://github.com/maxlapshin/erlyvideo.git
  • cd erlyvideo
  • cp src/erlmedia.app ebin/erlmedia.app
  • $EDITOR ebin/erlmedia.app
  • change /tmp to /Users/username/Movies
  • make
  • make run
  • open http://localhost:8082
  • click on any flv/mp4 file and then press Play
  • change any erlang code
  • type ems:rebuild() in console
  • profit!

How to hack and add features:

  • read doc/hacking.edoc
  • add plugin

Plugin structure:

  • Look at src/apps_streaming.erl
  • You should define and export functions, that will be available to flash. Format is FunctionName(AMF, State). Reply is State.
  • To handle events to client runloop, add 'WAIT_FOR_DATA'(Message, State) function, which should respond in the same way as OTP handler.