Develop a PHP module in C, to be compiled on a Linux (CentOS) system.
The module will offer asynchronous services.
It will grow in time, the first project will contain some of the first needed functions. If worked out well, we will work out new projects for you (no bidding needed from there on).
The module will be added in [url removed, login to view], and from there on I will have the ability to perform tasks. Note that it is up to your skill and knowledge if the functions will be separate functions, or all together in a class/object. As the module will be streaming one movie (per user/php script) an object is not necessary but on the other hand would be nice so we can set default settings in it, and change those settings on the fly.
Function 1 (asynchronously): streammovie( absolutepathmovie, offset, absolutepathintro)
This function will read the movie file (an MP4) and if the offset is not zero the new index is to be recreated in memory and send to the receiver.
The third and optional parameter is to add a short intro before the main movie. Two movies must be streamed as one.
There will be some functions as to communicate with the running 'streammovie' function. While it is streaming php will regain posession and can do other tasks while streaming is on progress. Php can now call some of these functions:
Function 2: getinfo( what )
what = 'bytes', it will return the number of bytes send since the call to streammovie
what = 'seconds', it will return the number of seconds (real movie-seconds viewable or cached at the receiver) send since the call to streammovie
what = 'bitrate', return the (calculated) current bitrate
Function 3: changesetting ( array( 0..n name=> value) )
Per value the setting will be changed. Settings which have impact on the current running stream will update the running stream.
'checkforupdates' => value in milliseconds
This is the interval time the streaming function will perform other tasks than streaming (updating global variables containing all info about the streaming process, changing own parameters like bitrate)
'maxbitrate' => value
This will set the maximum bitrate (bytes per second, only calculated for the data stream, not for the index/metadata).
'pause streaming' => 1
This will halt the streaming until a resume is given.
'resume streaming' => 1
This will resume the streaming
'stop streaming' => 1
This will end the streaming.
Some info on the C code:
The idea is that we have code at hand and I expect you to re-use it (unless you already have such code proven to work).
Search for apache_mod_h264_streaming-2.2.7 to get the C code (which is working really very well in Apache).
If you have experience with writing a module for PHP than you may place bids. I do need to know what kind of module you have written and will ask you if you did not write it in your offer message.
If you have the experience of coding the C script in a php module AND knowledge of the MP4 format then you are my preferred developer so be sure to let me know this!
You must rely on my skills (10yr+) in PHP.
Before we start I will write out in great detail every aspect of what is in or out this project.
I will adapt the text to your preference whether you want to code it using objects or in plain functions.
More info on the movies
- format MP4, the 'index' is already moved to the front of the file
- size: from small up to 1 GB
- an intro movie will be anywhere between 0 (none) to 120 seconds
- environment: Linux/Cent-OS (5.0 currently). Apache will run PHP. Server has multiple cores and sufficient memory or load balancing can be applied if needed.
- Up to 10 concurrent streaming movies is to be expected at least.
I ask you to please only bid if you have read this description.
You will need to write in your first line of bidding: 'ofcourse I did read your description in detail. Even twice!'
Auto bids will not be responded to and will have zero chance of being selected. I need serious people as this is a serious project.
8 freelancere byder i gennemsnit $3320 på dette job
Hello, We have excellent team of programmers and designers to work on your project efficiently and complete job in time. We have read your deepest requirement at our best and will surely give better results. thanks