Statistics
| Branch: | Revision:

streamers / README.txt @ 21ca4b73

History | View | Annotate | Download (3.16 KB)

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

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

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

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

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

    
68

    
69
			Enjoy your streaming,
70
				Luca