The aim of this project is to produce a client/server application that allows any Windows or Linux client PC on a network to stream, over the IP network, the MPEG video and audio streams from a Linux "server" that has 1 or more DVB cards.
I would expect that the project would involve combining the functionality of zap (tzap, czap, szap, azap), dvbstream, gnutv and dvbguide for the server component.
The client would be one of three possible devices. A Windows PC with Windows Media Center, a Windows PC with Windows Media Player or a Linux PC with VLC. Therefore I would image three client solutions
a) For the Windows Media Center solution, there would need to be a virtual tuner card driver (Windows BDA compliant) that allowed Windows Media Center to scan (setup), record and change channels remotely. There would also need to be some way on locking the remote tuner while the channels was being recorded/viewed to ensure that other client do not try to "grab" the dvb tuner when already in use.
b) For the Windows Media Player solution, there would need to be a basic application that displayed EPG data from the DVB Tuner, the user could then select a program and then the remote tuner would lock onto that channel, open Windows Media Player on the local PC and then stream video to the local PC. Again, there would need to be some way of locking the channel, until the client no longer required the DVB tuner.
c) For the Linux VLC solution, a similar approach to the Windows media Player solution would be required, but the MPEG video and audio streams should be opened in VLC or similar.
Both scenarios b and c would require that the application provided the following:
EPG obtained from the over-the-air EPG data
For any given channel, the signal strength, the snr, the ber, the data stream bit rate and the video stream bit rate
If more than 1 DVB card is installed on the server, the clients should be able to use any available tuners
The server should be able to support IP multicasting of Video/Audio streams (nice to have)
Ability to carry out scenarios b and c in a web browser (nice to have)