• No results found

Bugs and other Problems

Our goal was to develop an efficient application for the Bambuser that is capable of streaming the media and monitoring the user’s resource. But there some limitations:

• When we start the stream, it works as expected in the beginning but after a while, the audio and video do not get synchronized with each other. It is because the video takes much of the resources so the audio is unable to keep with the video. This problem is solely based on the O.S that we used i.e. Red Hat Fedora 15 but the same thing works correctly on Ubuntu 9.10.

• Video camera should support V4L2 drivers, Otherwise the camera will not be com- patible with this streaming solution.

• The darkness in the surrounding environment will affect the streaming as the camera will use much of the hardware resources to improve the video quality.

• Original GStreamer version pre-installed with the O.S did not work for this application.

Chapter 7

Conclusion

The overall goal of the project was to build a system that can extend the functionality of Bambuser. Several sub goals were set to reach this goal. A summary of how these sub goals were fulfilled follows:

A requirement study focusing on user needs and the limitations of Bambuser.

• Prototypes were created and evaluated.

• The system was implemented as a web application.

• The web application was evaluated with user tests.

The system meets almost all the requirements. The requirements that could not accom- plish, have been moved to the Future work section below.

7.1

Limitations

The limitations which we faced during this project were that the GStreamer’s unstable re- lease worked for our application but it conflicted with the pre-installed version of the original GStreamer and overlaps with the version of Python bindings.

This solution seems to work fine on Debian based Linux distributions but when tested on other Linux distribution (for example Red Hat) it does not present the expected results, i.e. the synchronization between the audio and video lags. The possible reason behind this issue can be that the video is taking much of the system resources.

After doing some research on this issue, we found that the possibility of this issue might be due to variation of the Linux distribution or non-compatible device driver for the audio hardware.

7.2

Restrictions

We do not have the access to the main database of the Bambuser, where we can be able to access the login credentials of the users.

For the work around we have made the login code using PHP with cURL which accesses the Bambuser remotely. The code works correctly as needed. Recently Bambuser had made several changes on their server due to which our login code still works but sometimes it fails.

7.3

Related Work

Recently major TV channels such as CNN and NBC now broadcasting their TV programs but the targeted viewers are PC users. Some countries started to provide the Digital Mul- timedia Broadcasting service via satellite which is a major advancement in the streaming service [30].

Another example is of Amazon, which has recently announced a licensing agreement with different cable television providers [19]. It will make available the current TV shows and programs for Amazon’s users.

Axis Communications AB is another renowned Swedish international company are currently working in the area of network video solution using live video streaming technology for se- curity and monitoring purpose [23]. This security and monitoring solution can be based on a few or thousands of cameras.

StickAm is the pioneer of the live interactive web broadcasting, to the largest live commu- nity [25]. This project is quite relative to the Bambuser. In addition, StickAm also allows interactive video chatting that allows multiple users from different location, to interact with each other. It also has the group gaming feature which allows users to play games (e.g. poker, shuffle, chess etc.) in a group and interact with each other at the same time. BlogTv is a leading live, interactive broadcasting platform that enables anyone with an internet connection and a camera to connect to their audience in an evocative, direct way [26]. blogTV uses a one to many model, which means that the user can broadcast to an audience of unlimited size. Users have created their channels which categorized according to video genre and language. It also shows the scheduled upcoming streams.

Currently the Bambuser is just focusing on Live streaming i.e. the user’s records their videos which then can be played on the Bambuser site later on. By studying and comparing other broadcasting sites, we think that the features like video chatting, gaming etc. will add value to the Bambuser. And more users will use their services as they will get all the features at the same platform. We personally would like to have channels feature in the Bambuser, so we can create the channel and stream the videos which are viewable by all other users.

7.4

Future Work

Several interesting features could be implemented in the future.

• Currently the solution works for a single camera but this can be extended to a web cam studio [7].

• It is also noted that for streaming from multiple video sources the current solution did not work very well as the quality was not good, but by using the theora format for the video works fine with it [38].

• One future work could be to make GStreamer compatible with different Linux distri- butions.

• A customization that some users might appreciate is the ability to select which tasks that should visible on a user basis.

7.4. Future Work 37

• Currently the Apache web server is used for the this application, but suEXEC can be used in future if the web server might be used for other purpose [1].

Chapter 8

Acknowledgements

We would like to thank our internal supervisor Jan Erik Mostr¨om for his support and help with the report and the process for the project. We would also like to thank external supervisor Mathias Gyllengahm at Data Ductus AB for his help and support with the project. Also the other faculty members in the University (Thomas Frosmann, Frank Drewes and some others) who help and guide us. Big thanks also go out to our family members for supporting and helping us morally.

References

[1] Apache suexec support. http://httpd.apache.org/docs/1.3/suexec.html.

[2] Gstreamer 0.10 core reference manual. http://gstreamer.freedesktop.org/data/ doc/gstreamer/head/gstreamer/html.

[3] Gstreamer entrans. http://gentrans.sourceforge.net.

[4] Gstreamer: open source multimedia framework. http://gstreamer.freedesktop. org.

[5] Linux sound systems. http://en.opensuse.org/SDB:Sound_concepts.

[6] Streaming media. http://help.adobe.com/en_US/flashmediaserver/ techoverview/WS07865d390fac8e1f-4c43d6e71321ec235dd-7fff.html.

[7] Webcam studio for gnu/linux. http://www.ws4gl.org.

[8] Producing participatory media, 2006. http://itp.nyu.edu/_sve204/ppm_summer06/ class4.html.

[9] Unicast and multicast streaming, 2009. http://www.thehdstandard.com/ hd-streaming/unicast-and-multicast-streaming.

[10] What is v4l or dvb?, 2010.http://www.linuxtv.org/wiki/index.php/What_is_V4L_ or_DVB%3F.

[11] What is video streaming, 2010. http://www.sparksupport.com/blog/ video-streaming.

[12] Gstreamer from git, 2011. https://wiki.pitivi.org/wiki/GStreamer_from_Git. [13] Http versus rtmp: Which way to go and why, 2011. http://www.cisco.com/en/US/

prod/collateral/video/ps11488/ps11791/ps11802/white_paper_c11-675935. pdf.

[14] Introduction to ffmpeg, 2011. http://www.thewebhostinghero.com/articles/ introduction-to-ffmpeg.html.

[15] Open sound system, 2011.http://www.opensound.com/wiki/index.php/Main_Page. [16] Overview of available plug-ins, 2011. http://gstreamer.freedesktop.org/

documentation/plugins.html.

[17] Python bindings, 2011. http://wiki.videolan.org/Python_bindings. 41

[18] Video delivery: Rtmp streaming, 2011. http://www.longtailvideo.com/support/ jw-player/jw-player-for-flash-v5/12535/video-delivery-rtmp-streaming/. [19] Amazon streaming adds staples from mtv, comedy central and nickelodeon, 2012.http:

//www.wired.com/epicenter/2012/02/amazon-prime-viacom.

[20] Documentation - videolan wiki, 2012. http://wiki.videolan.org/Documentation: Documentation.

[21] Ffmpeg documentation, 2012. http://ffmpeg.org/ffmpeg.html.

[22] Gstreamer 0.10 core reference manual, 2012. http://gstreamer.freedesktop. org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstParse.html_ gst-parse-launch.

[23] Axis Communications AB. Product guide, network video solutions, 2011.http://www. axis.com/files/brochure/pg_video_45078_en_1111_lo.pdf.

[24] Bambuser. Bambuser official website for live video broadcasting, 2007. http://www. bambuser.com.

[25] Bambuser. Live stream video chat — stickam, 2012. http://www.stickam.com. [26] blogTV. blogtv - stream live for free — live broadcasts, live chat, live tv, 2012. http:

//www.blogtv.com.

[27] Iomega Corporation. Understanding media streaming. Technical report, Iomega an EMC Company, 3721 Valley Centre Drive, Suite 200, San Diego, CA 92130, USA, 2009.

http://download.iomega.com/resources/whitepapers/media-streaming.pdf. [28] Adobe Systems Incorporated Adobe Flash Media Server 4.5 Datasheet. Adobe®flash®

media server 4.5, 2011. http://www.adobe.com/products/flashmediaserver/pdfs/ fms45_ds_ue_v1.pdf.

[29] Takashi Iwai Frank van de Pol Jaroslav Kysela, Abramo Bagnara. ALSA library API reference. http://www.alsa-project.org/alsa-doc/alsa-lib.

[30] Seunghoon Jeong. Customized and manageable streaming service using a le-converting server. Master’s thesis, University of California, San Diego, November 2006. http: //cseweb.ucsd.edu/classes/fa06/cse237a/finalproj/sjeong.pdf.

[31] Marcelo Lira. Introducing the gstreamer, 2008. http://www.cin.ufpe.br/~cinlug/

wiki/index.php/Introducing_GStreamer.

[32] Hans Verkuil Martin Rubli Michael H Schimek, Bill Dirks. Video for Linux Two API Specication Revision 0.24, 2008. http://v4l2spec.bytesex.org/v4l2spec/v4l2. pdf.

[33] Chris O’Kennon. Content delivery networks, 2010. http://www.faulkner.com/ freereport/content.htm.

[34] Jens persson. Python gstreamer tutorial, 2009. http://pygstdocs.berlios.de/ pygst-tutorial/index.html.

REFERENCES 43

[36] Martin Rubil. Building a webcam infrastructure for gnu/linux. Master’s thesis, Swiss Federal Institute of Technology, Lausanne, Switzerland, 2006. http://rubli.info/ academia/projects/thesis/linux_webcam.pdf.

[37] Ninad Sathaye. Learn how to develop multimedia applications using Python with this practical step-by-step guide. Packt Publishing Ltd., 32 Lincoln Road, Olton, Birming- ham, B27 6PA, UK, 2010.

[38] Theora.org. Theora.org documentation - theora, video for everyone, 2011. http:// www.theora.org/doc/.

[39] Andy Wingo Ronald S. Bultje Stefan Kost Wim Taymans, Steve Baker.GStreamer Ap- plication Development Manual 0.10.36. http://gstreamer.freedesktop.org/data/ doc/gstreamer/head/manual/manual.pdf.

Related documents