Statistics
| Branch: | Revision:

streamers @ 8c2cc74a

Name Size Revision Age Author Comment
  Chunkiser 4a18aab5 over 11 years Luca Simpler ff-based input
Makefile 1.59 KB 7d19f599 over 11 years Csaba Kiraly cleaning bmap_send and parse
README.txt 3.13 KB 0f2ac03e over 11 years Luca Abeni Minimal informal README
chunk_signaling.c 4.37 KB 993f958a over 11 years Csaba Kiraly use dprintf in chunk_signaling
chunk_signaling.h 1.14 KB fa81d544 over 11 years Csaba Kiraly addded cuhnk_signaling functions to header
dbg.h 146 Bytes e64fc7e5 over 11 years Luca Make debug output optional
dumbstreamer.c 2.06 KB 4136911a over 11 years Luca Abeni Update to the new net helper API
input-dummy.c 655 Bytes 4bb789ed over 11 years Luca Some fixes to the input module
input.h 164 Bytes 709f774c over 11 years Luca Beginning of a real input module...
loop-mt.c 4.02 KB 4136911a over 11 years Luca Abeni Update to the new net helper API
loop.c 3.33 KB e223dc99 over 11 years Csaba Kiraly added handling of signaling messages to loop.c
loop.h 135 Bytes 7442ecb3 over 11 years Luca Pass a file name to the input module
net_helpers.c 917 Bytes 568bd1bd over 11 years Luca Abeni Make eth0 the default interface
net_helpers.h 38 Bytes 568bd1bd over 11 years Luca Abeni Make eth0 the default interface
output.c 2.12 KB e8654707 over 11 years Luca Output module: do not overwrite an already stor...
output.h 44 Bytes 89e893e2 over 11 years Luca DumbStream, first import
streaming.c 3.9 KB 8c2cc74a over 11 years Csaba Kiraly send buffermap right after sending chunk
streaming.h 273 Bytes e98d8f50 over 11 years Csaba Kiraly added peerset and "from" parameters to receiver...
utils.mak 267 Bytes ecf6e64a over 11 years Luca Abeni Better selection of compile options and librari...

Latest revisions

# Date Author Comment
8c2cc74a 01/28/2010 05:09 AM Csaba Kiraly

send buffermap right after sending chunk

a1a9e662 01/28/2010 05:07 AM Csaba Kiraly

implemented send_bmap

e223dc99 01/28/2010 05:06 AM Csaba Kiraly

added handling of signaling messages to loop.c

993f958a 01/28/2010 05:04 AM Csaba Kiraly

use dprintf in chunk_signaling

fa81d544 01/28/2010 05:03 AM Csaba Kiraly

addded cuhnk_signaling functions to header

a0192c66 01/28/2010 05:03 AM Csaba Kiraly

added sendMyBufferMap

c1f8de1c 01/28/2010 05:02 AM Csaba Kiraly

SOM: fixed signaling deconde and encode length

7d19f599 01/28/2010 02:52 AM Csaba Kiraly

cleaning bmap_send and parse

9b429d2f 01/28/2010 01:52 AM Csaba Kiraly

cleaning up signaling header

721e2618 01/28/2010 01:50 AM Csaba Kiraly

rename to chunk_signaling.h

View all revisions | View revisions

README


This is DumbStreamer, the dumb streamer!
As such, do not expect it to be smart...

Here is a quick'n'dirty, informal, description about how to compile
and test the thing (do not expect to find any information about what
the dumb streamer is, or how it works. If you need such information,
please drop me an email - ):

Ok, here we go...
- To download the DumbStreamer
git clone http://www.disi.unitn.it/~abeni/PublicGits/DumbStreamer.git
- To compile it:
cd DumbStreamer
make prepare
make
You can type "make FFDIR=<path to an ffmpeg build>" to compile a version
of the streamer with a minimal libav-based input module.
You can type "make DEBUG=WhyNot" to compile a "debug" version of the
dumb streamer (prints out a lot of crap and debug information, not really
useful in practice unless you are trying to hunt a bug).
You can type "make THREADS=YesPlease" to compile the multi-thread version
of the streamer. Not tested with libav*.
You can type "make GRAPES=<path to your grapes>" to use a different build
of GRAPES
- To test it:
First, I suggest to test the non-libav-based version. It generates
"fake" text chunks, which are useful for debugging
1) build as above (make prepare; make)
2) start a source: ./dumbstreamer
3) in a different shell, start a client: ./dumbstreamer -P 5555 -i 127.0.0.1 -p 6666
4) start another client: ./dumbstreamer -P 5556 -i 127.0.0.1 -p 6666
5) ...
Explanation: "-P <port>" is the local port used by the client (6666 by
default). Since I am testing source and multiple clients on the same
machine, every client has to use a different port number. "-i <IP addr>"
is the source IP, and "-p <port>" is the port number used by the source.
After this testing, I suggest recompiling with debug on, and with threads.
Test as above, and enjoy.
- To see something interesting:
You have to build a libav-based version:
1) cd /tmp; svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
2) cd ffmpeg; ./configure; make -j 3; cd ..
3) git clone http://www.disi.unitn.it/~abeni/PublicGits/DumbStreamer.git
4) cd DumbStreamer; make prepare; make FFDIR=/tmp/ffmpeg
Now, prepare a (video-only) input file:
5) /tmp/ffmpeg -i <whatever.avi> -r 25 -an -vcodec mpeg4 -f m4v test.m4v
6) The input currently needs to be called "input.mpg", so
ln -s test.m4v input.mpg
Start the source. For the moment, you need to manually specify the rate
(will be fixed in the future):
7) ./dumbstreamer -t 40 -c 50
create a FIFO for the output, and attach a player to it:
8) mkfifo out; ffplay out
start a client:
9) ./dumbstreamer -P 5555 -p 6666 -i 127.0.0.1 > out
- Enjoy... ;-)

A lot of cleanup is needed, and the input module is still far from being
reasonable (but this is not our business ;-)
But you can now enjoy some video...

Remember! The DumbStreamer is dumb! Peers try to send chunks to the source...
Scheduling is blind...
All of this is very bandwidth inefficient. If you want to start more clients,
please increase the upload bandwidth of the source (dumbstreamer -t 40 -c 200,
or even more...).

Enjoy your streaming,
Luca

Also available in: Atom