Speex vs NellyMoser Bandwidth

Speex is open source, optimized for speech and has lower bandwidth requirements.

The sample rates available depend on the selected codec. When you use the Nellymoser codec, you can specify 5, 8, 11, 16, 22 and 44 kHz as the sample rate. When you use Speex codec (available starting in Flash Player 10 and Adobe AIR 1.5), you can only use 16 kHz. (Adobe documentation)

Considering these, for speech based video conferencing Speex is recommended but for other type of audio (ex. music), NellyMoser should be used.

Here are the bandwidth requirements for different quality levels:

Speex

Quality (encodeQuality) Required bandwidth in kbps
0 3.95
1 5.75
2 7.75
3 9.80
4 12.8
5 16.8
6 20.6
7 23.8
8 27.8
9 34.2
10 42.2

NellyMoser

Quality (mic rate) Required bandwidth in kbps
5 11.025
8 16
11 22.05
22 44.1
44 88.2

 

Transfer and Connection Requirements

To obtain transfer in kb/s divide kbps value by 8. Total transfer is added to file size when recording.
Ex: Speex 9 generates extra 4275 b/s transfer. NellyMoser 22 generates extra 5512b/s transfer.

When broadcasting, total stream size should be less than maximum broadcaster upload speed (multiply by 8 to get bps, ex. 50000b/s requires connection higher than 400kbps).

Do a speed test from broadcaster computer to a location near your streaming (rtmp) server using a tool like SpeedTest.net . Drag and zoom to a server in contry/state where you host (Ex: central US if you host on VideoWhisper video hosting servers) and select it. The upload speed is the maximum data you’ll be able to broadcast.

 

iPhone/iPad

Neither Speex or NellyMoser are supported on iOS. Live streams (over HLS) and videos can be distributed to these devices after transcoding/converting sound to AAC.  This is possible with VideoWhisper applications and editions (ex. Live Streaming, Video Recorder) that can convert videos and live streams with FFMPEG.

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