Statistics
| Branch: | Revision:

streamers @ 74ff12bb

Name Size Revision Age Author Comment
  Chunkiser 74ff12bb about 11 years Luca Abeni Put the frame rate in the payload header...
Makefile 1.92 KB 130de9fe about 11 years Csaba Kiraly no optimization in debug mode
README.txt 3.16 KB 21ca4b73 about 11 years Luca Baldesi instructions updated git-svn-id: https://repos...
dbg.h 146 Bytes e64fc7e5 about 11 years Luca Make debug output optional
dumbstreamer.c 2.62 KB 4c008ca5 about 11 years Csaba Kiraly binding message types (needed by net_helper-ml)...
gpl-3.0.txt 34.3 KB 8fed7779 about 11 years Luca Baldesi added GPL git-svn-id: https://repository.napa-...
input-stream-dummy.c 1.18 KB 74ff12bb about 11 years Luca Abeni Put the frame rate in the payload header...
input-stream.h 319 Bytes 30a6e902 about 11 years Csaba Kiraly configurable loop support Conflicts: loop.c ...
input.c 1.47 KB 30a6e902 about 11 years Csaba Kiraly configurable loop support Conflicts: loop.c ...
input.h 262 Bytes 30a6e902 about 11 years Csaba Kiraly configurable loop support Conflicts: loop.c ...
loop-mt.c 4.16 KB 8fed7779 about 11 years Luca Baldesi added GPL git-svn-id: https://repository.napa-...
loop.c 3.22 KB c14d968c about 11 years Csaba Kiraly follow net_helper.h changes to wait4data Confl...
loop.h 197 Bytes 30a6e902 about 11 years Csaba Kiraly configurable loop support Conflicts: loop.c ...
net_helpers.c 1.02 KB 8fed7779 about 11 years Luca Baldesi added GPL git-svn-id: https://repository.napa-...
net_helpers.h 110 Bytes 2abd0645 about 11 years Luca Abeni Add include guards
out-stream.c 1.1 KB 74ff12bb about 11 years Luca Abeni Put the frame rate in the payload header...
out-stream.h 58 Bytes 54b631d9 about 11 years Luca Abeni Split the real chunk output out of output.c (pr...
output.c 2.19 KB a6ac9440 about 11 years Luca Abeni Fix merging mistake
output.h 102 Bytes 2abd0645 about 11 years Luca Abeni Add include guards
streaming.c 2.16 KB ae3c4aa9 about 11 years Csaba Kiraly add error message if chunk can't be decoded Co...
streaming.h 356 Bytes 30a6e902 about 11 years Csaba Kiraly configurable loop support Conflicts: loop.c ...
utils.mak 267 Bytes ecf6e64a about 11 years Luca Abeni Better selection of compile options and librari...

Latest revisions

# Date Author Comment
74ff12bb 03/15/2010 01:13 PM Luca Abeni

Put the frame rate in the payload header...

e0f42ea7 03/15/2010 10:19 AM Luca Abeni

Correctly decode the chunk payload header

3ee4345d 03/12/2010 11:10 AM Luca Abeni

Write some interesting information in the chunk payload header...

a6ac9440 03/03/2010 02:06 PM Luca Abeni

Fix merging mistake

627ce9ba 03/03/2010 01:59 PM Luca Abeni

Merge branch 'new_nethelper_interface'

c14d968c 03/03/2010 01:48 PM Csaba Kiraly

follow net_helper.h changes to wait4data

Conflicts:

loop.c
298a8869 03/03/2010 09:20 AM Luca Abeni

Fix output debugging

130de9fe 03/02/2010 10:14 PM Csaba Kiraly

no optimization in debug mode

bb95b0c9 03/02/2010 10:12 PM Csaba Kiraly

added ML to Makefile

Conflicts:

Makefile
dfe2b7b8 03/02/2010 10:12 PM Csaba Kiraly

add some more debug to loop

Conflicts:

loop.c

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 -I lo
3) in a different shell, start a client: ./dumbstreamer -I lo -P 5555 -i 127.0.0.1 -p 6666
4) start another client: ./dumbstreamer -I lo -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 -I lo -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 -I lo -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