Mobile streaming troubleshooting guide (RTSP/RTP out)

https://www.wowza.com/docs/how-to-troubleshoot-rtsp-rtp-playback

I’ve try to play an ondemand file with a blackberry bold 9700 without success.

Do you think it’s possible to play a live stream with blackberry?

Like with iphone : http://[wowzaipaddress]/live/stream/playlist.m3u8

If it’s possible which file do i use ?

Best Regards,

Thanks, I added it to the list of supported devices:

https://www.wowza.com/docs/media-players-and-devices)

Charlie

For rtsp out with default port (554) you need to do two things:

  1. Change Application.xml /RTP /Authentication /PlayMethod from “digest” to “none”

  2. Change /conf/VHost.xml /HostPort /Port “1935” to “1935, 554”

Restart Wowza after #2 and check startup lines in access log to see if Wowza successful in binding to port 554

Richard

Have you opened all UDP ports, and reviewed the Mobile Trouble Shooting Guide?:

http://wowza.com/forums/showthread.php?9967-Mobile-streaming-troubleshooting-guide-(RTSP-RTP-out)&p=52034

And have you tried the mobile example on this device (step 5 in the guide above)?

Richard

Backing up a bit:

rtsp://[wowzaipaddress]/live/stream/

Doesn’t works

rtsp://[wowzaipaddress]/live/stream

Doesn’t works

Can you confirm, both “doesn’t work”, or does one of them work?

Richard

That server has all UDP ports open. And it has port 554 enabled in /conf/VHost.xml /HostPort /Port “1935,554”

This is the Application.xml

<Root>
        <Application>
                <!-- Uncomment to set application level timeout values
                <ApplicationTimeout>60000</ApplicationTimeout>
                <PingTimeout>12000</PingTimeout>
                <ValidationFrequency>8000</ValidationFrequency>
                <MaximumPendingWriteBytes>0</MaximumPendingWriteBytes>
                <MaximumSetBufferTime>60000</MaximumSetBufferTime>
                <MaximumStorageDirDepth>25</MaximumStorageDirDepth>
                -->
                <Connections>
                        <AutoAccept>true</AutoAccept>
                        <AllowDomains></AllowDomains>
                </Connections>
                <!--
                        StorageDir path variables

                        ${com.wowza.wms.AppHome} - Application home directory
                        ${com.wowza.wms.ConfigHome} - Configuration home directory
                        ${com.wowza.wms.context.VHost} - Virtual host name
                        ${com.wowza.wms.context.VHostConfigHome} - Virtual host config directory
                        ${com.wowza.wms.context.Application} - Application name
                        ${com.wowza.wms.context.ApplicationInstance} - Application instance name

                -->
                <Streams>
                        <StreamType>default</StreamType>
                        <StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir>
                        <KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
                        <!-- LiveStreamPacketizers (separate with commas): cupertinostreamingpacketizer, smoothstreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater -->
                        <LiveStreamPacketizers></LiveStreamPacketizers>
                        <!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
                        <Properties>
<Property>
        <Name>enableDynamicStreamMarkers</Name>
        <Value>true</Value>
        <Type>Boolean</Type>
</Property>
                        </Properties>
                </Streams>
                <!-- HTTPStreamers (separate with commas): cupertinostreaming, smoothstreaming -->
                <HTTPStreamers>sanjosestreaming,cupertinostreaming,smoothstreaming</HTTPStreamers>
                <SharedObjects>
                        <StorageDir></StorageDir>
                </SharedObjects>
                <Client>
                        <IdleFrequency>-1</IdleFrequency>
                        <Access>
                                <StreamReadAccess>*</StreamReadAccess>
                                <StreamWriteAccess>*</StreamWriteAccess>
                                <StreamAudioSampleAccess></StreamAudioSampleAccess>
                                <StreamVideoSampleAccess></StreamVideoSampleAccess>
                                <SharedObjectReadAccess>*</SharedObjectReadAccess>
                                <SharedObjectWriteAccess>*</SharedObjectWriteAccess>
                        </Access>
                </Client>
                <RTP>
                        <!-- RTP/Authentication/[type]Methods defined in Authentication.xml. Default setup includes; none, basic, digest -->
                        <Authentication>
                                <PublishMethod>none</PublishMethod>
                                <PlayMethod>none</PlayMethod>
                        </Authentication>
                        <!-- RTP/AVSyncMethod. Valid values are: senderreport, systemclock, rtptimecode -->
                        <AVSyncMethod>senderreport</AVSyncMethod>
                        <MaxRTCPWaitTime>12000</MaxRTCPWaitTime>
                        <RTSPSessionTimeout>90000</RTSPSessionTimeout>
                        <RTSPMaximumPendingWriteBytes>0</RTSPMaximumPendingWriteBytes>
                        <RTSPBindIpAddress>10.249.35.81</RTSPBindIpAddress>
                        <RTSPConnectionIpAddress>184.72.239.149</RTSPConnectionIpAddress>
                        <RTSPOriginIpAddress>184.72.239.149</RTSPOriginIpAddress>
                        <IncomingDatagramPortRanges>*</IncomingDatagramPortRanges>
                        <!-- Properties defined here will override any properties defined in conf/RTP.xml for any depacketizers loaded by this application -->
                        <Properties>
                        </Properties>
                </RTP>
                <MediaCaster>
                        <!-- Properties defined here will override any properties defined in conf/MediaCasters.xml for any MediaCasters loaded by this applications -->
                        <Properties>
                        </Properties>
                </MediaCaster>
                <MediaReader>
                        <!-- Properties defined here will override any properties defined in conf/MediaReaders.xml for any MediaReaders loaded by this applications -->
                        <Properties>
                        </Properties>
                </MediaReader>
                <LiveStreamPacketizer>
                        <!-- Properties defined here will override any properties defined in conf/LiveStreamPacketizers.xml for any LiveStreamPacketizers loaded by this applications -->
                        <Properties>
                        </Properties>
                </LiveStreamPacketizer>
                <HTTPStreamer>
                        <!-- Properties defined here will override any properties defined in conf/HTTPStreamers.xml for any HTTPStreamer loaded by this applications -->
                        <Properties>
<Property>
        <Name>smoothStreamingUseSMILBitrates</Name>
        <Value>true</Value>
        <Type>Boolean</Type>
</Property>
                        </Properties>
                </HTTPStreamer>
                <Repeater>
                        <OriginURL></OriginURL>
                        <QueryString><![CDATA[]]></QueryString>
                </Repeater>
                <Modules>
                        <Module>
                                <Name>base</Name>
                                <Description>Base</Description>
                                <Class>com.wowza.wms.module.ModuleCore</Class>
                        </Module>
                        <Module>
                                <Name>properties</Name>
                                <Description>Properties</Description>
                                <Class>com.wowza.wms.module.ModuleProperties</Class>
                        </Module>
                        <Module>
                                <Name>logging</Name>
                                <Description>Client Logging</Description>
                                <Class>com.wowza.wms.module.ModuleClientLogging</Class>
                        </Module>
                        <Module>
                                <Name>flvplayback</Name>
                                <Description>FLVPlayback</Description>
                                <Class>com.wowza.wms.module.ModuleFLVPlayback</Class>
                        </Module>
                </Modules>
                <!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
                <Properties>
                </Properties>
        </Application>
</Root>

Richard

Check the startup lines in the access log to see if Wowza was able to bind to 554…

At this stage is best to run Wowza in stand alone mode so you can see log output in the console in real-time. So stop the service and run Wowza in the console

cd /usr/local/WowzaMediaServer/bin

./startup.sh

Assuming 554 is binding, when you try to play on the blackberry, look for a log pattern like this:

INFO server comment - RTPUDPTransport.bind[vod/_definst_]: /[wowza-ip]:6970
INFO server comment - RTPUDPTransport.bind[vod/_definst_]: /[wowza-ip]:6971
INFO server comment - RTPUDPTransport.bind[vod/_definst_]: /[wowza-ip]:6972
INFO server comment - RTPUDPTransport.bind[vod/_definst_]: /[wowza-ip]:6973
INFO rtsp play 792644984 -
INFO server comment - RTPUDPTransport.unbind[vod/_definst_]: /[wowza-ip]:6970
INFO server comment - RTPUDPTransport.unbind[vod/_definst_]: /[wowza-ip]:6971
INFO server comment - RTPUDPTransport.unbind[vod/_definst_]: /[wowza-ip]:6972
INFO server comment - RTPUDPTransport.unbind[vod/_definst_]: /[wowza-ip]:6973

This pattern of 4 RTPUDPTransport.bind lines followed immediately by 4 RTPUDPTransport.unbind indicates that UPD ports are not open. Then you need to find out how to do that on your system, IPTables probably. Or maybe UDP is blocked in a router.

Richard

For live streaming, you have to change the /conf/blackberry/Application.xml /StreamType to “live”

And you have to publish a stream named “blackberry” in this case to an application named “blackberry”. If you are using FMLE:

FMS URL: rtmp://[wowza-address]:1935/blackberry

Stream Name: Blackberry

Make sure format is “H.264”

Richard

MP3 might be a problem with Blackberry. I would try use AAC if possible.

The sanjose error might mean you are using a certain version of Wowza that went out with that value in the Application.xml but did not have support.

I think you should apply the latest patch, Patch 5 to benefit from rtsp enhancements, and it will take care of that error. NOTE the 3 files in the Wowza /lib folder that must be deleted when you apply this patch:

https://www.wowza.com/downloads/WowzaMediaServer-2-1-2/WowzaMediaServer2.1.2-patch5.zip

Carefully ready the IMPORTANT!!! notice in the README.txt file of the patch. Several core components have been upgraded:


IMPORTANT!!!

Several core components have been updraded to newer versions. Before

applying this patch, delete the following files from your Wowza Media Server

installation:

[install-dir]/lib/bcprov-ext-jdk15-143.jar

[install-dir]/lib/commons-lang-2.4.jar

[install-dir]/lib/log4j-1.2.15.jar


And for RTSP streaming you should take a look at this Article:

https://www.wowza.com/docs/how-to-set-up-an-application-for-rtsp-rtp-streaming

Richard

You’ll need to use RTSP instead of http, and drop the playlist.m3u8 off the end.

rtsp://[wowzaipaddress]/live/stream/

Doesn’t works

rtsp://[wowzaipaddress]/live/stream

Doesn’t works

  1. Change Application.xml /RTP /Authentication /PlayMethod from “digest” to “none”

  2. Change /conf/VHost.xml /HostPort /Port “1935” to “1935, 554”

Already done!

I have checked every post about blackberry before submit my reply :wink:

Have you opened all UDP ports, and reviewed the Mobile Trouble Shooting Guide?:

http://wowza.com/forums/showthread.php?9967-Mobile-streaming-troubleshooting-guide-(RTSP-RTP-out)&p=52034

And have you tried the mobile example on this device (step 5 in the guide above)?

Richard

I’ve tried the mobile example on my device with succes both http:// and rtsp://

Do you have the application.xml for this example ?

I can try it on my server with the ondemand file.

Backing up a bit:

Can you confirm, both “doesn’t work”, or does one of them work?

Richard

Yes both doesn’t work. But it’s live stream. On mobile.html it’s on demand file.

With a fresh new install.

Wowza Media Server 2 Developer 2.1.2 build24878

I type this on wowza folder :

mkdir application/blackberry

mkdir conf/blackberry

vi conf/blackberry/Application.xml

I paste you Application.xml and i save it

vi conf/VHost.xml

and i edit port number : 1935,554 and i save it

/etc/init.d/WowzaMediaServer restart

I configure my FlashMediaEncoder to :

FMS URL : rtmp://{wowzaip}/blackberry

Stream : blackberry

On my blackberry bold i type : rtsp://{wowzaip}/blackberry/blackberry

And i’ve got the same result… like the last picture can’t connect.

INFO rtsp connect 1324341613 -
INFO stream create - -
WARN server comment blackberry MediaReaderH264.open[1]: java.io.FileNotFoundException: /usr/local/WowzaMediaServer/content/blackberry (No such file or directory)
INFO rtsp describe 1324341613 -

For iptables i flush all rules before lauching wowza :wink:

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
iptables -N LOG_DROP
iptables -A LOG_DROP -j LOG --log-level info --log-prefix '[IPTABLES DROP] : '
iptables -A LOG_DROP -j DROP

So this application.xml work for “on demand” file? But it’s not possible to create a live stream and play on blackberry bold ?

Video

Format : H.264

Frame Rate: 24.00

Audio

Format : MP3

Channels : Mono

Sample Rate : 44100 Hz

Bit Rate : 56 Kbps

On your Application.xml it was default i change by live :

When i launch WowzaDir/bin/.startup

WARN server comment - ApplicationInstance.setHTTPStreamerList[blackberry/definst]: HTTPStreamer is not valid: sanjosestreaming

Successfully tested the live streaming for Blackberry Torch 9800.

The encoder is Adobe Flash Media Live Encoder 3.2 with the MainConcept AAC plug-in installed (v. 1.0.6).

Video:

Format: H.254

Profile: Baseline

Level: 3.1

Keyframe frequency: 4 sec

Frame rate: 15 fps

Size: 240x180

Bit rate: 200 kbps

Audio:

Format: AAC

Channels: Mono

Sample rate: 22050 Hz

Bit rate: 48 Kbps

Wowza Media Server 2 Perpetual 2.2.3 build26454

Successfully tested the live streaming with above settings for Blackberry 9700, Apple iPad, iPod Touch, and iPhone.

Successfully tested live streaming via RTSP through port 554 to Samsung Galaxy Captivate