Describe how to setup Darwin/VideoLAN/LIVE555/FFmpeg streaming media server.
The test target is MID(Mobile Internet Device) with Android Donut 1.6.
Also, it provide a method to add hints used in SDP for MP4 and 3GP media files.
How Machine Learning Helps Organizations to Work More Efficiently?Tuan Yang
Data is increasing day by day and so is the cost of data storage and handling. However, by understanding the concepts of machine learning one can easily handle the excessive data and can process it in an affordable manner.
The process includes making models by using several kinds of algorithms. If the model is created precisely for certain task, then the organizations have a very wide chance of making use of profitable opportunities and avoiding the risks lurking behind the scenes.
Learn more about:
» Understanding Machine Learning Objectives.
» Data dimensions in Machine Learning.
» Fundamentals of Algorithms and Mapping from Input/Output.
» Parametric and Non-parametric Machine Learning Algorithms.
» Supervised, Unsupervised and Semi-Supervised Learning.
» Estimating Over-fitting and Under-fitting.
» Use Cases.
How Machine Learning Helps Organizations to Work More Efficiently?Tuan Yang
Data is increasing day by day and so is the cost of data storage and handling. However, by understanding the concepts of machine learning one can easily handle the excessive data and can process it in an affordable manner.
The process includes making models by using several kinds of algorithms. If the model is created precisely for certain task, then the organizations have a very wide chance of making use of profitable opportunities and avoiding the risks lurking behind the scenes.
Learn more about:
» Understanding Machine Learning Objectives.
» Data dimensions in Machine Learning.
» Fundamentals of Algorithms and Mapping from Input/Output.
» Parametric and Non-parametric Machine Learning Algorithms.
» Supervised, Unsupervised and Semi-Supervised Learning.
» Estimating Over-fitting and Under-fitting.
» Use Cases.
Webinar - High Availability and Distributed Monitoring with Icinga2OlinData
We will explore all the possible scenarios on how to scale Icinga setup for high availability and distributed monitoring. This involves creation of zones or clusters to provide us with a more powerful yet dynamic monitoring infrastructure.
Best Interactive guide on Top 10 Mobile App Development Frameworksvarshasolanki7
If you are running on limited resources and time, there are some great frameworks available that can help you build cross-platform apps using a single codebase.
In this Presentation, we have discussed the top 10 mobile app development frameworks, including the introduction of the framework, top features of it and its app examples.
Read more:http://bit.ly/top-mobile-app-framework
Among the technological tribe, the most popular terms associated with mobile phones are Android and iOS. While the former allows transparency and easy accessibility, the latter has carved a mass for itself, even though it allows strict connectivity. But when it comes to Apple, the loyal customers forget all of its cones and just stick on to the beauty, elegance and the magical iOS that runs like a pure charm.
It was on June 29, 2007, Steve Jobs, the then chairman and co-founder of Apple.Inc launched iPhone with iOS 1. Since then, the operating system has undergone some major upgrades, which was a result of continuous hard work and passion towards achieving beyond the expectations of the consumer. Here, we are glad to give you a brief sneak peek into the history of world’s favourite operating system.
Webinar - High Availability and Distributed Monitoring with Icinga2OlinData
We will explore all the possible scenarios on how to scale Icinga setup for high availability and distributed monitoring. This involves creation of zones or clusters to provide us with a more powerful yet dynamic monitoring infrastructure.
Best Interactive guide on Top 10 Mobile App Development Frameworksvarshasolanki7
If you are running on limited resources and time, there are some great frameworks available that can help you build cross-platform apps using a single codebase.
In this Presentation, we have discussed the top 10 mobile app development frameworks, including the introduction of the framework, top features of it and its app examples.
Read more:http://bit.ly/top-mobile-app-framework
Among the technological tribe, the most popular terms associated with mobile phones are Android and iOS. While the former allows transparency and easy accessibility, the latter has carved a mass for itself, even though it allows strict connectivity. But when it comes to Apple, the loyal customers forget all of its cones and just stick on to the beauty, elegance and the magical iOS that runs like a pure charm.
It was on June 29, 2007, Steve Jobs, the then chairman and co-founder of Apple.Inc launched iPhone with iOS 1. Since then, the operating system has undergone some major upgrades, which was a result of continuous hard work and passion towards achieving beyond the expectations of the consumer. Here, we are glad to give you a brief sneak peek into the history of world’s favourite operating system.
Webinar NETGEAR - Prosafe Smart Switch, caratteristiche e funzionalitàNetgear Italia
Supporto PoE e PoE+ disponibile per tutte le configurazioni
VLAN Auto Voice per una distribuzione rapida e affidabile di VoIP
VLAN Auto Video per una distribuzione rapida dei sistemi di sorveglianza basati su IP
Routing statico per gestire al meglio il traffico interno, ottimizzando l'utilizzo delle risorse di rete
Snooping IGMP e MLD per fornire un filtro multicast avanzato
Progressing beyond the Desktop at Universities with Adobe AIRJoseph Labrecque
Join Joseph Labrecque from the University of Denver as he demonstrates the various features of Adobe AIR 2 and AIR for Android and how they can be used in a university setting. Learn how the university is leveraging AIR to expand and supplement a host of university projects and applications. Labrecque will preview new AIR projects he is working on and share his experiences with the AIR for Android prerelease for building mobile applications on campus.
Accelerate Service Function Chaining Vertical Solution with DPDKOPNFV
Service Function Chaining (SFC) is one of top 5 NFV use case. Supporting SFC in provider and enterprise networks requires performance assurance. Specifically, the Classifier and the Service Function Forwarder which are typically implemented in software such as virtual switches need to match line rate requirement. DPDK (Data Plane Development Kit) is an open source project comprising a set of libraries and drivers for fast packet processing. In this presentation, we will discuss our experiences accelerating SFC with DPDK. In addition, Telco and Datacenter carriers demands dynamic SFC that requires new SFC wire protocols (e.g. VxLAN-GPE and NSH) support in both data and control planes. We intend to share our experiences and future works of a high performance, NSH-aware SFC vertical solution with open-source ingredients: Openstack, Opendaylight, OpenvSwitch with DPDK acceleration.
SIP Express Media Server SBC application as powerful SBC and SIP toolboxstefansayer
The SIP Express Media Server, originally a media server to complement SIP based VoIP networks with services such as voicemail, conferencing and IVR services, with the introduction of a B2BUA and especially the SBC module can be useful as call stateful control element in the operator core, for specific applications, or as a full Session Border Controller. In upcoming SEMS 1.6, again a whole lot of useful functionality has been and will be added, among them registration handling, tcp stack and more NAT traversal options, transcoding, multiple interfaces, bandwidth limiting etc. Further, a new extended call control interface which even can be scripted with the super simple DSM state charts language not only supports more complex, PBX type call flows, but also makes SEMS a toolbox useful for most situation where a call stateful element is needed.
There is a pressing need to distribute accurate timing, i.e., frequency and/or Time of Day (ToD), across Packet Switched Networks (PSNs) for applications such as cellular backhaul. This paper reviews the main issues involved in timing over packet (ToP) demarcation and provides best practices for ToP demarcation and performance monitoring.
These are some of my notes of my beginning, while learning Redis and Mongodb for a pet project. I made them for a tech talk at Maresme Developers Meetup #maresmedev.
Please email email me for notifying mistakes or suggestions.
RTSP Protocol Analysis Of A Streaming Thorugh IPv6 NetworkFranZEast
IPV6-RTSP Analysis of a Streaming
Analysis and explanation of session protocol RTSP streaming over IPv6,where I have configured RTSP streaming server on Linux server OS using Streaming Media Server - Helix, a product from RealNetworks :
1. Stream control: RTSP
2. Stream Sescription: SDP
3. RTSP Vulnerabilities
[VIDEO] : https://www.youtube.com/watch?v=nvqFaWhkBf4
The manual of the GTK+ 2.0 application - Desktop App Chooser which let the user to browse all installed X desktop applications and retrieve the Desktop Entry content of each application.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Essentials of Automations: Optimizing FME Workflows with Parameters
Streaming Media Server Setup Manual
1. Streaming Media Server
Setup Manual
VideoLan / LIVE555 / DSS (Darwin)
FFServer (FFmpeg) / Flumotion
V.3
William.L
wiliwe@gmail.com
2009-09-25
2. Index
Revision History................................................................................................................................................. 4
Testing Environment.......................................................................................................................................... 5
How To Setup Streaming Media Testing/Verifying Environment Successfully?.......................................... 6
Streaming Servers .............................................................................................................................................. 7
1. VideoLan Client ..................................................................................................................................... 7
1.1. Supported Container Format for encoding.............................................................................. 7
1.2. Supported Network Protocol ..................................................................................................... 8
1.3. Setup VLC as Streaming Server................................................................................................ 8
1.4. Client Computer Setup............................................................................................................. 10
1.5. Android VLC Remote............................................................................................................... 12
2. LIVE555 Media Server........................................................................................................................ 18
2.1. Supported Container Format for Encoding........................................................................... 18
2.2. Supported Network Protocol ................................................................................................... 18
2.3. Setup........................................................................................................................................... 18
3. DSS - Darwin Streaming Server ......................................................................................................... 20
3.1. Supported Container Format for Encoding........................................................................... 20
3.2. Supported Network Protocol ................................................................................................... 20
3.3. Setup........................................................................................................................................... 20
3.4 Invoking DSS.............................................................................................................................. 29
3.5 Important files and directories of the DSS .............................................................................. 30
4. FFServer - FFmpeg Streaming server................................................................................................ 31
4.1 FFmpeg Configuration File....................................................................................................... 31
4.2. Supported Container Format for Encoding........................................................................... 31
4.3. Supported Network Protocol ................................................................................................... 31
4.4. Setup........................................................................................................................................... 32
5. Flumotion Streaming Server............................................................................................................... 36
5.1. Supported Container Format for Encoding........................................................................... 36
5.2. Supported Network Protocol ................................................................................................... 36
5.3. Setup........................................................................................................................................... 36
Real-Time Streaming Protocol (RTSP).......................................................................................................... 46
HTTP Streaming .............................................................................................................................................. 47
To Create HTTP Streaming Video.......................................................................................................... 47
Limitations of HTTP streaming.............................................................................................................. 47
Comparison between Streaming and Progressive Downloading Media ..................................................... 48
Streamable Media File..................................................................................................................................... 49
1. MP4 ....................................................................................................................................................... 49
1.1. What is MP4? ............................................................................................................................ 49
1.2. MP4 file extensions ................................................................................................................... 50
2. How To Add Hint Track into MP4 & 3GP Files?.............................................................................. 50
2.1 MP4 Files .................................................................................................................................... 50
2.2 3GP Files ..................................................................................................................................... 50
3. RTP Payload Type for Streaming Media ....................................................................................................... 52
SHOUTcast – A Streaming Audio Tech.......................................................................................................... 53
For Android .............................................................................................................................................. 53
References......................................................................................................................................................... 55
01. Video Lan............................................................................................................................................. 55
02. LIVE555 Media Server........................................................................................................................ 55
03. Darwin Streaming Server..................................................................................................................... 55
04. FFServer - FFMpeg Streaming Server................................................................................................. 55
05. Flumotion............................................................................................................................................. 55
06. To Add Ubuntu Universe and Multiverse Repository.......................................................................... 55
07. Stream Server Passing through NAT/Firewall..................................................................................... 55
08. Real-Time Streaming Protocol (RTSP)................................................................................................ 56
09. Session Description Protocol (SDP).................................................................................................... 56
10. Streamable Media Files........................................................................................................................ 56
11. MP4IP .................................................................................................................................................. 56
12. MP4Box............................................................................................................................................... 56
13. SHOUTcast .......................................................................................................................................... 56
4. Revision History
Version
Number
Revision Date Comments
v.1 2009-09-25 Initialize this document.
v.2 2009-10-12 Add topics :
1. Introduction to Real Time Stream Protocol
2. HTTP Streaming
v.3 2009-10-29 Add topics :
1. How To Setup Streaming Media Testing/Verifying Environment
Successfully?
2. Streamable Media Files.
3. RTP Payload Type for Streaming Media.
6. How To Setup Streaming Media Testing/Verifying
Environment Successfully?
1. Use MediaInfo (http://mediaarea.net/MediaInfo) to identify what audio/video codec used by (contained in)
the media file going to be streamed.
2. Choose the correct streaming server supporting the file format and audio/video codec of that media file.
3. Confirm that media file is streamable (e.g. if it has Hint Track information) if you want to use RTSP/RTP
way to transfer streaming media.
4. Use the right media player with the capability(Audio/Video codec) to play streaming media.
5. Consider that network environment that if there has one or more NATs/firewalls between streaming server
and media player. If it does, try to use HTTP streaming way using port 80.
7. Streaming Servers
The followings are found open streaming servers.
1. VideoLan Client
VLC media player which can be used as a server and as a client to stream and receive network streams. VLC
is able to stream all that it can read.
VLS (VideoLAN Server), which can stream MPEG-1, MPEG-2 and MPEG-4 files, DVDs, digital satellite
channels, digital terrestial television channels and live videos on the network in unicast or multicast.
Most of the VLS functionality can now be found VLC.
Usage of VLC instead of VLS is advised. Here, we use VLC with streaming functionality as streaming server.
1.1. Supported Container Format for encoding
Ogg with MPEG-1/ MPEG-2
ASF with MPGE-4 video
MOV with MPGE-4 video
MP4 with H.264/MPEG-4 AVC
8. 1.2. Supported Network Protocol
HTTP
MMS
RTP/UDP
MMSH
1.3. Setup VLC as Streaming Server
Step-01 : Install the following packages through APT tool on server and client computer.
1. VLC
2. VLC-plugin-esd
3. VLC plugin for Mozilla
Open Synaptic (System -> Administration -> Synaptic Package Manager).
In 「Settings -> Repositories」, make sure you have a「multiverse」repository activated.
Command line :
#> sudo apt-get update
#> sudo apt-get install vlc vlc-plugin-esd mozilla-plugin-vlc
Step-02 : Click 「檔案檔案檔案檔案 -> 開啟檔案開啟檔案開啟檔案開啟檔案」
Show off the “開啟檔案開啟檔案開啟檔案開啟檔案…” dialog :
Step-03 : In「開啟開啟開啟開啟:」item, to select the video or audio files you wish to playback.
9. Step-4 : Check「快取快取快取快取」
Check「串流串流串流串流/儲存儲存儲存儲存」
Click 「設定設定設定設定」button.
Step-5 : Check「Play Locally」so that you can see and hear the output.
Check「RTP」to play over a LAN.
Fill in Host IP address in「位置位置位置位置」field of RTP item.
10. Step-06 : Click「確定確定確定確定」
1.4. Client Computer Setup
Step-01 : Invoke VLC.
Click「媒體媒體媒體媒體 -> 開啟網路串流開啟網路串流開啟網路串流開啟網路串流.」
Step-02 : Select「RTP」from the “Protocol” column.
You can leave the address section blank.
12. 1.5. Android VLC Remote
This application works as a「Remote Control」to control VLC.
Step-01 : Download android-vlc-remote-0.2.2.apk from
http://android-vlc-remote.googlecode.com/files/android-vlc-remote-0.2.2.apk
Step-02 : Install android-vlc-remote-0.2.2.apk using ADB.
Step-03 : In the device installed Android, executing Android-VLC-Remote application.
It appears as the following :
To maximize the VLC
display window
To view played
media file list.
To browse the
filesystem on VLC
13. The list showing media files had been played.
It can browse server’s filesystem.
Click mouse left button to show “Setting” interface to set the VLC server’s IP address and port (The default
port number is 8080) :
14.
15. Step-04 : In VLC player, click 「設定設定設定設定->偏好偏好偏好偏好設定設定設定設定」to open 「偏好偏好偏好偏好設定設定設定設定」dialog :
Click the「界面界面界面界面」item
Check the lower-right’s「進階選項進階選項進階選項進階選項」
16. Fill your「Host address」where the VLC server installed.
Step-05 : In VLC player, click「設定設定設定設定->新增界面新增界面新增界面新增界面->Web Interface」
Now, Android-VLC-Remote can connect to VLC player.
The following is the snapshot of packet capture of communication between Android-VLC-Remote and
17. VLC player.
The Host containg VLC player is “192.168.0.132” and the Android device is “192.168.0.175” :
Android-VLC-Control send HTTP-Requests for “playlist.xml” and “status.xml” per second.
[Tips]
1. You can stream using this method over the Internet relying on the HTTP protocol instead of RTP. Make sure
both the client and host have the appropriate ports open on their firewalls.
2. To stream effectively, the client must have all the audio and video codecs present on the host. If they do not,
VLC can use transcode to convert the file into something the client can play.
3. UDP streaming methods require MPEG TS encapsulation. The HTTP streaming method
can be used with the MPEG PS, MPEG TS, MPEG 1, OGG, RAW or ASF encapsulation.
18. 2. LIVE555 Media Server
「LIVE555 Media Server」is a complete RTSP server application.
2.1. Supported Container Format for Encoding
AAC
AMR
MP3
MPG
WAV
2.2. Supported Network Protocol
RTSP ( default port : 8554 )
2.3. Setup
Step-01 : To install the following packages through the APT tool :
1. liblivemedia-dev
2. livemedia-utils
19.
20. 3. DSS - Darwin Streaming Server
Darwin Streaming Server is an open source project intended for developers who need to stream QuickTime
and MPEG-4 media on alternative platforms such as Windows, Linux, and Solaris
Darwin Streaming Server is only supported by the open source community and is not eligible for technical
support from Apple.
Darwin Streaming Server is available as a free download under the Apple Public Source License
(http://www.opensource.apple.com/apsl/).
3.1. Supported Container Format for Encoding
QuickTime
MPEG-1
MPEG-2
MP4
3.2. Supported Network Protocol
HTTP ( default port : 80 )
RTSP ( default port : 554 )
RTP
RTCP
3.3. Setup
Run below commands in your terminal:
Step-01 : sudo apt-get update && sudo apt-get upgrade
Step-02 : sudo apt-get install build-essential
Step-03 : sudo addgroup --system qtss
Step-04 : sudo adduser --system --no-create-home --ingroup qtss qtss
Step-05 : Download the latest version at
http://static.lstoll.net/dss/DarwinStreamingSrvr6.0.3-Linux.deb.gz
, and put the download DarwinStreamingSrvr6.0.3-Linux.deb.gz into a directory you like.
Step-06 : tar -zxvf DarwinStreamingSrvr6.0.3-Linux.deb.gz
Step-07 : sudo dpkg -i DarwinStreamingSrvr6.0.3-Linux.deb
22. The above two console snapshots show the prograss of Darwin installation.
Step-08 : If you see Setup Complete! message, you are good to go.
Logon to
http://ServerName:1220/
using your browser. Username and password is “admin” and “admin”, respectively as the
following figure.
Step-09 : First logging, the user will be requested to set some configuration as the following figures.
<I> Specify a MP3 Broadcast password..
23. <II> This will enable encryption between the administration server and the web client.
24. <III> Specify the location of your media folder. By default this is /usr/local/movies/”.
25. <IV> To allow streaming on port 80 (the same as Apache), then check the box.
Click on "Finish" to end the configuration.
26. Once you have finished configuring your streaming server, you will see the following page, which is a
snapshot of your streaming server, and the administrative control panel of your streaming server :
27. In main page, you could change configures.
(1). The「General Settings」page. It can let user to change “Media Directory” or change administrator’s
password.
28. (2). To enable the port for passing through firewall/NAT.
29. The following figure shows pre-installed testing video files under the Media Directory:
3.4 Invoking DSS
In console, to execute this command :
sudo /usr/local/sbin/DarwinStreamingServer
30. To check if DSS is invoked, executing following commands :
netstat -ntulp | grep 554
and
ps -aux | grep Darwin
3.5 Important files and directories of the DSS
/usr/local/sbin/Darwin Streaming Server Server Software
/usr/local/sbin/streamingadminserver.pl Web Frontend
/etc/streaming Configuration Dir
/etc/streaming/streamingserver.xml Configuration File Server
/var/streaming/logs Logs
/usr/local/movies Default directory for video files
Then, the file /etc/streaming/streamingserver.xml must be given write privledges, otherwise no
configuration can be saved :
#> sudo chmod 755 /etc/streaming/streamingserver.xml
31. 4. FFServer - FFmpeg Streaming server
The FFmpeg project is made of several components:
ffmpeg A command line tool to convert one video file format to another. It also supports grabbing and
encoding in real time from a TV card.
ffserver An HTTP (RTSP is being developed) multimedia streaming server for live broadcasts. Time
shifting of live broadcast is also supported.
ffplay A simple media player based on SDL and on the FFmpeg libraries.
libavcodec A library containing all the FFmpeg audio/video encoders and decoders. Most codecs were
developed from scratch to ensure best performance and high code reusability.
libavformat A library containing demuxers and muxers for audio/video container formats.
libavutil A helper library containing routines common to different parts of FFmpeg.
libpostproc A library containing video postprocessing routines.
libswscale A library containing video image scaling routines.
FFserver receives prerecorded files or FFM streams from some ffmpeg instance as input, then streams them
over HTTP/RTSP/RTP.
An ffserver instance will listen on some port as specified in the configuration file. You can launch one or more
instances of ffmpeg (FFmpeg video converter) and send one or more FFM streams to the port where ffserver
is expecting to receive them. Alternately, you can make ffserver launch such ffmpeg instances at startup.
4.1 FFmpeg Configuration File
Input streams are called feeds, and each one is specified by a <Feed> section in the configuration file.
For each feed you can have different output streams in various formats, each one specified by a <Stream>
section in the configuration file.
4.2. Supported Container Format for Encoding
AVI
ASF
FLV
SWF(Macromedia Shockwave Flash)
Matroska
MPEG-TS
4.3. Supported Network Protocol
HTTP (default port : 8090)
RTSP (default port : 5454)
32. UDP
RTP
4.4. Setup
Step-01: Install “ffmpeg” package using APT.
After installing “ffmpeg” package, you can use “ffserver” and “ffmpeg” commands under console.
Step-02 : Furthermore, to finish streaming configuration.
<I> HTTP Streaming
The following is an example of setting HTTP streaming :
33. [Feed Section]
[Stream Section]
After writing Ffserver configuration file, execute the commands :
#> ffserver -f /DirectoryContainingConfigurationFile/ffserver.conf &
#> ffmpeg -i /home/william/QAD-media-files/test.mpg http://localhost:8090/feed1.ffm
<Feed feed1.ffm>
# You can specify the maximum size of the feed,
# where zero means unlimited. Default:
FileMaxSize 200K
# Only allow connections from localhost to the feed.
ACL allow 127.0.0.1
</Feed>
<Stream test1.mpg>
# coming from live feed 'feed1'
Feed feed1.ffm
# Format of the stream
Format mpeg
# Bitrate for the audio stream. Codecs usually support only a few
# different bitrates.
AudioBitRate 32
# Number of audio channels: 1 = mono, 2 = stereo
AudioChannels 1
# Sampling frequency for audio. When using low bitrates, you should
# lower this frequency to 22050 or 11025. The supported frequencies
# depend on the selected audio codec.
AudioSampleRate 44100
# Bitrate for the video stream
VideoBitRate 64
# Ratecontrol buffer size
VideoBufferSize 40
# Number of frames per second
VideoFrameRate 3
# Size of the video frame
VideoSize 160x128
</Stream>
34. <II> RTSP Streaming
The following is an example of setting RTSP streaming :
Step-03 : Client setup for
[HTTP]
http://FFserverIP:8090/test1.mpg
[RTSP]
rtsp:// FFserverIP:5454/test1-rtsp.mpg
The filename in URL is the one specified in <stream> tag.
Step-04 : FFserver supports an HTTP interface which exposes the current status of the server. Simply
point your browser to the address of the special status stream specified in the configuration file.
For example if you have :
then the server will post a page with the status information when the special stream status.html is requested
as the following figure :
# RTSP examples
# You can access this stream with the RTSP URL:
# rtsp://localhost:5454/test1-rtsp.mpg
# A non-standard RTSP redirector is also created. Its URL is:
# http://localhost:8090/test1-rtsp.rtsp
#RTSPPort 5454
<Stream test1-rtsp.mpg>
Format rtp
File "/home/william/QAD-media-files/test1.mpg"
</Stream>
<Stream status.html>
Format status
# Only allow local people to get the status
ACL allow localhost
ACL allow 192.168.0.0 192.168.255.255
</Stream>
35. Tips
1. When you connect to a live stream, most players (WMP, RA, etc) want to buffer a certain number of
seconds of material so that they can display the signal continuously. However, ffserver (by default) starts
sending data in realtime.
This means that there is a pause of a few seconds while the buffering is being done by the player. The good
news is that this can be cured by adding a '?buffer=5' to the end of the URL. This means that the stream
should start 5 seconds in the past --and so the first 5 seconds of the stream are sent as fast as the network
will allow. It will then slow down to real time. This noticeably improves the startup experience.
You can also add a 'Preroll 15' statement into the ffserver.conf that will add the 15 second prebuffering
on all requests that do not otherwise specify a time. In addition, ffserver will skip frames until a key_frame
is found. This further reduces the startup delay by not transferring data that will be discarded.
2. You may want to adjust the MaxBandwidth in the ffserver.conf to limit the amount of bandwidth
consumed by live streams.
The streams specified in
configuration file using <>
36. 5. Flumotion Streaming Server
Flumotion is a streaming server product developed by Fluendo, and is written in Python and based on the
multimedia framework Gstreamer and Twisted.
Flumotion hastwo forms of streaming content: Live streaming and On-Demand streaming. For instance, a
radio station might want to broadcast their audio live over the Internet, simultaneously as it is broadcast via
FM radio. However, that same radio station might like to provide ondemand access to the archive of their
recorded content.
It can from Ogg / Vorbis / Theora files.
5.1. Supported Container Format for Encoding
ASF
QuickTime
Ogg
OGM
Matroska
MP4
5.2. Supported Network Protocol
HTTP
5.3. Setup
When it is going to Flumotion as a multiformat streaming server, it will need at least「gst-plugins-base
0.10.25」,「gst-plugins-good 0.10.17」and「gst-plugins-bad 0.10.14」, some of which are yet due to be
released.
Step-01 : For Ubuntu Hardy, to add the following line into APT source list file,「/etc/apt/sources.list」:
deb http://www.flumotion.net/pkg/ubuntu hardy main
Step-02 : To install flumotion, type the following commands :
apt-get update && apt-get install flumotion
Step-03 : Install Flumotion using APT
37. Step-04 : Add yourself to the flumotion group:
sudo adduser <Username> flumotion
Step-05 : Make the /etc/flumotion directory readable:
sudo chmod a+x /etc/flumotion
Step-06 : In the configuration file, add the following tag for streaming files.
When it progress installation, it may show the window to ask the user input some data to create a
certificate for SSL.
<component name="loop-producer-high" type="loop-producer" worker="demo1-looper">
<property name="framerate">25/2</property>
<property name="height">284</property>
<property name="width">352</property>
<property name="location">/srv/flumotion/moto.ogg</property>
</component>
38.
39.
40.
41. Step-06 : To start Flumotion, choose the
「Application -> Sound & Video -> Flumotion Streaming Server Administration」
menu item on your panel. :
Starting the Configuration Assistant
42. Start to connect to Flumotion Manager
Starting a new Manager and Worker
43. The Configuration Assistant's Production Page, Showing Test Inputs
We don't need to change anything on the remaining pages, so you can now continue to click
Forward until you reach the last page.
You will pass pages for Test Video Producer settings, Overlay settings, Test Audio Producer settings,
Encoding settings, Theora Encoder settings, Vorbis Encoder settings, Consumption settings (streaming
or saving to disk), HTTP Streaming settings, HTTP Streaming (Audio & Video) settings, Content
License settings, and then the Summary page.
45. Connected Users Status
[Tips]
1. For streaming files, not all file formats can be streamed on demand, because they require client players to
download the entire file to obtain enough information for the client to start playing. For instance, files
using the AVI container (usually with an .avi extension) cannot be streamed on demand.
46. Real-Time Streaming Protocol (RTSP)
The Real-Time Streaming Protocol (RTSP) is an application-level protocol, and establishes and controls either
a single or several time-synchronized streams of continuous media such as audio and video.
RTSP does not typically deliver the continuous streams itself; the delivery mechanisms are based solely on
RTP.
No file will be saved in the disk of end user. The streamed media will be played back on the fly when it
reach the remote end through network.
The idea in RTSP is that it acts as a "network remote control" for multimedia servers.
RTSP URL is in form「rtsp://media.example.com:554/twister/audiotrack」, where
* rtsp:// is the identifier for TCP rtsp scheme (rtspu:// is used for UDP scheme)
* 554 is the assumed port(default port) for Real-Time Streaming Protocol
* twister is the name of the presentation
* audiotrack is the name of certain stream in the presentation (this is optional)
RTSP supports below features :
RTP packets can stream over UDP or over TCP. If the client can tolerate packet loss, streaming over UDP
can be more efficient than TCP because UDP does not incur the overhead of retransmitting lost packets.
The encapsulation of Advanced Streaming Format (ASF) packets in RTP is proprietary.
Streaming with RTSP fails if a firewall separates the client and server, and the firewall blocks the ports
and protocols that RTSP uses. This problem is especially common with home Internet gateways. Even if
the gateway has a built-in RTSP NAT, streaming might fail at times.
RTSP has the overhead of requiring multiple requests before playback can begin. However, the client
can pipeline many of these requests and send them over a single TCP connection, in which case WMP
does not need to block waiting for a response.
The biggest issue with RTSP is that the protocol or its necessary ports may be blocked by routers or firewall
settings, preventing a device from accessing the stream. As the standard protocol for the Web, though, HTTP
is generally accessible.
47. HTTP Streaming
This is the simplest and cheapest way to stream video from a website. This way is also called Serverless
Streaming or Pseudo Streaming.
When a media file is playing, it is progressively downloading media file via HTTP.
To Create HTTP Streaming Video
1. Create a video file in a common streaming media format.
2. Upload the file to your web server.
3. Make a simple hyperlink to the video file, or use special HTML tags to embed the video in a web page.
Limitations of HTTP streaming
1. HTTP streaming is a good option for websites with modest traffic, i.e. less than about a dozen people
viewing at the same time. For heavier traffic a more serious streaming solution should be considered.
2. You can't stream live video, since the HTTP method only works with complete files stored on the server.
3. You can't automatically detect the end user's connection speed using HTTP. If you want to create different
versions for different speeds, you need to create a separate file for each speed.
4. HTTP streaming is not as efficient as other methods and will incur a heavier server load.
48. Comparison between Streaming and Progressive
Downloading Media
Q : What is the difference between streaming video and making video available for progressive download?
Which is preferred?
A :
* The basic difference between streaming video and making it available for progressive downloads is the
server used to deliver the content, the time it takes to deliver the content and whether or not a copy of the
content stays on the user's machine.
* When video is streamed, it is delivered from a streaming media server and is played on the computer using a
particular piece of software, such as Windows Media, Real Player or Quicktime. This all occurs rapidly
(depending on the speed of the Internet connection and the user's processor). The file remains on the server
and is not transferred to the viewer's computer. Events can be streamed live and / or can be archived for
later viewing. The url for files hosted on media server may begin with rtsp:// or mms://.
* If a file is made available for progressive download, a copy of the file is transferred to the user's computer.
The viewer may in some cases begin to start viewing it when the download begins, but will not be able to
fast forward or see the whole video until the download is complete. Files for progressive downloads use a
regular Web server with a url beginning with http://. Because video files are generally large, this can take
a long time. The benefit of a progressive download for video is the quality can be higher; the benefit of
progressive downloads for audio is the content can be saved to an individuals iPod or other mp3 player and
listened to at their leisure.
* Vanderbilt University prefers streaming for video, particularly longer videos, as it is much faster than
progressive download and the concern about the alteration or misuse of Vanderbilt videos is greatly reduced
as the content remains on the Vanderbilt media server.
49. Streamable Media File
Every streamable media file must have the most important information – Hint Track.
Hint Track instructs the streaming server to pick media data, encapsulate into packet and then put it onto
network.
A streaming server just follows instructions provided by Hint Track without knowing the content of the
streamable media file.
The informations Hint Track provides are put into SDP(Session Description Protocol) in RTSP payload.
These informations include codec type, media file header, RTP payload type, the playbacking time, etc.
MP4 file without Hint Track
MP4 file with Hint Track
1. MP4
1.1. What is MP4?
MP4 is a container and streamable format. As any other container format like AVI (.avi), RealMedia
(.rm, .rmvb), QuickTime (.mov), MPEG (.mpg, .mpeg), Matroska (.mkv, .mka), OGM (.ogm) it allows you
to combine different multimedia streams (mostly audio and video) into one single file.
MP4 is a file extension for the container format defined in the Systems Part of the MPEG-4 standard (ISO
14496-1).
50. MP4 supports all kinds of multimedia content (multiple audio streams, video streams, subtitle streams,
pictures) and advanced content (called "Rich Media" or "BIFS") like 2D and 3D graphics, user
interactivity, DVD-like menus.
1.2. MP4 file extensions
MP4 files can have the following extensions:
* .mp4 - official extension
* .m4v - .mp4 files with the WRONG extension introduced by Apple for video+audio files, .m4v can be
safely renamed to .mp4 (.m4v is used in Apple iTunes and iPod)
* .m4a - .mp4 files with the WRONG extension introduced by Apple for audio-only files, .m4a can
safely be renamed to .mp4
* .m4p - used by Apple iTunes for DRM protected files
* .m4e - renamed .sdp files used by Envivio for streaming
* .m4v, .mp4v, .cmp, .divx, .xvid, .264 - normally raw mpeg-4 video streams (not inside MP4)
* .3gp, .3g2 - used by mobile phones, can also include content not defined for .mp4 (H.263, AMR)
2. How To Add Hint Track into MP4 & 3GP Files?
2.1 MP4 Files
2.1.1) Apple and MPEG4IP offer nice and free tools when it comes to streaming MP4: As a streaming
server you can use Apple's Darwin Streaming Server. For live streaming you can use mp4live from
MPEG4IP (only for Linux), on Windows you can use MPEGRecorder (which seems to be a port of
mp4live). Also have a look at the tools from ViTooKi (opensource Streaming Server, Player and other tools).
Another free and opensource MP4 streaming server is available from Catra. For MAC you may use Live
Channel.
2.1.2) MP4Box is a MP4 multiplexer and a command line tool. It can import MPEG-4 video, DivX, XviD,
3ivx, h264 etc, audio streams and subtitles into the .mp4 container. The end result is a compliant MP4
stream. It can also extract streams from a .mp4. MP4Box is a command line tool, but can be used with
graphical user interfaces such as YAMB.
With AAC audio, it should use LATM(Low-overhead MPEG-4 Audio Transport Multiplex) RTP payload
type :
MP4Box.exe -hint -latm XXX.mp4
Others :
MP4Box.exe -hint XXX.mp4
2.2 3GP Files
MP4Box commands for 3GP files with A/V codec :
<I> AMR+H263
MP4Box.exe –hint -3gp XXX.3gp
52. RTP Payload Type for Streaming Media
Codec Type RFC
H.263 Video http://www.potaroo.net/ietf/rfc/PDF/rfc2429.pdf
H.264 Video http://www.potaroo.net/ietf/rfc/PDF/rfc3984.pdf
MPEG-4 Audio/Visual
bitstreams
Video http://www.potaroo.net/ietf/rfc/PDF/rfc3016.pdf
AAC, LC and LTP Audio http://www.potaroo.net/ietf/rfc/PDF/rfc3016.pdf
AMR-NB AMR-WB Audio http://www.potaroo.net/ietf/rfc/PDF/rfc3267.pdf
53. SHOUTcast – A Streaming Audio Tech
SHOUTcast is server software for streaming media developed by Nullsoft (whoes most famous product is
Winamp MP3 player). It allows digital audio content, primarily in MP3 or HE-AAC format, to be broadcast
to and from media player software, enabling hobbyists and professionals to create Internet radio networks. It
is cross-platform, and freeware.
It consists of a client-server model, with each component communicating via a network protocol that
intermingles audio data with metadata such as song titles and the station name. It uses HTTP as a transport
protocol, although multicast is another option.
Shoutcast servers are usually linked to by means of playlist files, which are small text files (usually with
extensions .pls or .m3u) that contain the URL of the ShoutCast server. An attempt to visit that URL in a
normal Web browser will usually result in a ShoutCast status page.
For Android
Quoted from a post on Internet:
-----------------------------------------------------------------------------------------------------------------------------------
Android (這裡使用的是 1.5)透過一個叫做 android.media.MediaPlayer 的類別來提供撥放串流影音或
本地端影音檔的功能。不過,眾所皆知的,它支援的串流協定以及 codec,相當的有限。我想,這一點
在現在及未來,肯定會受到相當多開發者的注目以及戮力加強。
本文提到的是解決一個特定問題的方式,想解決的是在 Android 上撥放 SHOUTCAST MP3 stream。許
多網路音樂串流都是採用 SHOUTCAST MP3 stream 的方式,但即使 Android 支援了 HTTP 以及 MP3,
而且 SHOUTCAST MP3 stream 的內容幾乎就是 MP3 stream,但透過內建的 MediaPlayer,你仍然無法
撥放。這原因當然是因為 MediaPlayer 沒有處理 SHOUTCAST,即使 SHOUTCAST 的協定和 HTTP 是
那麼的相像。
由於我才接觸 Android 數日,可以說是對 Android 還相當的陌生,不知道除了走原生程式碼這條路外,
還有沒有別的方法(之前有想過,直接處理 SHOUTCAST 協定再自行 decode MP3,但似乎沒有內建的
MP3 decode 介面,或許有 Android 高手可以指點一下),所以設計了一個機制,在不寫任何原生程式碼
的情況下,讓 MediaPlayer 能處理 SHOUTCAST MP3 stream。
這個機制的核心想法是這樣樣子的 - 放置一個 HTTP proxy 介於 MediaPlayer 與 SHOUTCAST server
之間(當然 HTTP proxy 也跑在你的 Android 應用程式之中),這個 HTTP proxy 一手接收 MediaPlayer
的單純 HTTP 請求,另一邊則扮演一個 SHOUTCAST client,接收 SHOUTCAST server 回傳的內容,並
且依據 SHOUTCAST 協定,將回傳內容中的 MP3 stream 剖析出來,回傳給另一邊的 MediaPlayer。
今天實驗了一下,這個機制的確能夠讓 MediaPlayer 撥放 SHOUTCAST 的網路音訊串流。大抵的精神
如上所描述,不過細節處還不少。最重要的大概就是怎麼處理 MediaPlayer 的 HTTP 請求。MediaPlayer
基本上是兩個請求就搞定,一個是 HEAD 一個是 GET。透過 HEAD 它可以判斷究竟是否支援,再透過
接下來的 GET 取得真正的內容。當然,針對這兩個請求,Content-Type 都會是 audio/mpeg,而且千萬
55. References
01. Video Lan
Document : http://wiki.videolan.org/Documentation:Documentation
VLC Knowledge : http://wiki.videolan.org/Knowledge_Base
VLC Streaming HowTo :http://wiki.videolan.org/Documentation:Streaming_HowTo
VLC Capability : http://www.videolan.org/vlc/features.html
Streaming Capability : http://www.videolan.org/streaming-features.html
How to stream on a VLC : http://www.ehow.com/how_5143120_stream-vlc.html
Android VLC Remote : http://code.google.com/p/android-vlc-remote/
02. LIVE555 Media Server
http://www.live555.com/mediaServer/
03. Darwin Streaming Server
Main site : http://dss.macosforge.org/
Apple site introducing DSS : http://developer.apple.com/opensource/server/streaming/index.html
DSS-6.03 Install :
http://www.xtreamlab.net/howtos/broadcast/servers/darwin/howto_setup_darwin_streaming_server_on_lin
ux.html
DSS-6.03 Install in another way :
http://cwshep.blogspot.com/2008/08/darwin-streaming-server-603-on-linux.html
DSS Installation and Setup in regular Chinese : http://blog.xuite.net/hsunet0122/life/25320249
04. FFServer - FFMpeg Streaming Server
Ffmpeg Wiki : http://wiki.multimedia.cx/index.php?title=Libavcodec
05. Flumotion
Official Site : http://www.flumotion.net/
Source Code Download Site : http://www.flumotion.net/src/flumotion/
Introduction to Flumotion Commands :
http://blog.gingertech.net/2006/08/02/running-flumotion-on-ubuntu/
Q&A :
https://code.fluendo.com/flumotion/trac/wiki/FAQ#when-starting-flumotion-manager-i-get-error-pem-file-e
tc-flumotion-default-pem-does-not-exist
06. To Add Ubuntu Universe and Multiverse Repository
http://www.ubuntugeek.com/how-to-enable-the-universe-and-multiverse-repositories-in-ubuntu-804-hardy.
html
07. Stream Server Passing through NAT/Firewall
http://soundscreen.com/streaming/firewall.html