VideoWhisper Software Requirements
This type of premium web based functionality (live video streaming and interactions) involves special software and hardware requirements compared to regular site functionality.
This advanced software requires 2 types of hosting (compulsory):
- a HTTP Web Server hosting plan for the regular website features and
- a RTMP Flash Media Server hosting plan (usually on a different special streaming server) for video streaming and other instant communication required between chat clients
Resources and development on a streaming server are more expensive and that's a reason why the software was designed to use a standard web server for the rest of the features (like file sharing, user login, session monitoring, text chat logs) making it more affordable to run and easier to integrate with most sites already built.
This architecture makes it 100% web based and very easy to run for your website users, without software downloads and installations, no matter what type of computer they are using. Read here more details about the platform benefits.
- Hosting Web & RTMP on Same or Different Physical Server
RTMP can be used remotely but many solutions also involve web scripts accessing files on rtmp server (like video files). Solutions that don't involve script access to recordings / videos on rtmp server can be hosted on different physical web and rtmp servers. This works in most situations for Video Conference, 2 Way Video Chat.
When website scripts / integration requires access to video recordings/archives for management, conversion to HTML5 formats, both web and rtmp parts must be hosted on same physical server so web scripts have access to videos saved by rtmp. This is available with our managed plans. For recording/archiving/mobile distribution we recommend Wowza RTMP server.
- Turnkey Managed Hosting
For full functionality we provide managed plans and dedicated servers that include everything required to run this software (web + rtmp) at optimum performance. Our staff can also assist with transferring existing sites from other providers. These include functionality like recording/archiving, mobile delivery of streams (hls, mpeg-dash), transcoding support, rtmp session control for 3rd party encoders and players and other extended functionality.
If you just need basic rtmp functionality for live streaming or video chat to use in addition to a 3rd party web host, remote budget rtmp clould hosting options are available. This type of rtmp hosting does not include support for archiving/recording, mobile delivery, vod, transcoding or other extended functionality.
Server Software (Hosting Requirements)
- HTTP Web Hosting
Recommended: CPanel based web hosting with suPHP enabled.
- HTTPS - Certain browsers like Chrome require using HTTPS (and a SSL certificate) for enabling webcam publishing.
- PHP (The PHP implementation is simple so it can be migrated to other scripting languages like ASP or JSP).
Provided php sample scripts require these default php settings:
- error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT (on PHP 5.4+)
error_reporting = E_ALL & ~E_NOTICE (on PHP 5.3 or less)
- short_open_tag On
- safe mode Off (if using older php, as function is deprecated in PHP 5.3 and removed in PHP 5.4)
- open_basedir restrictions should allow accessing CMS configuration and libraries (depending on integration)
- scripts require write permissions on certain files and folders (to store snapshots, chat logs, sessions) depending on edition
- MySQL (not required for the php only stand alone simple integration, strict mode must be disabled)
- FFMPEG (required only for video conversions and transcoding, with Flash and HTML5 codecs including H264, NellyMoser, Speex, AAC). FFMPEG2THEORA is also required on some recorder integrations.
- Document conversion tools (required only for setups that involve importing PDF, PPT, DOC, XLS, like Video Consultation slide import):
- RTMP Flash Media Server Hosting
VideoWhisper rtmp application is developed and supported for these types servers:
- Wowza Streaming Engine
- recommended for recording/archiving, heavy streaming volume and reliability
- compulsory for advanced features like
- HLS / MPEG DASH delivery
- restreaming IP cameras or other streams
- RTMP Session Control for external encoders
- WebRTC publish/playback (also requires configuring a SSL certificate)
- RTMPS (also requires configuring a SSL certificate)
- Red5 - Open Source Server
- can be used for plain streaming or videochat on systems with restrained resources (VPS)
- Adobe Flash Media Interactive Server
- HTTP Web and RTMP Streaming on same server: required for solutions that involve conversion of video archives, streaming of uploaded videos, scheduling playlists, restreaming IP cameras and similar advanced features that require both web and rtmp to have access to certain files.
- RTMFP hosting (optional, for enabling P2P connectivity) - Not recommended for most projects.
Get a free rtmfp address by registering with Adobe Cirrus .Using RTMFP will not replace RTMP requirements (RTMP hosting is always required).
P2P is often used on free chat roulette type sites but is not as reliable as streaming trough the RTMP relay server. P2P video streaming is great for users in same network or having dedicated IP address and high speed upload but will fail or produce huge latency for most users with regular connections.
- Clean Domain Nameservers
If you use a name server optimizer (ex. CloudFlare) certain protocols, ports and services may not work by default, including RTMP. You can use rtmp addresses based on IP to fix this or configure exceptions for RTMP (TCP port 1935).
Additionally, such optimizers may alter output or force cache for scripts that communicate with flash applications, which can break parameters and functionality.
- WebRTC - Some solutions implement streaming using WebRTC protocol for compatibility with HTML5 browsers that lack Flash plugin support. WebRTC streaming is done trough media server, as relay, for reliability and scalability needed for these solutions.
Conventional out-of-the-box WebRTC solutions require each client to establish and maintain separate connections with every other participant in a complicated network where the bandwidth load increases exponentially as each additional participant is added. Broadcasters need server grade connections to live stream to multiple users and using a regular home ADSL connection (that has has higher download and bigger upload) causes real issues. These solutions use the powerful streaming server as WebRTC node to overcome scalability and reliability limitations.
For most integrations that involve video recording and archiving, HTTP and RTMP must be hosted on same physical server so web scripts have access to the video files saved by rtmp server for management and conversion.
The hardware configuration depends very much on the number of website members and visitors and also on website settings and target, so we cannot give you exact requirements.
The most important feature for video streaming is rtmp server connectivity.
We recommend servers with dedicated 100Mbps or 1000Mbps ports in well connected data centers (that have gigabyte connections with several providers).
A dedicated 100Mbps connection can host in theory a maximum of 200 streams at 512kbps each (for an average quality 320x240 video). High resolution streams require 1Mbps (360p) to 8 Mbps (Full HD).
Number of streams consumed for each user connected to server depends on communication logic. For 1 way broadcasts each user consumes 1 stream.
If there are 2 way private video chat rooms where each user sees 1 other video and transmits 1 video, 2 streams per user will be required.
If there are video conference rooms where each user transmits 1 video and sees other 3 videos, 4 streams per user will be required.
To host hundreds or thousands of streams simultaneously, servers with 1000Mbps connection and at least 8 Gb RAM are required (16-32Gb recommened if hosting both web and rtmp).
It's important to have the server in a reputable data center with high connectivity so all your users can connect to the server at good speed, from their different networks and providers.
For good performance and reliability average use should be maintained under 35-60% of maximum connection capacity.
In example a dedicated server with 1000Mbps connection should be allocated when 500 Mbps streaming is expected. Why that when theoretical connection is 1000Mbps? Because there's additional data used in addition to streaming, like other interactions, networking packets info, connection management traffic, often other services like web/mail/dns on same server.
To evaluate server and network capacity when choosing a server, consider monthly transfer available.
In example, VideoWhisper dedicated streaming servers are setup to allow 100Tb/month data traffic which means around 308Mbps average continuous transfer.
A provider selling servers with 10Tb/month is ready to handle around 30Mbps average transfer and if server allows only 5Tb/month your project should not require more than 15Mbps average transfer.
On high traffic events, servers could handle spikes up to double or more of this average bandwidth only if network load is low at that moment. Reliable services should be planned based on provider network capacity.
For transcoding, video conversion CPU is also important. A video card with good GPU can greatly increase video processing power.
VPS / Reseller / Cloud vs Dedicated Server
A VPS (Virtual Private Server) can be used for live video streaming project development and testing but is not recommended at production times.
Dedicated servers are recommended.
Multiple VPS (Virtual Private Servers) share same server with same hardware (disk, CPU, memory, connection).
While resulting performance issues are not visible when serving http pages, frame loss/latency/temporary freezing can occur in live streams on a VPS, depending on how the other VPS on same server use the shared physical resources and temporary lock these.
When 4-12 VPS share same 100Mbps server connection, that can limit number of simultaneous users to 10-20. You should avoid using a VPS for production mode.
Altough it seems counter intuitive, a shared hosting plan on a server that runs a rtmp service can be better than a VPS because in the first case, the RTMP service (process) has full access to all dedicated server resources and distributes these to clients with designed streaming fluency.
On a VPS, the RTMP service is installed on a fraction of the server and resource allocation/balancing is done above the RTMP server. This can cause visible streaming interruptions, latency or server crashes due to throttling and resource cutting applied to rtmp service process.
We recommend using a RTMP service installed directly on a dedicated server, even if service is shared. We don't recommend a RTMP service installed on a server share.
Reseller accounts (setup with WHM/CPanel) are accounts that can manage multiple CPanel accounts. Multiple reseller accounts are usually hosted on a VPS or dedicated server and have less resources and priority than a VPS.
Usually reseller hosting providers don't include rtmp hosting due to management and resource allocation hassle.
Cloud instances are similar to VPS and have similar limitations (there are multiple instances on a server and each one can grow and occupy available free resources). Reference: AWS CDN Instance connection limit, EC2 Bandwidth Limit .
No Budget Hosting
Budget hosting usually means hundreds of sites or dozens of VPS / reseller accounts hosted on same server. That's how budget shared plans start from few dollars when a server costs hundreds per month and budget hosting companies still make profit.
All accounts on a server share same physical resources (disk, memory, CPU, connection) and often when others use the server there is latency or huge slow down because of resource bottle necks.
On regular http requests it's not an issue if host does not respond for 1-3s but for rtmp live streaming it's a big issue because of dropped frames and live latency.
Live video streaming and interactions it's a premium feature that usually requires a dedicated server.
Regular budget hosting does not provide rtmp because of high resource demands and also VPS often have performance issues (latency, frame loss) because of other clients locking the physical resources and causing stalls.
That's why we recommend plans designed for such use or dedicated hosting on 1000Mbps connected servers (so 10x more users can be connected at same time compared to regular providers).
Due to high connection and processing allocation demanded for such shared plans, server costs are divided among much fewer clients and prices are higher based on this ratio.
Also such service requires increased costs related to rtmp servers (administration and special licensing for certain rtmp server types).
Considering these, costs for live streaming hosting can be 10x higher than for budget hosting.
RTMP Streaming Server Options
RTMP hosting uses servers intensely so regular providers will not allow this with shared web hosting plans. You can usually host rtmp with your regular host if you have a VPS or Dedicated Server. Otherwise you'll need a special rtmp hosting plan in addition to your regular web hosting.
VideoWhisper RTMP side applications are developed and supported in versions for these flash media servers:
- Wowza Streaming Engine / Media Server
High-performance, extensible and a fully interactive Flash® media server. Buy Wowza Streaming Engine / Media Server license or get the Wowza developer license limited to 180 days and 3 inbound / 10 total connections by registering on their website.
Considering Wowza license is $95 month, you should consider getting our Wowza Streaming Engine hosting plans that include everything starting from $50/mo.
- Red5 Open Source Server
Red5 is an open source Flash RTMP server alternative written in Java. It is the free solution to host RTMP if you have your own dedicated/semi-dedicated server or VPS.
Latest version is recommended. VideoWhisper was tested with many Red5 versions from older 0.7 to latest 1.0+. See Red5 installation services and managed premium red5 hosting. These services include setup and management of the rtmp application.
Latest Red5 can be downloaded for free from GitHub - Red5 Server. It includes binary auto installers and also Java source. There are various online tutorials for setting up red5 on multiple Linux flavors like for Centos , Ubuntu .
Red5 versions we tested are not recommended for recordings (create broken flv files in some situations).
- Flash Media Interactive Server
This is the native server developed by Adobe for use with flash. You can buy the Flash Media Interactive Server software from Adobe and install it on your web server, or you can buy FMIS hosting from a company specialized on this platform. Unless your business is very big and you have your own servers and server staff, we recommend ordering a FMIS hosting plan from a FMIS hosting provider.
Disclaimer: RTMP servers are not developed, supported or documented by VideoWhisper.com . Documentation is available from their official websites listed above. VideoWhisper staff can assist with installation of rtmp servers (on request, for additional fees), limited to existing experience with these.
For production sites with intense streaming where service stability is a priority or recording/archiving/transcoding is needed, we recommend Wowza Media Server hosting. Considering running such website usually requires a full dedicated server (vps/cloud not recommended and reseller/shared host don't usually provide/allow RTMP setup) and Wowza license alone is $65/month, we provide very affordable plans for our clients that start from $50/month and include all hosting requirements (web + rtmp).
Managed turnkey dedicated servers are also available.
If you just need live streaming bandwidth, with no recording/archiving or transcoding, we recommend Red5 Hosting.
Installing Red5 Server on VPS / Dedicated Server / Localhost development server
Red5 is an open source flash media server being continuously developed.
The procedure for installing and configuring this server varies depending operating system and flavor. There are multiple tutorials and topics online about Red5 installation but most of these are outdated and reference old versions.
VideoWhisper provides this service: Latest Red5 installation on VPS & Dedicated Servers (Linux / Windows).
When installing yourself you should check latest Red5 version . Installers are already available for some OS versions including Windows and Red5 final versions / release candidates. There are some requirements for installing Red5 like latest JDK.
To install latest
you need to download and compile latest Java build.
Basically, before running these solutions with Red5 on a server, you need to:
- install latest JDK (OpenJDK 1.7 or higher recommended)
- install latest stable Red5
- install latest VideoWhisper RTMP application as explained on http://www.videowhisper.com/?p=RTMP+Applications
Client Software (User Requirements)
- Web browser with latest flash plugin . To get latest flash player plugin version, download latest flash player from http://get.adobe.com/flashplayer/ . For developers and site owners we recommend flash player debugger versions.
Most mobile devices don't allow such plugins and direct access to camera from browser, so special mobile video solutions are required.
- Decent internet connection (for streaming bandwidth requirements). Because a regular video stream uses 50kb/s (400kbps) or more at least a stable 1Mbps symmetric connection would be required to participate in a 2 way video chat session (upload a stream and download a stream). For ADSL a very good connection is required to stream video due to lower upload rate - read more about ADSL broadcasting issues.
- Firewall settings (if a firewall is enabled): Clients need to be able to make connections over these ports:
- 1935 TCP = RTMP/E : Flash Player and AIR clients make RTMP connections to a Streaming Server over port 1935 over TCP.
- 1935 UDP = RTMFP : Flash Player and AIR clients make RTMFP connections to a Streaming Server over port 1935 over UDP.
- 19350-65535 UDP = RTMFP
: Clients connect to the server over 1935 and the server redirects the client to a port between 19350 and 65535. Allow inbound UDP traffic on 1935 and outbound traffic on ports 19350 - 65535.
Not required if P2P is disabled (recommended for reliability). If you want to test P2P, check with RTMFP tester .