Author: Willem Hengeveld itsme@xs4all.nl
Date:
Tue Dec 4 01:26:56 CET 2001
streaming ascii tv
this package takes the output of 'aatv' http://n00n.free.fr/aatv/
and stream compressed ascii-tv signal to its clients.
aatv in turn uses v4l (in the linux kernel)
and aalib http://aa-project.sourceforge.net/aalib/
software that does something related to multicasting/multiplexing of data
streams.
but none of these could take the output of one program and stream
it compressed to various independent clients.
so I started out with this project
how to use
- first start the server: "
perl mcast.pl
"
- connect using netcat and pipe output through "
compress -d
"
example: nc asciitv.someserver.test 2000 | compress -d
how to configure
configuration is currently done by modifying the source.
package contents
files in package: (download here)
- readme.txt
- text version of this file.
- Compress/Compress.pm
- wrapper for /usr/bin/compress
this gives a better realtime streaming performance than gzip or zlib
* maybe if I do per-frame compression, and use 'flush' it will work
with zlib too.
- TVData.pm
- wrapper for aatv command
- mcast.pl
- main program
- tvclient.pm
- wrapper for client socket, handles compression
- tvstream
- v0.0 version, does not support multiple clients
- aatv.patch
- changes I made to aatv-0.2
[patch generated using 'diff -wurN origversion newversion']
download
first version (20011204) can be found here
unsolved problems
see comments in mcast.pl
- various tech details of instability caused by unhandled exceptions
- need to send data to client one frame at a time.
- disconnects are not handled well: all clients get disconnected.
- need to figure out how much data is still in the xmit buffer of a socket.
( you can get it from /proc/net/tcp, but a more direct way would be appreciated )