Statistics
| Branch: | Revision:

streamers @ 87c82f76

Name Size Revision Age Author Comment
  Chunkiser 87c82f76 over 11 years Csaba Kiraly fix loop support in input-stream-avs
Makefile 2.54 KB d74bb0e5 over 11 years Luca Abeni First shot at a libav-based output module
README.txt 3.16 KB 21ca4b73 almost 12 years Luca Baldesi instructions updated git-svn-id: https://repos...
chunkbuffer_helper.h 609 Bytes 92283824 over 11 years Csaba Kiraly added chunkbuffer_helper to manage cb_ chb rena...
dbg.h 146 Bytes e64fc7e5 almost 12 years Luca Make debug output optional
gpl-3.0.txt 34.3 KB 8fed7779 almost 12 years Luca Baldesi added GPL git-svn-id: https://repository.napa-...
input-stream-dummy.c 1.31 KB 3b1df622 over 11 years Luca Abeni Write PTS and DTS in the frame header
input-stream.h 319 Bytes 46c24e94 over 11 years Csaba Kiraly configurable loop support Conflicts: loop.c ...
input.c 1.47 KB 46c24e94 over 11 years Csaba Kiraly configurable loop support Conflicts: loop.c ...
input.h 262 Bytes 46c24e94 over 11 years Csaba Kiraly configurable loop support Conflicts: loop.c ...
loop-mt.c 4.16 KB 8fed7779 almost 12 years Luca Baldesi added GPL git-svn-id: https://repository.napa-...
loop.c 3.22 KB 19096da1 over 11 years Csaba Kiraly increased buffer size
loop.h 197 Bytes 46c24e94 over 11 years Csaba Kiraly configurable loop support Conflicts: loop.c ...
net_helpers.c 3.61 KB 85deb6ec over 11 years Csaba Kiraly minor
net_helpers.h 135 Bytes b3e7f2cb over 11 years Csaba Kiraly adding ip address autodetection
out-stream-avf.c 3.7 KB 3b1df622 over 11 years Luca Abeni Write PTS and DTS in the frame header
out-stream.c 1.1 KB 3b1df622 over 11 years Luca Abeni Write PTS and DTS in the frame header
out-stream.h 58 Bytes 54b631d9 almost 12 years Luca Abeni Split the real chunk output out of output.c (pr...
output.c 3 KB 9132cb6f over 11 years Csaba Kiraly print output-buffer
output.h 133 Bytes af2907a9 over 11 years Csaba Kiraly output: adding init with bufsize
streamer.c 2.85 KB 613263e9 over 11 years Csaba Kiraly change default to IP address autodetect
streaming.c 2.63 KB fc0260a4 over 11 years Csaba Kiraly print chunk buffer
streaming.h 356 Bytes 46c24e94 over 11 years Csaba Kiraly configurable loop support Conflicts: loop.c ...
utils.mak 267 Bytes ecf6e64a almost 12 years Luca Abeni Better selection of compile options and librari...

Latest revisions

# Date Author Comment
87c82f76 03/19/2010 03:55 PM Csaba Kiraly

fix loop support in input-stream-avs

78344779 03/19/2010 12:29 PM Csaba Kiraly

Merge remote branch 'abeni/io_consolidation' into DumbStreamer-IO2

3b1df622 03/19/2010 11:54 AM Luca Abeni

Write PTS and DTS in the frame header

1a8f1a2d 03/19/2010 07:41 AM Csaba Kiraly

changed output to stdout

9cc07b6c 03/19/2010 07:40 AM Csaba Kiraly

move definition of output format and filename

b3a9fb04 03/17/2010 12:58 PM Csaba Kiraly

Merge remote branch 'abeni/io_consolidation' into DumbStreamer-IO2

5557f497 03/16/2010 12:31 PM Luca Abeni

Support various video codec ids

0afd03fd 03/16/2010 11:58 AM Luca Abeni

Output cleanup

21ec2f15 03/16/2010 11:50 AM Luca Abeni

Copyright

cc6a39bf 03/16/2010 11:27 AM Luca Abeni

Small cleanup

move payload header writing to a separate function

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