Wowza RTSP Live Streaming for Android
Test your device RTSP playback:
rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov
Configure Wowza Media Server
- http://www.wowza.com/forums/content.php?36#publish
[install-dir]/conf/Application.xml
+ Set the Streams/StreamType property to live :
<StreamType>live</StreamType>
+ Set the HTTPStreamers property to cupertinostreaming,smoothstreaming,sanjosestreaming :
<HTTPStreamers>cupertinostreaming,smoothstreaming,sanjosestreaming</HTTPStreamers>
+ Set the Streams/LiveStreamPacketizers property to cupertinostreamingpacketizer,smoothstreamingpacket izer,sanjosestreamingpacketizer:
<LiveStreamPacketizers>cupertinostreamingpacketizer,smoothstreamingpacketizer,sanjosestreamingpacketizer</LiveStreamPacketizers>
+ Set the RTP/Authentication/PlayMethod property to none:
<PlayMethod>none</PlayMethod>
- http://www.wowza.com/forums/content.php?62
[install-dir]/conf/VHost.xml and add 554 to the list of HostPort/Ports
- http://www.wowza.com/forums/content.php?36#RTSP
RTP > Properties container in [install-dir]/conf/[application]/Application.xml (be sure to get the correct Properties container – there are several in Application.xml):
Code:
<Property>
<Name>forceMPEGTSOut</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>rtpWrapMPEGTS</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
Publish
http://www.wowza.com/forums/content.php?62
- Encoding:
It is best to encode the video using a low bitrate, frame rate and low encoding complexity. For mobile streaming a total bitrate of between 64Kbps to 250Kbps is probably best. Many mobile devices may not be able to handle a full 30 frames per second (fps). A frame rate of 15 – 24 fps may be best for mobile. It is best to encode to a lower H.264 complexity. Most mobile devices only support H.264 Baseline. Encoder complexity and level is discussed here.
- Networking (UDP and TCP setup):
UDP: It is best to open all UDP (0-65535) ports for RTSP/RTP streaming. On the incoming side, Wowza tends to try to use ports between the range of 6970-9999. Outgoing the port choice is made by the receiving device. So it is best to open all ports to outgoing UDP traffic. Getting the UDP setup correctly is sometimes difficult and dependent on your router and firewall setup. If behind NAT (network address translation) it is important that all UDP ports are mapped to the server running Wowza.
Android: Most Android devices support RTSP/RTP streaming. Newer Android devices that are running version 2.2 or greater (Froyo) also support Flash player 10.1 and can play RTMP and Flash HTTP streams. Android devices cannot play MP3 streams over RTSP/RTP in any combination (audio/video or audio only). Android devices that support Flash player 10.1 can play MP3 using RTMP or Flash HTTP. When streaming to an Android device using RTSP/RTP, the RTP portion must flow over UDP. Android does not support RTSP/RTP interleaved (RTP over TCP). This means if UDP is unavailable for RTP playback, RTP over TCP will not work as a failover and your stream will not play.
Customers have reported issues with RTSP/RTP playback on the DroidX and Droid2. It seems that only a few frame sizes will play properly on these devices:
- 800×480
- 480×320
- 240×160
VideoWhisper provides compatible, rtmp managed Wowza hosting plans and assistance with mobile streaming:
http://www.videowhisper.com/?p=Wowza+Media+Server+Hosting
Related Posts:
VideoWhisper Messenger for Video Girls BiZ PPV VideoChat Script
Video Girls BiZ is a website software suite, containing all software and scripts required to power a pay per view / pay per minute online video chat business.
Video Messenger for Video Girls BiZ
+ PPV private video chat
+ public perfomer rooms
+ members can request private paid show
+ online perfomers list with live snapshots
+ live video preview on performer profile page
+ performers can have multiple private sessions at same time
Related Posts:
Reinstall Perl, CPanel, All yum packages
Reinstall yum packages
yum clean all
yum update
yum reinstall $(yum list installed | awk ‘{print $1}’)
Reinstall Perl
Get latest source from http://search.cpan.org/dist/perl/ , unarchive and go to that folder.
yum install make gcc
sh Configure -de -Dusethreads
make && make test && make installcd /usr/bin
mv perl perl-backup
ln -s /usr/local/bin/perl perl
Reinstall Cpanel and Fix accounts
/scripts/upcp –force
/scripts/fixhome
/scripts/chownpublichtmls
Related Posts:
Red5 1.0 RC2 backward compatibility
Latest red5 versions ( Red5 revision > 4326 like 1.0 RC2+) bring changes that make red5 incompatible with older applications.
Changes are required for these applications to work.
Updated VideoWhisper rtmp applications can be downloaded for use or as sample to update other applications.
This is covered in Red5 google group:
With revision 4326 you will see problems when building or running your applications with Red5. Most of the problems you’ll run into
are with missing classes; in most cases you can just add the “scope” package to your imports or run “Optimize imports” in Eclipse. Below I have addressed a few items that you may run into.
1. IScope cannot be resolved to a type- Update red5 jar or source with latest
- Correct location of IScope is org.red5.server.api.scope.IScope, previously it was org.red5.server.api.IScope
2. The import org.red5.server.api.IScope cannot be resolved- Update red5 jar or source with latest
- Correct location of IScope is org.red5.server.api.scope.IScope, previously it was org.red5.server.api.IScope
3. WebScope cannot be found- Open your applications red5-web.xml and change the “web.scope” bean class to
<bean id=”web.scope” class=”org.red5.server.scope.WebScope” init-method=”register”>
instead of this
<bean id=”web.scope” class=”org.red5.server.WebScope” init-method=”register”>
4. Method signature does not match xxxx.- For this one the fix is to change your expectation to receive an Iterator and instead make use of a Collection. The scope method
for retrieving scope names now returns a Set as shown here:
public Set<String> getScopeNames()
5. Parameter “type” does not match String.- For scopes, their type is no longer identified by a string but instead uses an enum of ScopeType. The old method for getting basic
scope names was like so:
public Iterator<String> getBasicScopeNames(String type)
this is the new version:
public Set<String> getBasicScopeNames(ScopeType type)
Related Posts:
Broadcasting for Mobiles from VideoWhisper Wowza Hosting
Different devices require different codecs and settings for the streaming.
Most VideoWhisper Wowza plans come already setup to support various formats but you need to publish in supported formats and playback from supported urls.
Flash applications currently encode in a standard format that is not accessible on most mobiles without flash support. External encoders and publishing multiple streams may be required to support multiple devices. For streaming existing video, these would need to be compressed at different bitrates to support different devices.
VideoWhisper Wowza plans come with predefined rtmp addresses for:
- publishing: rtmp://YourIP/YourAccount
- low latency chat: rtmp://YourIP/YourAccount-chat
- publishing + archiving: rtmp://YourIP/YourAccount-archive
- recording: rtmp://YourIP/YourAccount-record
- exporting: rtmp://YourIP/YourAccount-x
Also a web account is provided to access streams by ftp/http as needed and to host website and/or video processing scripts.
Streams are recorded, archived, played back from /home/YourAccount/public_html/streams
Read these guides:
- Playback devices that work with Wowza Media Server (mobile, set-top, desktop)
- Apple iOS Recommended Encoding Settings for HTTP Live Streaming Media
- How to publish and play a live stream (RTMP based encoder)
- RTSP streaming troubleshooting guide (RTSP/RTP playback)
How to use:
- If you publish a stream StreamName in Apple iOS supported format (with external encoder) use rtmp://YourIP/YourAccount-x and stream should be available with http://YourIP:1935/YourAccount-x/StreamName/playlist.m3u8 .
- To stream a sample.mp4 file to Apple iOS, upload it to /home/YourAccount/public_html/streams , open http://YourIP:1935/YourAccount/mp4:sample.mp4/playlist.m3u8 on iOS.
- For RTSP/RTP encoder only, username and password are provided.
Contact VideoWhisper if you need additional assistance.
Related Posts:
Install WGET with SSL Support
To solve errors like “HTTPS support not compiled in.” :
wget http://ftp.gnu.org/gnu/wget/wget-1.13.tar.gz
tar xvzf wget-1.13.tar.gz
cd wget-1.13
./configure –with-ssl=openssl
make
make install
echo y | cp -f src/wget /usr/bin/
wget –help
Related Posts:
VideoWhisper RTMP Web Session Check
For sites and integrations where additional security measures are required, VideoWhisper applications support login session check on RTMP side.
This is used to make sure no clients will be able to connect to rtmp server without having previously logged in with the _login.php scripts.
When a new client tries to connect to RTMP server with a session name, rtmp application will check on the web server if that client session exists. If web server does not confirm that client logged in, rtmp server will reject the connection. RTMP server will also check for a webKey that needs to be configured same way on rtmp and web server: this will prevent connections in case of web domain hijacking.
Notes
- This will disable connections from external encoders (ie. FMLE) and players (ie. JwPlayer) to that rtmp address, as these will not provide a session name to check for validity.
- Usually, each installation will require its own rtmp side that checks session info with that installation. Otherwise you will have to tweak scripts to check on all installations.
RTMP Configuration
RTMP side web session check is currently supported for Wowza rtmp side. Download latest version of Wowza rtmp side, deploy to your server and update these settings in conf/videowhisper-web/Application.xml :
…
<Properties>
<Property>
<Name>acceptPlayers</Name>
<Value>true</Value>
</Property>
<Property>
<Name>webLogin</Name>
<Value>http://installation_url/rtmp_login.php?s=</Value>
</Property>
<Property>
<Name>webKey</Name>
<Value>VideoWhisper</Value>
</Property>
<Property>
<Name>webLogout</Name>
<Value>http://installation_url/rtmp_logout.php?s=</Value>
</Property>
</Properties>
</Application>
Then restart WowzaMediaServer service. For troubleshooting check Wowza access logs. If errors occur in the error logs submit a ticket to VideoWhisper about this.
Web Configuration
Download latest Video Conference php edition and check these integration files:
rtmp.inc.php – stores session info when user authenticates from vc_login.php ; contains $webKey if you want to change it
rtmp_login.php – called by rtmp server to see if a session name is valid (authenticated); also gets canKick permission to allow user to kick clients
rtmp_logout.php – called by rtmp server when client with a session name disconnected (to cleanup session)
Configure settings.php to use the videowhisper-web rtmp address.
To integrate this on other editions or installations you will need to copy the 3 files mentioned above to installation folder and include rtmp.inc.php in the _login.php scripts that authorize the user.
Other changes could be required depending on particularities of each integration.
Sample Demo Configuration
Installation url: http://www.videowhisper.com/demos/vc_web
Using rtmp address: rtmp://videowhisper.com/videowhisper-web
<Property>
<Name>webLogin</Name>
<Value>http://www.videowhisper.com/demos/vc_web/rtmp_login.php?s=</Value>
</Property>
<Property>
<Name>webKey</Name>
<Value>VideoWhisper</Value>
</Property>
<Property>
<Name>webLogout</Name>
<Value>http://www.videowhisper.com/demos/vc_web/rtmp_logout.php?s=</Value>
</Property>

Video Broadcast
Enter Presentation
Enter Conference