Hi,
I need to reproduce a playlist of files.
I’m trying to use Wowza Transcoder using smil file. Is that solution the correct one?
For now I tried the following.
Created an application called “test”, created directory “content/test” and putted in my mp4 (1.mp4,2.mp4,3.mp4) and smil file (playlist.smil).
Here the “playlist.smil”:
<smil>
<head>
</head>
<body>
<stream name="playlist"></stream>
<playlist name="test" playOnStream="playlist" repeat="false" scheduled="2013-07-30 07:45:00">
<video src="mp4:1.mp4" start="0" length="20"/>
<video src="mp4:2.mp4" start="0" length="10"/>
<video src="mp4:3.mp4" start="0" length="-1"/>
</playlist>
</body>
</smil>
When I try to play it, i receive that error with the player founded in “examples/VideoOnDemandStreaming/FlashHTTPPlayer” directory:
The F4M document contains errors URL missing from Media tag
and in log error I got that:
WARN server comment 2013-07-30 11:39:11 - - - - - 0.056 - - - - - - - - HTTPStreamerSanJoseLiveIndex.indexPlaylist[test/definst/smil:playlist.smil]: MediaList is empty.
I use that url to test streaming:
http://[my-wowza-machine-ip]:1935/test/smil:playlist.smil/manifest.f4m
I put here 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/test</StorageDir> <KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir> <!-- LiveStreamPacketizers (separate with commas): cupertinostreamingpacketizer, smoothstreamingpacketizer, sanjosestreamingpacketizer, mpegdashstreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater, sanjosestreamingrepeater, dvrstreamingpacketizer, dvrstreamingrepeater --> <LiveStreamPacketizers>cupertinostreamingpacketizer,sanjosestreamingpacketizer</LiveStreamPacketizers> <!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application --> <Properties> </Properties> </Streams> <Transcoder> <!-- To turn on transcoder set to: transcoder --> <LiveStreamTranscoder>transcoder</LiveStreamTranscoder> <!-- [templatename].xml or ${SourceStreamName}.xml --> <Templates>${SourceStreamName}.xml,transrate.xml</Templates> <ProfileDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/profiles</ProfileDir> <TemplateDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/templates</TemplateDir> <Properties> </Properties> </Transcoder> <DVR> <!-- As a single server or as an origin, use dvrstreamingpacketizer in LiveStreamPacketizers above --> <!-- Or, in an origin-edge configuration, edges use dvrstreamingrepeater in LiveStreamPacketizers above --> <!-- As an origin, also add dvrchunkstreaming to HTTPStreamers below --> <!-- If this is a dvrstreamingrepeater, define Application/Repeater/OriginURL to point back to the origin --> <!-- To turn on DVR recording set Recorders to dvrrecorder. This works with dvrstreamingpacketizer --> <Recorders></Recorders> <!-- As a single server or as an origin, set the Store to dvrfilestorage--> <!-- edges should have this empty --> <Store></Store> <!-- Window Duration is length of live DVR window in seconds. 0 means the window is never trimmed. --> <WindowDuration>0</WindowDuration> <!-- Storage Directory is top level location where dvr is stored. e.g. c:/temp/dvr --> <StorageDir>${com.wowza.wms.context.VHostConfigHome}/dvr</StorageDir> <!-- valid ArchiveStrategy values are append, version, delete --> <ArchiveStrategy>append</ArchiveStrategy> <!-- Properties for DVR --> <Properties> </Properties> </DVR> <TimedText> <!-- VOD caption providers (separate with commas): vodcaptionprovidermp4_3gpp, vodcaptionproviderttml, vodcaptionproviderwebvtt, vodcaptionprovidersrt, vodcaptionproviderscc --> <VODTimedTextProviders>vodcaptionprovidermp4_3gpp</VODTimedTextProviders> <!-- Properties for TimedText --> <Properties> </Properties> </TimedText> <!-- HTTPStreamers (separate with commas): cupertinostreaming, smoothstreaming, sanjosestreaming, mpegdashstreaming, dvrchunkstreaming --> <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 defined here will override any properties defined in conf/RTP.xml for any depacketizers loaded by this application --> <Properties> </Properties> </RTP> <MediaCaster> <RTP> <RTSP> <!-- udp, interleave --> <RTPTransportMode>interleave</RTPTransportMode> </RTSP> </RTP> <!-- 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> </Properties> </LiveStreamPacketizer> <HTTPStreamer> <!-- Properties defined here will override any properties defined in conf/HTTPStreamers.xml for any HTTPStreamer loaded by this applications --> <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>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> <stream name="playlist"></stream> </Application> </Root>
Somebody know how to fix that?
Best regards and thank you.