OPEN SOURCE PLATFORM FOR REMOTE ENCODING AND DISTRIBUTION OF MULTIMEDIA CONTENTS

Paulo Paiva, Pedro Tom´as, Nuno Roma TU Lisbon / IST / INESC-ID Rua Alves Redol, 9, 1000-029 Lisboa - PORTUGAL

Keywords: Audio and Video Encoding, Multimedia Terminal, Remote Management, Open Source Software

Abstract: This paper presents a multimedia platform for digital television based on existing single purpose open-source solutions. The advantage of the proposed platform regarding existing ones is the possibility to integrate new features or change existing ones (e.g., recording format and coding standard). In this sense, the proposed terminal natively supports: (i) multi-user remote management; (ii) broadcast of recorded contents to remote devices, such as laptops and mobile phones; (iii) broadcast of real-time TV or video/surveillance cameras.

1 INTRODUCTION To summarize, the proposed system is character- ized by offering support for: Nowadays, the commercial trend for multimedia • input devices: satellite, video or radio antenna, ca- terminals are all-in-one solutions that are able to dis- ble TV, IPTV; play real-time TV shows, record TV programs and • manage other multimedia contents. However, the output devices: TV, computer, laptops, mobile de- latest advances in multimedia services will soon in- vices, Hard Disk Drive (HDD) (for recording pur- tegrate other features, such as video-call or home pose), others (e.g. tablets ) through a local con- surveillance, which will require more customizable nection, LAN and/or Internet. platforms, where the user has the possibility to add Furthermore, it supports the following core ser- new features. vices: Some platforms for the distribution of multimedia • TV Streaming – after acquiring the TV signal, it contents already exist. Example of such platforms in- may be displayed in real-time or even displayed clude: commercial solutions, such as Microsoft Me- while recording. This reproduction facility of the diaroom [17], do not allow any change due to pro- audio/video is often denoted as streaming, where prietary rights. Example of open-source solutions in- media is constantly received and displayed to the clude TV [15], which may have a large sup- end-user through an active Internet connection, port for devices and formats, but require programing whether or not the user is next to the computer knowledge by the end-user, making it hard to cus- where the signal is acquired. tomize or change. • In contrast, the platform that is proposed allows TV Recording – this basic functionality provides different inputs, from satellite broadcasts to video- the ability to remotely manage the recording of camera or surveillance-cameras. The produced con- any TV show or program that, by some reason, tent is handled by an encoding and streaming server, can not be seen at that time. allowing different types of devices to access the ser- • Video-call – since the audio/video acquisition is vice with no extra costs for the user other than the implemented for the TV Streaming functionality, Internet connection. Moreover, its strict personal us- setting it up for a web-cam and microphone repre- age is assured by convenient security (using SSL/TLS sents a small change in the system. This way, the protocols) and user authentication mechanisms. video-call can also be offered as a service. 2 RELATED WORK [16] is a proprietary and paid IPTV ser- vice available to television providers. Many providers Several tools that implement the previously pre- use this software (including Portuguese MEO and sented features already exist independently, but with Vodafone) and it is also accessible through a large set no connectivity between them. The main difference of devices (personal computer, mobile devices, TV’s, between the developed platform and the tools already Microsoft XBox360). GoogleTV [7] is an IPTV developed is that this framework integrates several in- service for Android based systems. It is an all-in- dependent solutions into it. Other differences are: one solution, allows developers to add new features, through the Android Market, and currently works • Some proprietary solutions cannot be modified only for some selected Sony televisions and Sony Set- without violating intellectual property. Top boxes. NDS MediaHighway [20] is a platform • Many software tools have a complex interface and adopted worldwide by many Set-Top boxes (e.g., Por- are suitable only for experienced users or users tuguese Zon provider). The difference between NDS with some programming knowledge. In some and MediaRoom is that NDS supports DVB (terres- cases, this is due to the fact that these tools support trial, satellite and hybrid), while MediaRoom does many more features and configuration parameters not. than what is expected in an all-in-one multimedia All of the above commercial solutions have sim- solution. ilar functionalities and charge their usage. However, • Some TV applications cover only DVB, while no some support a great number of devices (MS Media- analog support is provided; Room), and some are specialized in one kind of de- • Most applications only work in specific world ar- vice, e.g. GoTV - mobile devices. None of the men- eas (e.g., USA). tioned commercial solutions offer support for video- conference, either as an add-on or within the normal • Some applications only support a limited set of service. devices. A new emergent area is IPTV (Internet Protocol Television), with several solutions being developed in Free/open-source software Linux TV [15] is a a daily basis, but all related to IP solutions. It is the repository for several tools that offers a vast set of case of a Personal TV framework presented in [1], support for several kinds of TV Cards and broadcasts where the main goal is the design of a Framework for methods. By using the Video for Linux driver (V4L) Personal TV for personalized services over IP. [2], it is possible to watch TV from all kinds of DVB The solution presented in this paper differs from sources, but none for analog TV broadcast sources. the Personal TV [1] in several aspects. The solution The problem of this solution is that, for a regular user here in presented is: implemented based on existent with no programing knowledge, it is hard to setup open-source solutions; intended to be easily modi- any of the proposed solutions. Video Disk Recorder fiable; aggregate several multimedia functionalities, (VDR) [14] is another open-solution for DVB, with such as video-call, recording content; and to serve the the common options (regular playback, recording and user with several different multimedia video formats video edition). However, it requires some program- (the streamed video is done in WebM format, but it ming knowledge. Kastor! TV (K!TV) [22] is an open is possible to download the recorded content in dif- solution for MS Windows to view and record TV con- ferent video formats, after requesting the platform to tent from a video card. MythTV [19] is a free open- re-encode the content). source software for digital video recording (DVR). It In the following, a set of existing platforms is pre- has a vast support and development team, and any sented. It should be noted the existence of other small user can modify/customize it with no fee. applications just for video display (e.g. TV players In general, the existent open-source software of- such as Xawtv [6]) However, in comparison with the fer similar functionalities in comparison with the pro- proposed application, there is no solution that covers posed solution. The major restrictions of using these all the features offered by the proposed solution. solutions are: the user needs some programming knowledge (Linux TV); the acquired content can only Comercial Solutions Several commercial solutions be viewed in the machine where the signal is acquired exist, but none is legaly modifiable. GoTV [9] is a (VDR); and other solutions (MythTV) offer the pos- proprietary and paid software tool, which offers TV sibility for remote usage, but the remote user needs viewing specifically to mobile-devices (e.g., Android, specific software installed in order to properly view iPhone, ...) and only works in the USA. Microsoft the remote content. 3 ARCHITECTURE with the selected profile, i.e. different encoding parameters; The proposed architecture is based on existent sin- • Video Streamer Engine (VSE), which streams the gle purpose open-source software tools and was de- encoded video through the Internet connection; fined in order to make it easy to manipulate, remove • Scheduler, responsible for managing multimedia or add new features and hardware components. The recordings; core functionalities are: • Video Recorder Engine (VRE), which records the • Video Streaming, allowing real-time repro- video into the local hard drive, for posterior visu- duction of audio/video acquired from different alization, download or re-encoding; sources (e.g.,TV cards, video cameras, surveil- • lance cameras). The media is constantly received Video-Call Module (VMC), which streams the au- and displayed to the end-user through an active dio/video acquired from the web-cam and micro- Internet connection. phone. • Video Recording, providing the ability to re- Using a bottom-up approach, the server side mod- motely manage the recording of any source (e.g. ules, presented in Fig. 1 will now be described in the a TV show or program) in a storage medium; next subsection. • Video-call, considering that most TV providers 3.1.1 Signal Acquisition And Control also offer their customers an Internet connection, it can be used together with a web-camera and a The SAAC Module is responsible for the signal acqui- microphone, to implement a video-call service. sition and control. Video/audio signal can be acquired from multiple Hardware (HW) sources (e.g., TV The conceived architecture adopts a client-server card, surveillance camera, web-cam and microphone, model. The server is responsible for signal acqui- DVD). It can also be acquired in different formats. sition and management of the available multimedia Thus, the top modules should not be concerned about sources (e.g., cable TV, terrestrial TV, web-camera, how the information is provided/encoded. Thus, the etc.), as well as the reproduction and recording of the SAAC Module is responsible for providing a stan- audio/video signals. The client application is respon- dardized mean for the upper modules to read the ac- sible for the data presentation and the user interface. quired information. Fig. 1 illustrates the architecture in the form of a structured set of layers. This structure has the ad- 3.1.2 Encoding Engine vantage of reducing the conceptual and development complexity, allows easy maintenance, and permits The Encoding Engine is composed by the Audio and feature addiction and/or modification. Video Encoders. Their configuration options are de- Common to both sides, server and client, is the fined by the Profiler. After acquiring the signal from presentation layer. The user interface is defined in the SAAC Module, this signal needs to be encoded this layer and is accessible both locally and remotely. into the requested format for subsequent transmission. Through the user interface it should be possible to The Audio & Video Encoder Modules are used login as a normal user or as an administrator. The to compress/decompress the multimedia signals being common user uses the interface to view and/or sched- acquired. The compression is required to minimize ule recordings of TV shows or previously recorded the amount of data to be transferred, so that the user content and to do a video-call. The administrator in- can experience a smooth audio and video transmis- terface allows administration tasks, such as retrieving sion. Both audio and video encoder modules should passwords, disable or enable user accounts or even be implemented separately, in order to easily allow channels. the integration of future audio or video codecs into the system. 3.1 Server Side The Profiler is the module that specifies the pa- rameters for audio and video encoding. This module As shown in Fig. 1, the server is composed of six is represented as independent unit, since it could be main modules: integrated into the database. • Signal Acquisition and Control (SAAC), responsi- 3.1.3 Video Streamer Engine ble for the signal acquisition and channel change; • Encoding Engine, which is responsible for chan- The VSE component is responsible for streaming the nel change and for encoding audio and video data captured audio/video data provided by the SAAC oie a e h rtrcrigdcae h re- sources multiple the record dictates to possible recording not first Those is the it Scheduler. maining, the be: in of may defined set polices a be situations, to undesired have devices. this policies input prevent several to had order system In the this However, if Card. occur TV might unexpected/undesired one only to using lead while results, will al- it with be because not but should lowed, time behavior same These TV the channels). one different at only with recordings time, (multiple same card the at signals multi- acquire video schedul- to ple have source. would for system audio/video the responsible specific that any Consider is of and recording the VRE ing and of VSE operations the the manages component Scheduler The Scheduler 3.1.5 de- the level. with quality recording the fined the tunes starts it and Finally, it channel if not. required or decide recording to acceptable needs an system is the the as status, to well Scheduler according as Afterwards, the necessary record time. to is ending and channel it beginning input First, the specify same. to the source. always available recording is the au- procedure but the options, recording recording from several for are There coming responsible unit data the dio/video is VRE The Engine Recorder Video 3.1.4 data, web-camera considered. the is previously scenario stream video-call content also the when may any It streaming recorded. for and module

HW OS Presentation Application Layer Layer Layer Layer Streaming Engine ( V i deo VSE iue1 evradCin rhtcueo h utmdaT Multimedia the of Architecture Client and Server 1: Figure Signal Acquisition And( Control Audio Encoder Audio ) (a) Server Architecture

Encoding Engine Scheduler Profiler Recording HW Engine ( V i deo VRE ) Video Encoder Video Video-Call SAAC Module ( VCM ) ) User Components Interface Users hr r lgisaalbefrapoe functioning. proper a for available plug-ins that are provided possible, there au- as sup- Browsers for Web to many is plug-in as concerns port main a the is necessary, of One if solution display. dio/video and, this Browser implements Web that a software base The plug-ins required and Browser 3.2.1 ntecin ieteeaetomi modules: main two are there side client the In Side Client 3.2 (VSE). stream encoded the transmit ac- and to encoding Engine); module like (Encoding a video profile acquisition, and defined the audio audio to and cording for video module a for composed SAAC; is module VCM a where Hence, HW of: acquired. the are is signals difference the The video and audio feature. the streaming implements that simi- process very the is to feature lar this implements that process The Module Video-Call 3.1.6 the for These created file time. bash same a in the effect. defined at be Card) may policies TV same the (from

• • HW OS Application Layer Layer Layer ie+ui n temi otecorresponding the to it recipient. stream and video+audio Video-Call video; recorded and streamed the display rectly plug-ins required and Browser TV View or Recording or View TV Browser + Plugin (cross-platform supported) (b) Client Architecture Operating System oue oaqietelocal the acquire to module, HW erminal. Signal Acquisition And Acquisition Signal Encoder Audio Encoding Engine Control ( Control For Video-CallFor Video-Call Module ( Profiler VCM SAAC) ) Encoder Video nodrt cor- to order in , 3.2.2 Video-Call Module software. To implement the Encoding Engine, the fol- lowing tasks were defined in Flumotion: In order for the client to support the VCM, it is • Producer, responsible for producing stream data necessary the installation of some software (equiva- (usually in a raw format) and to feed it to other lent to the server-side) for acquisition, encoding and components. transmission of the local web-cam and microphone sources. The operation mode is the same as described • Consumer, which consumes the stream data. It in the server side VCM. might stream a feed to the network, making it available to the outside world, or it could capture a feed to disk. 4 IMPLEMENTATION • Converter, converts stream data. It can: encode or decode a feed; combine feeds to make a new The whole system was implemented over Linux feed (e.g., muxe audio and video feeds); change Ubuntu operating system, using a set of open-source the feed by changingthe content, (e.g., take a mas- packages for the multimedia services. The installed ter feed and a backup feed and if the master feed open-source software packages were: GStreamer [10] stops supplyingdata then it will output the backup core and its base, good, ugly and bad plug-ins to feed), etc. add support to Flumotion [5]; libvpx, to add support Thus, the producer component acquires the data from to WebM’s VP8 [26, 12] video format; Flumotion the HW, passes the data to a consumer component for [5]; Ruby on Rails (RoR) Framework [3]; XMLTV encoding purposes (the video data may go to a con- [24, 18]; the latest version of a web browser; and, verter component if it is necessary to scale down the for data management, it was used a SQLite data-base, frame) and then passes the stream to the consumer which implements a self-contained, server-less, zero- component responsible for the muxing. The audio configuration, transactional SQL database engine. stream is encoded with Vorbis codec and the video is encoded with VP8 code. It is at this stage that 4.1 User Interface and Authentication the profiles are set. Acquired video in a large for- mat (4CIF), can be scaled down to CIF and QCIF, The User Interface (UI) module was developed using encoded to VP8 with different parameters according the RoR Framework [3], which is an open-sourceweb to the desired quality. After having the two streams application development framework, that allows ag- in the desired format (Vorbis for audio and VP8 for ile development methodologies. The UI is accessible video) they are muxed into the WebM container and through a browser with support to HTML5 (e.g., lat- streamed through Real Time Protocol (RTP) to the est versions of Firefox and Chrome), in order to allow web. the displaying of the streaming content. Mapping the described implementation into the The user authentication was implemented using architecture in Fig. 1, it results that Flumotion covers Devise [21], a flexible, easy to configure and manage the SAAC module, the Encoding Engine and the VSE authentication solution that is based on Warden [11]. module. The management of the Flumotion manager and workers is done by Bash Scripts. 4.2 Audio&Video acquisition, encoding There is still one manager where all the described and broadcasting tasks are defined (signal acquisition, encoding and broadcasting), associated to different workers. The The audio and video acquisition (SAAC) is imple- need for several workers is because it simplifies the mented by Flumotion, which acquires the signals management process in the scripts. When a request from the available HW. It also makes use of several to change channel is made, the following procedure is Bash Scripts that tune the HW (TV card) to the se- done: lected channel. The Encoding Engine module is implemented by 1. the system verifies if the user that requested the Flumotion. Flumotion is based in the concept of hav- change has permission for this action. The per- ing one (or more) manager(s), where the tasks are mission is currently based on who was first using defined, and one (or more) worker(s), associated to the system, but it can be added special permis- the defined tasks. This way, the manager is respon- sions to users; sible for managing the workers (i.e., start and stop). 2. assuming that the user can change the channel, Both manager and workers are defined in a XML doc- the worker which was acquiring the video stream ument, by following a structure defined by Flumotion from the HW is terminated; 3. the script to change the channel is invoked with 3) when the recoding time ends, there are two differ- the channel code. The codes are defined in the ent scenarios: database and were acquired using the XawTV • there is no more recordings in progress: the software; recorder worker is terminated, the resulting file 4. the video acquisition worker is launched again; is renamed, copied to the videos folder, and 5. theweb pageis reloadedandthe newchannelcon- added to the database. At this time the user will tent is displayed. be able to view the recording; • there are other recordings in progress: a subset To control the workers and manager, a file is cre- of the file content is copied to the video folder ated when they are launched to keep track of their using the FFmpeg tool [4] (the start time and PID. This is useful for restarting and changing the end time are passed as parametersto getthe sub- channel. set) and the video is added to the database. 4.3 Recording Management The recorded content, at the server, may then be downloaded. The original format of the recorded The VRE is also implemented by Flumotion software. file is VP8+Vorbis in a WebM container (it is the The streamed video and audio can be recorded to disk streamed format and this way no more extra complex- by a consumer component. This task is defined in the ity is added to the recording process). However, a re- manager XML file and associated to a worker. encoding option is available. The user may transcode To evaluate if a recording is valid, it has to pass the resultant file into H.264 video format and ACC the scheduler tests. The scheduler has a set of rules to audio format, or even add other formats. This func- evaluate a request. Those rules are: tionality, media manipulation and coding blocks, is implemented using the FFmpeg tools. a) there cannot be two simultaneousrecordingsat the same time in different channels (unless there are 4.4 Video-Call two or more TV cards available); b) it is possible to record subsets of a previous de- Considering its personal use nature, with a strict peer- fined recording; to-peer topology, the video-call module was imple- ) while a recording is ongoing, it is impossible to mented by reusing the Flumotion streaming server change the channel; to broadcast the audio/video acquired from the lo- d) the recording always has the highest priority, cal web-camera and microphone. This feature allows meaning that if there is a user watching a different two or more users to share the streamed content be- channel prior to the recording, when the record- tween them. For this, each user needs the Flumo- ing starts the channel will be changed to the one tion software installed. After running the Flumotion defined in the recording; this ensures a first come, Server and setting up the stream of the local web-cam first serve priority system. and microphone, the application gives an URL which should be exchanged between the users and inserted The implementation of these rules is done by ruby into the fields, Local and Remote, in the Multime- scripts, which simplify this task. When a recording dia Terminal web-page. After the insertion of the two is classified as valid, the request is inserted into the URL’s, the terminal presents in the same window the database and a job is added to the Linux Cron ta- local and remote users, like a traditional video-call. ble through the at command. When a scheduled job This is a rudimentary solution which requires some starts, the following procedure is done: future work. Future extensions are the integration of 1) verify if some recordingis ongoing (check the PID this feature with existent messaging programs as well file for the recording worker); as the encoding using a video-call protocol, such as Session Initiation Protocol (SIP) [23] and H.323 [13]. 2) if not: • change to the channel defined in the recording 4.5 Programming Guide (if necessary); • launch the recorded worker; A feature that was also implemented to add extra • wait until the recording time ends. functionalities to the developed software was the ad- diction of a Electronic Programming Guide (EPG) If a recording is ongoing, then: [8]. The EPG was implemented using the XMLTV • wait until the recording time ends. software [25], which connects to a Internet host and 5.2 Resources Usage

The CPU computational load is mainly due to the au- dio&video acquisition, scaling, encoding and broad- casting. The server where this evaluation was con- ducted, was a Dual Core AMD Opteron Processor 170, where the two cores were used during the pro- cess, and with 2 GiB of memory.The CPU usage was measured in three different stages: no clients, one client and ten clients (being this solution for personal usage, ten people represent the size of a ten member family, which is uncommon) for the medium quality (video bit-rate 400 kbit/s and audio bit-rate 64kbit/s). Figure 2: User streaming interface. The results are the following: • with no clients, the total CPU usage was around retrieves several XML files (XMLTV [18]), one for 33%; each channel available in the country, Portugal (sev- • with one client, the total CPU usage was 33.5%; eral countries are available). This information is used • with ten clients, the total CPU usage was 38.5%. for displaying to the user the current and next show at the viewed channel and it also allows the user to set recordings while viewing the show list for a selected 5.3 Usability and Modifiability channel. After inquiring several users about the usability of the developed solution (this analysis was conducted with several families, one family with six members, three 5 EVALUATION with 4 and 12 singles),the average of the obtained re- sults was that the user interface was easy to use (90% of a universe of 30 people), the recording functional- This section presents the evaluation of the devel- ity was also easy and intuitive to use (87%) and the oped solution according to three different prespec- video-call was clear about how to use after a brief ex- tives: (i) supported devices and Operating Systems planation (70%). However, the current implementa- (OS); (ii) resources usage; (iii) user usability and tion was not the most suitable for the current user’s modifiability. (video-call). The improvements for the video-call are described in the Conclusions section. 5.1 Supported Devices and OS Regarding the user modifiability, the conclusions were made after explaining to the users how the sys- tem was designed and how RoR works and the reac- The server, where the software resides, needs to be tion to the developed solution was: a Unix based OS. Currently the OS where the server • in order to easily perform modifications, it is re- is running is Ubuntu 10.04 LTS Desktop Edition, but quired a user modification manual, with the im- any other Unix OS that supports the software de- plementation details; scribed in the implementation section should also sup- port the developed software. • the users agreed that the usage of the RoR good For the user interaction, the solution was tested practices were very useful (e.g., using obvious under Firefox, Google Chrome, Chromium, Kon- names for the functions, using clear and intuitive queror, Epiphany and Opera (latest versions). All of names for the views and controllers, the organiza- these Web-Browsers support the developed software tion of the project, ...) for further development; with no need for extra add-ons. Regarding MS Inter- • users with small knowledge about programming net Explorer and Apple Safari, the latest versions also language considered that the used programming support the software. However, they require the in- language was quite easy to understand and with stallation of a WebM plug-in in order to display the the developed features it would be easy to add streamed content. Regarding the user interaction, any other features by simply editing the existent code device with Android OS 2.3 or later, should offer full (RoR, bash scripts and the XML description of the support. The user interface is represented in Fig. 2. Flumotion server). As an example, to add video a surveillance fea- [3] David Heinemeier Hansson. ”Ruby on Rails (RoR) ture the modifications would be: replicate the exis- API”, Jul. 2011. http://api.rubyonrails.org. tent manager XML code, edit the video acquisition [4] FFmpeg Team. ”FFMpeg Technical Report”, Jul. 2011. http://www.ffmpeg.org/ffmpeg-doc. source, and workers name and used ports; reuse the html. video streaming web-page, edit the streaming URL; [5] Flumotion Services, S.A. ”Flumotion”, Jul. 2011. and add a link to the new video surveillance feature http://www.flumotion.net/. page in the global menu. [6] Gerd Knorr. ”xawtv Manual Page”, Dez. 2010. http://man-wiki.net/index.php/1:xawtv. [7] Google. ”Google TV”, Dez. 2010. http://www. google.com/tv/. 6 CONCLUSIONS [8] Andrei Gorine. ”Programming guide manages neworked digital TV”. Technical report, EETimes, 02 2002. The proposed application comes with some base [9] GoTV Networks. ”GoTV”, Dez. 2010. http://www. features, such as: TV streaming, TV recording and gotvnetworks.com. Video-Call. Nevertheless, its modular structure was [10] GStreamer Team. ”GStreamer: Technical Documen- designed to easily support other features (e.g. video tation”, Dez. 2010. http://www.gstreamer.net/ surveillance services). The architecture is based in documentation. a client-server model. The server application lies [11] Hassoxm. ”Warden: a Rack-based middleware, de- signed to provide a mechanism for authentication in a Linux platform, where the signal is acquired, in Ruby web applications.”, Aug. 2011. https:// being possible to selected several sources (e.g., TV github.com/hassox/warden. card, web-cam, microphone, surveillance cameras, [12] J. Bankoski, P. Wilkins and Y. Xu. ”VP8 etc.) and it can be accessed remotely, using the In- Data Format and Decoding Guide”, Mar. 2011. http://tools.ietf.org/html/ ternet. Due to the incorporated access control and au- draft-bankoski-vp8-bitstream-01. thentication mechanisms this application can be used [13] Paul E. Jones. ”H.323 Protocol Overview”. Technical in a multi-user environment, with an easy and intu- report, Packetizer, 10 2007. itive user interface, allowing an experienced user to [14] Klaus Schmidinger. ”The Video Disk Recorder”, Dez. modifyany aspect he needs to edit, either by program- 2010. http://www.tvdr.de. ming or by editing the configurations or the provided [15] Linux TV Team. ”Linux TV”, Jul. 2011. http:// linuxtv.org features. . [16] Microsoft Corporation. ”Microsoft Mediaroom Some future work should be considered regard- Framework”, Dez. 2010. http://www.microsoft. ing the Video-Call functionality. Currently, the users com/mediaroom. have to setup the audio&video streaming using the [17] Microsoft Corporation. ”Microsoft Mediaroom Flumotion tool, and after creating the streaming they Framework”, Jul. 2011. http://www.microsoft. com/mediaroom have to share through other means (e.g., e-mail, in- . [18] Brian Murray. ”Managing TV with XMLTV”. Tech- stant message, ...) the URL address. This feature may nical report, O’Reilly - ONLamp.com, 08 2005. be overcome by incorporatinga chat service, allowing [19] MythTV Developers. ”MythTV”, Dez. 2010. the users to chat between them and provid the mean http://www.mythtv.org. to share the URL for the video-call. Another solu- [20] NDS. ”NDS MediaHighway Framework”, Dez. 2010. tion is to implement a video-call based on protocols http://www.nds.com/solutions/mediahighway. such as SIP signaling protocol, widely used for con- php. trolling communication sessions, such as voice and [21] Plataformatec. ”Devise: a flexible authentication so- lution for Rails”, Aug. 2011. https://github.com/ video calls over Internet Protocol (IP); or H.323 stan- plataformatec/devise. dard, which addresses call signaling and control, mul- [22] Quenotte. ”Kastor TV”, Dez. 2010. http://www. timedia transport and control, and bandwidth control kastortv.org. for point-to-point and multi-point conferences. [23] RFC3261. ”SIP: Session Initiation Protocol”, June 2002. http://tools.ietf.org/html/rfc3261. [24] Robert Eden. ”XMLTV a XML based file format for describing TV listings”, Aug. 2011. http://wiki. REFERENCES xmltv.org. [25] Robert Eden. ”XMLTV Project.”, Aug. [1] Paulo Rog´erio Pereira Andr´eClaro and Lu´ıs Miguel 2011. http://wiki.xmltv.org/index.php/ Campos. ”Framework for Personal TV”. Traffic Man- XMLTVProject. agement and Traffic Engineering for the Future Inter- [26] The WebM Project. ”Introducing WebM, net, (5464/2009):211–230, 2009. an open web media project”, Dez. 2010. [2] Bill Dirks, Michael H. Schimek, Hans Verkuil and http://blog.webmproject.org/2010/05/ Martin Rubli. ”v4l2 API Specification”, Dez. 2010. introducing-webm-open-web-media-project. http://v4l2spec.bytesex.org/spec. html.