Summary


OpenBroadcast is a free software development project for distributed and real time multimedia production. OpenBroadcast is a last generation interface for real time communication-creation on free networks based on a horizontal relation of the agents who take part in the same one.


You will be able to use OpenBroadcast in your computer using a GNU/Linux live CD without any installation and also (in a reduced version) using any internet browser without any plugins. OpenBroadcast allows you to receive and co-create audio/video streaming channels on the network, collaboring and communicating with all the other people connected in the same channel.

In easy words you can imagine it like a chat room with the goal that you not only send and receive text but also images,video,audio and ideas.


Please visit http://gollum.artefacte.org (preferible with mozilla compatible browser) in order to view a “beta” prototipe of the web interface.



Definitions


Streaming media is a term that describes a real time delivery of multimedia information. It's typically applied to compressed multimedia formats delivered over the Internet.

Streaming allows data to be transferred in a constant flow (or stream) of packets that are interpreted as they arrive (hence the name streaming.) Without streaming the entire media will have to be downloaded in one big package before it can be used.


There are many pieces to a streaming media system:

Encoding tools are used for compressing the media into a format suitable for delivery over the Internet.

Servers make the compressed files and live streams available to many people.

Players connect to the servers and get the media.


Live CD is a complete operating system (that usually contains other software as well) stored on a bootable CD-ROM that can be executed from it, without installation on a hard drive. The system returns to its previous OS when the LiveCD is ejected and the computer is rebooted.


Pure Data is a real-time graphical programming environment for audio, video, and graphical processing. It is the third major branch of the family of patcher programming languages known as Max (Max/FTS, ISPW Max, Max/MSP, jMax, etc.) originally developed by Miller Puckette and company at IRCAM includes the work of many developers, making the whole package very much a community effort.



Project Goals


The primary goal of OpenBroadcast is to provide a stable free-software system in a liveCD ready to work with all the necessary tools to process and stream audiovisual contents on the internet in the easyness way, without technical knowledges. The user only have to boot from the CD and have instantly working the entire aplication with a very simple interface.


OpenBroadcast is a project about technology innovation in the emerging field of free-software based video streaming and in this face the project has an important documentation value.


OpenBroadcast wanna be a tool for the communication and reinforcement of the innovation for social networks, which objectives match those expressed in the Civil Society Declaration out of the recent World Summit on the Information Society (dec 2003), as they are to favor "the inclusive and participative use of the information and communication technologies" and that "everyone could freely create, use, share and disseminate information and knowledge".

Which applications does it have?


OpenBroadcast cold be used like a video on demand server with extensible databases of multimedia files and also like a system to broadcast events on the internet.

Eventually, we could speak about a weekly audio and video program produced from diferent points over the world giving coverage to diferent cultural themes. In the other hand OpenBroadcast has an important educative value if applied in the e-learning field.



Metodology


Pure Data becomes the base for this project as a powerful and flexible audiovisual processor. With Pure Data (and some extensions) we can get video from any device connected to the computer (webcam or video capture card), play video files from the hard disk, generate text, mix all together apliying real-time effects and encode the result audio/video signal ready to send to a streaming server. However, all this process is not an easy work for final users especially in the installation steps and cause the PD interface is basically a programming oriented interface. OpenBroadcast will take advantage of the PD power but offering a simple grafical user interface in DHTML-PHP, connected to the PD aplication with OpenSoundControl messages in both ways. So OpenBroadcast core will work as a result from the integration between several PD patches and a set of PHP scripts:


to autodetect hardware, test connection speed and aviability, report the results and change the application functionality depending on it's.
pd-web interconnection (see pdweb in
http://artefacte.org/pd) using new php5 sockets features to interchange control messages betwen pure data and the interface.
web forms with error detection and management and utilities (uploads, database access,etc)
administration interfaces for the streaming servers
tools for format conversions (images,audio,video)


all this, convenientment armoniced with some other freesoftware packages conforms all the OpenBroadcast system. Some of this software is related here:


http://ydegoyon.free.fr/software.html
http://zwizwa.fartit.com/pd/pdp
http://theora.org
http://www.ffmpeg.org
http://www.icecast.org
http://www.apache.org
http://www.php.net
http://cgiirc.sf.net

At the programming level OpenBroadcast will follow the clasical Analisis-Design-Coding-Testing-Debug methodology for object oriented software:

Analisis responds to the question “what to do?”. This text coud be a good start point for this fase cause we have been fixed some aplications requisites like the easyness usability of the aplication, the liveCD and web presentations and the descentralized structure. In this fase is also possible to fix the timetable for the project.


Design responds to the question “how we are going to do it?” and here we take practical decissions like: hardware and software platforms, data organization, module especification, funtional descomposition of the aplication, etc ...


Coding, in this fase all the design specifications are translated to executable code.


Testing, cause its practically impossible to code an aplication without errors.


Debug, to correct the errors detected in the testing fase.





This is a simple ilustration on how OpenBroadcast works.