This is what we have:
1.- Amazon EC2 Instance with Wowza Media Server.
2.- Amazon S3 Bucket with media files arranged in directories.
This is what we need: Stream those files into Android & Blackberry (RTSP), iPod, iPad & iPhone (HTTPS), Web Browser (RTMP). We have tested the videos in all apps directly from Amazon S3 (through HTTP), and they work fine.
For the sake of argument, let’s say:
Bucket name: theBucket
Directory name: theDirectory
Video file: theVideo.mp4
Server Address: theServer.com
So, from what I can glean in these forums:
RTSP = rtsp://theServer.com:1935/vods3/mp4:theBucket/theDirectory/theVideo.mp4
Result: Doesn’t work on Android, works on VLC, works on Blackberry
HTTPS = http://theServer.com:1935/vods3/definst/mp4:theBucket/theDirectory/theVideo.mp4/playlist.m3u8
Result: Doesn’t work.
RTMP =
Streamer: rtmp://theServer.com:1935/vods3/
File: mp4:theBucket/theDirectory/theVideo.mp4
Result: Works on VLC, doesn’t work on JWPlayer nor FlowPlayer
I have gone through all the steps I can find in the forum (which consists of mounting the S3 bucket, adding PlayMethod:none and restarting Wowza) and can’t get it to work. What am I doing wrong here?
You should add definst to the rtsp url also. And to rule out encoding problems, test with the Wowza sample.mp4 file
rtsp://theServer.com:1935/vods3/_definst_/mp4:theBucket/theDirectory/sample.mp4
For RTMP, test with Wowza SimpleVideoStreaming player:
Server: rtmp://theServer.com:1935/vods3/
Stream: mp4:theBucket/theDirectory/sample.mp4
Follow the mobile trouble shooting guide:
https://www.wowza.com/docs/how-to-troubleshoot-rtsp-rtp-playback)
There is a mobile test linked above, and RTSP guide:
https://www.wowza.com/docs/how-to-set-up-an-application-for-rtsp-rtp-streaming
Richard
RTSP streaming to mobile devices is difficult. Not all devices/carriers work. Some work on wifi but not 3g. That’s why this test page is provided. The idea is if you cannot stream from the Wowza rtsp example, it is probably not going to work from your server either.
Some of these devices support Flash 10.1+, so you have the option of doing RTMP or San Jose (Flash HTTP) streaming, which is easier, more reliable and has many more features from security to multi-bitrate streaming.
Richard
Wowza is definitely doing something to the video file when sending it through RTSP. I have tested my video, a random MP4 from the web and the Wowza sample.mp4 and they work in all Androids (Samsung Galaxy S, Samsung Galaxy Tab, Sony Xperia 1100, Motorola Xoom) through regular HTTP, but when sending the same exact videos through RTSP it only works on the Galaxy S and the others give a “video not supported” error.
I don’t know how to fix this since it seems to be something inside Wowza itself.
This is my Application.xml just in case.
<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, sanjosestreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater, sanjosestreamingrepeater -->
<LiveStreamPacketizers></LiveStreamPacketizers>
<Properties>
</Properties>
</Streams>
<!-- HTTPStreamers (separate with commas): cupertinostreaming, smoothstreaming, sanjosestreaming -->
<HTTPStreamers>cupertinostreaming,smoothstreaming,sanjosestreaming</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>digest</PublishMethod>
<PlayMethod>none</PlayMethod>
</Authentication>
<!-- RTP/AVSyncMethod. Valid values are: senderreport, systemclock, rtptimecode -->
<AVSyncMethod>senderreport</AVSyncMethod>
<MaxRTCPWaitTime>12000</MaxRTCPWaitTime>
<IdleFrequency>75</IdleFrequency>
<RTSPSessionTimeout>90000</RTSPSessionTimeout>
<RTSPMaximumPendingWriteBytes>0</RTSPMaximumPendingWriteBytes>
<RTSPBindIpAddress></RTSPBindIpAddress>
<RTSPConnectionIpAddress>0.0.0.0</RTSPConnectionIpAddress>
<RTSPOriginIpAddress>127.0.0.1</RTSPOriginIpAddress>
<IncomingDatagramPortRanges>*</IncomingDatagramPortRanges>
<Properties>
</Properties>
</RTP>
<MediaCaster>
<Properties>
</Properties>
</MediaCaster>
<MediaReader>
<Properties>
<Property>
<Name>randomAccessReaderClass</Name>
<Value>com.wowza.wms.plugin.amazonaws.ec2.mediacache.MediaCacheRandomAccessReaderAmazonEC2</Value>
</Property>
<Property>
<Name>bufferSeekIO</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
</Properties>
</MediaReader>
<MediaWriter>
<Properties>
</Properties>
</MediaWriter>
<LiveStreamPacketizer>
<Properties>
</Properties>
</LiveStreamPacketizer>
<HTTPStreamer>
<Properties>
</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>
<Module>
<Name>ModuleStreamNameAlias</Name>
<Description>ModuleStreamNameAlias</Description>
<Class>com.wowza.wms.plugin.streamnamealias.ModuleStreamNameAlias</Class>
</Module>
</Modules>
<Properties>
<Property>
<Name>aliasMapFileStream</Name>
<Value>${com.wowza.wms.context.VHostConfigHome}/conf/aliasmap.stream.txt</Value>
</Property>
<Property>
<Name>aliasMapFilePlay</Name>
<Value>${com.wowza.wms.context.VHostConfigHome}/conf/aliasmap.play.txt</Value>
</Property>
<Property>
<Name>aliasMapPathDelimiter</Name>
<Value>/</Value>
</Property>
<Property>
<Name>aliasMapNameDelimiter</Name>
<Value>=</Value>
</Property>
<Property>
<Name>aliasMapDebug</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
</Properties>
</Application>
</Root>
I haven’t changed anything else, its a clean Wowza EC2 which I started up this morning.
More information:
From this page:
Direct RTSP URL:
rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov
-
Works on Galaxy 9000
-
Does not work on Galaxy Tab
-
Does not work on Xperia 1100
-
Does not work on Motorola Xoom
Direct HTTP URL to sample file:
https://www.wowza.com/_h264/BigBuckBunny_175k.mov
I am assuming this is always the exact same file, served over different protocols, so it is something with Wowza’s RTSP protocol that’s weird.
Is there a place I can file a bug report with more details?