Perl Hacker with two NICs needed. Edit/test existing TCP/UDP Stream tool.

Perl Hacker with two NICs needed. Edit/test existing TCP/UDP Stream tool.


Job Description

I made a client/server tool in Perl for ingesting TCP and/or UDP media streams, encapsulating and modifying the packets, receiving, and re-emitting transparently.

I don't have time to test and improve it. Do you?

You'll need the ability to generate a media stream using ffmpeg or VLC. ffmpeg and Linux dev environment preferred.

You must have two computers in order to test networking functionality. If you have a remote ssh accessible server, even better.

Required skills:
2 network interfaces, i.e. a cellphone and DSL, or a virtual NIC alias
Access to two computers
Linux command line
Shell scripting
TCP/UDP networking
knowledge of networking packet internals (byte offsets and such)
Skype account
remote desktop, either viewing or serving
Java installed (Java knowledge not required)

Bonus skill desired:
Knowledge of how to implement bandwidth throttling using Iptables2
Knowledge of mp4, avi, flv file format internals.

You must be communicative and report your activities and progress every 2 hours. You get paid to do this, so you should be happy to do it, right?

Elaborate description of what I want you to do:
1. SSH in to your remote Linux computer and run the Listener part of the tool from the command line.
2. Start the transcoder part of the tool on your local Linux computer.
3. Start a UDP stream using a sample video that will be provided and ffmpeg. For example:
ffmpeg -i sample.avi udp://
4. Open the resultant stream produced by the listener in a media player such as VLC.
5. Verify that the media plays perfectly.
6. Begin working on updating the Perl script as per ongoing instructions based on the results of steps 1-5.
-for example:
1. We will want to investigate the pros and cons of switching to TCP for C/S communication.
2. We want to add bandwidth detection.
3. Add automatic network Interface detection.
4. Add a GUI.
5. Possibly port the project to Java.
6. Simulate various network interruptions and decide the best way to handle them.

Work for 2 hours and then let me know if you want to continue working, If so, there could be up to 100 hours for this project.

Description of existing tool:
As I mentioned previously, I wrote this C/S program in Perl. Therefore, I own it. I will also own any code I'm paying you to produce,

Non-disclosure/Non-compete agreement required.

If you have experience with most of the concepts listed here, and think you can figure out the rest with my help, please do apply.

Skills: linux, shell-scripting, test, video