This was originally an open source project but it went closed source and can be licensed here: Flussonic. Since I am working on a scientific project that will utilize video streaming, I wanted an open source version. Hence I started hacking around with this for video streaming as well as exploring other alternatives. Otherwise, for others, the simplest thing is simply to pay for a Flussonic license. I have no idea what the relationship of this code base is to the current commercial version. You can also see the old README file and do some Google searching.
I forked this from another repository (see above) that was one of a number of forked remnants of the original Erlyvideo. Probably a number of people forked this before it was closed up and eventually become the precursor of Flussonic.
The bit rot was in a number of areas:
- The code used parameterized modules that were no longer supported in Erlang (version 19). This was fixed by using a work around designed to deal with this. It is called pmod_transform. See their examples on how to use it. I had to also change its
Makefile
and therebar.config
to get things to compile. erlang:now/0
is depreciated and there are a number of replacements for it. I generally used the functionerlang:timestamp/0
since that returned a tuple compatible with the one returned byerlang:now/0
. See the Erlang documentation. It could be that some of code should have been rewritten to use a different function.- There were depreciated functions from
crypto
. The highlighting in Emacs usually gave good clues on what to replace it with. - Some of the nif's did not compile probably due to changes in
rebar
. It thought that all of thec_src
in should go into one library and since there were two or more object files with anif_init
function in them, this did not work. Fixed by changing therebar.config
file. - In
elixer_tracker.erl
module the code assumed thatModule.info_available(compile)
returned an association with the atomtime
as a key. This is no longer the case in the version of Erlang I am using (v 19). This module needs some major rewriting but I fixed it by simply putting some guard code around the offending pattern matching. This is a hack since this module basically no longer does its job. I believe it was used to detect when new code was added. It then automatically recompiled and loaded it. - Numerous include files pointing at the wrong directory were fixed.
The Makefile needs some work. For now simply clone the repository using git and type the command rebar compile
in the main directory (erlyvideo). This assumes you have a recent version of Erlang properly installed.
In the main directory (erlyvideo) run the command make run
. It should run with a sample config file. I have yet to test what needs to be changed to get it to do something useful. (TO-DO)
Erlyvideo is distributed under the GNU General Public License version 3 and is included in this source tree in the file COPYING. It was originally written by Max Lapshin.
Erlyvideo has runtime dependencies from other packages:
- amf distributed under MIT License and packaged inside Erlyvideo
- erlydtl distributed under MIT License and packaged inside Erlyvideo
- log4erl distributed under MIT License and packaged inside Erlyvideo
- misultin distributed under BSD license and packaged inside Erlyvideo
- pmod_transform distributed under the Erlang Public License
- src/mochijson2.erl distributed under MIT license and packaged inside Erlyvideo