Can someone tell me what I am supposed to do about these messages in the mediastreamvalidtor? The video plays fine on the iphone and everywhere else for that matter consisting of a single image video at 1fps + 44Kb audio so I am really not sure where the 201Kbps segment bitrate is coming from. My server version is
Wowza Media Server 2 Perpetual 2.1.2 build24878
ERROR: Invalid media segment: The validator helper exited due to a fatal error: failed to create format reader: [errno: -12847] format reader file not recognized.
5: media_1.ts?wowzasessionid=1642790267
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ERROR: Invalid media segment: The validator helper exited due to a fatal error: failed to create format reader: [errno: -12847] format reader file not recognized.
7: media_2.ts?wowzasessionid=1642790267
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ERROR: Invalid media segment: The validator helper exited due to a fatal error: failed to create format reader: [errno: -12847] format reader file not recognized.
9: media_3.ts?wowzasessionid=1642790267
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ERROR: Invalid media segment: The validator helper exited due to a fatal error: failed to create format reader: [errno: -12847] format reader file not recognized.
11: media_4.ts?wowzasessionid=1642790267
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ERROR: Invalid response from the validator helper: a track is missing the 'type' property.
13: media_5.ts?wowzasessionid=1642790267
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WARNING: Media segment duration outside of expected duration by 156.000 % (2.56 vs. 1.00 seconds, limit is 20 %).
13: media_5.ts?wowzasessionid=1642790267
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WARNING: Media segment bitrate outside of target playlist bitrate by 214.863 % (201512 vs. 64000 bps, limit is 10 %).
13: media_5.ts?wowzasessionid=1642790267
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Average segment duration: 2.56 seconds
Playlist target bitrate: 64.00 kbit/s
Average segment bitrate: 201.51 kbit/s (68.24 % of target)
mediastreamvalidator validate --timeout=60 http://192.168.1.22:1935/automulti/myStream/playlist.m3u8
Validating http://192.168.1.22:1935/automulti/myStream/playlist.m3u8 against iPhone OS 3.2.0
Validating child playlist http://192.168.1.22:1935/automulti/myStream/playlist.m3u8?wowzasessionid=955682088 [427.29 kbit/s]
Validating child playlist http://192.168.1.22:1935/automulti/myStream/playlist.m3u8?wowzaaudioonly&wowzasessionid=955682088 [64.00 kbit/s]
WARNING: The playlist should use relative URIs to reduce its size.
--------------------------------------------------------------------------------------------------------------
REPORT FOR CHILD PLAYLIST 'http://192.168.1.22:1935/automulti/myStream/playlist.m3u8?wowzasessionid=955682088'
--------------------------------------------------------------------------------------------------------------
Average segment duration: 10.36 seconds
Playlist target bitrate: 427.29 kbit/s
Average segment bitrate: 430.56 kbit/s (0.76 % of target)
Average segment structural overhead: 39.34 kbit/s (9.14 %)
Video codec: avc1
Video resolution: 320x240 pixels
Video frame rate: 23.97, 23.94, 24.22, 24.04 fps
Average video bitrate: 325.68 kbit/s
H.264 profile: Baseline
H.264 level: 3.0
Audio codec: aac
Audio sample rate: 22050 Hz
Average audio bitrate: 65.54 kbit/s
-----------------------------------------------------------------------------------------------------------------------------
REPORT FOR CHILD PLAYLIST 'http://192.168.1.22:1935/automulti/myStream/playlist.m3u8?wowzaaudioonly&wowzasessionid=955682088'
-----------------------------------------------------------------------------------------------------------------------------
Average segment duration: 10.36 seconds
Playlist target bitrate: 64.00 kbit/s
Average segment bitrate: 65.51 kbit/s (2.31 % of target)
Audio codec: aac
Audio sample rate: 22050 Hz
I used FMLE as the encoder.
I would double check to be sure you put all the properties in all the right places. Here is my 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>live</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>cupertinostreamingpacketizer</LiveStreamPacketizers>
<!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
<Properties>
</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>digest</PublishMethod>
<PlayMethod>digest</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 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>
<MediaWriter>
<!-- Properties defined here will override any properties defined in conf/MediaWriter.xml for any MediaWriter loaded by this applications -->
<Properties>
</Properties>
</MediaWriter>
<LiveStreamPacketizer>
<!-- Properties defined here will override any properties defined in conf/LiveStreamPacketizers.xml for any LiveStreamPacketizers loaded by this applications -->
<Properties>
<Property>
<Name>cupertinoCreateAudioOnlyRendition</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
</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>cupertinoAutoCreateMultibitratePlaylist</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>cupertinoUseCalculatedVideoBitrate</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>cupertinoUseCalculatedAudioBitrate</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>cupertinoDefaultVideoBitrate</Name>
<Value>250000</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>cupertinoMaxCalulatedVideoBitrate</Name>
<Value>0</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>cupertinoDefaultAudioBitrate</Name>
<Value>64000</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>cupertinoMaxCalulatedAudioBitrate</Name>
<Value>64000</Value>
<Type>Integer</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>
I would also be sure to grab the most recent validator. I am running version: 1.1.2
I’m not sure about the Errors , but the Warnings mean you are not providing the required 64kbs version.
If you just have a single stream and are not doing multi-bitrate, you can satisfy the Apple requirements, if the audio track of the stream is 64kbs or less, by using this technique:
The stream has to have a 64kbs audio track for this to work properly and satisfy Apple requirements. If the audio bitrate is higher, then I think it will still extract audio track, but it will be whatever bitrate it is
Zip up your conf and logs folders along with screen shots of all the encoder settings and post that on your web server, then send a link to support@wowza.com. Include a link back to this thread.
Then in the apple validator I get the following for the 64k stream (sample):
WARNING: INF tag with duration 2 seconds or more above the playlist's target duration (10.000 seconds).
246: #EXTINF:16,
~~
WARNING: Media segment bitrate outside of target playlist bitrate by 840.141 % (601690 vs. 64000 bps, limit is 10 %).
5: media_1.ts?wowzasessionid=767856801
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Average segment duration: 14.56 seconds
Playlist target bitrate: 64.00 kbit/s
Average segment bitrate: 600.85 kbit/s (89.35 % of target)
Average segment structural overhead: 54.20 kbit/s (9.02 %)
Video codec: avc1
Video resolution: 640x360 pixels
Video frame rate: 29.97 fps
Average video bitrate: 480.11 kbit/s
H.264 profile: Baseline
H.264 level: 1.3
Audio codec: aac
Audio sample rate: 48000 Hz
Average audio bitrate: 66.54 kbit/s
So it appears to be streaming the video as well as the audio.
For the Full video stream, the validator says:
WARNING: INF tag with duration 2 seconds or more above the playlist's target duration (10.000 seconds).
246: #EXTINF:16,
~~
ERROR: Invalid media segment: The validator helper exited due to a fatal error: failed to parse segment as either an MPEG-2 TS or an ES: error -12971.
5: media_1.ts?wowzasessionid=671812796
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WARNING: Media segment bitrate outside of target playlist bitrate by 17.988 % (640736 vs. 543051 bps, limit is 10 %).
9: media_3.ts?wowzasessionid=671812796
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Average segment duration: 16.64 seconds
Playlist target bitrate: 543.05 kbit/s
Average segment bitrate: 547.14 kbit/s (0.75 % of target)
Average segment structural overhead: 53.98 kbit/s (9.86 %)
Video codec: avc1
Video resolution: 640x360 pixels
Video frame rate: 29.97 fps
Average video bitrate: 426.31 kbit/s
H.264 profile: Baseline
H.264 level: 1.3
Audio codec: aac
Audio sample rate: 48000 Hz
Average audio bitrate: 66.86 kbit/s
Any idea what I may need still to get the 64k stream to be just audio?
Our videos are encoded with 64kbps audio luckily but from the output of the validator it looks like video is also being output in the 64k stream.
Playlist target bitrate: 64.00 kbit/s
Average segment bitrate: 600.85 kbit/s (89.35 % of target)
...
Average audio bitrate: 66.54 kbit/s
Average video bitrate: 480.11 kbit/s
After looking at the configuration closer, I have a vhost configuration where my live application is hosting from and it is set up like the example StreamType=live and all other properties as outlined are set correctly. Still no joy. I am using the 1.1.2 validator.