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

  1. 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.

  2. 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

Playback RTMP with JW Player

You can publish a rtmp stream to a rtmp address and then playback with an external player like JWPlayer.
If you publish StreamName to rtmp address rtmp://your-rtmp-address-here then you will need to configure JW Player:
var flashvars = { file: StreamName.flv, streamer: rtmp://your-rtmp-address-here, autostart:”true”, type:”rtmp”}

 

Webcam video streams can be published from web with a video Live Streaming broadcasting script. With the VideoWhisper Live Streaming soulution, StreamName is channel name (in example Studio586). Important: As latest VideoWhisper solutions also support P2P streaming, these need to be configured with alwaysRTMP=1 parameter in their _login.php or equivalent script so streams are always published to RTMP server.

 

If you want to publish for other devices special encoders and codecs would be required. Using an external encoder you can encode with codecs and settings not available in browser flash player (due to flash limitations). Not all encoders and versions are compatible with all rtmp servers and versions. Some require special configuration and usage instructions.

Adobe Flash Media Live Encoder can be used for Adobe Media Interactive server and is also reported to work with Wowza.

Wowza & Wirecast documentation and support is available for Wowza Media Server hosting.

 

Note that when publishing H.264, video player should be configured to play StreamName.mp4 instead of StreamName.flv .