2013-05-07 56 views
2

我需要流rtp生活到iphone。我的频道在SDP文件中配置。当我从Flash播放器请求频道时,我有一个插件,可以在检测到请求后开始向Wowza发送流数据。这样我就不需要发布流。 当我尝试从iPhone观看时,由于未发布流,导致出现错误。如果我从Flash播放器观看频道,然后尝试从iPhone观看,那么它会工作,因为该流是自动发布的。如果我停止观看Flash播放器,则该流将取消发布,而不管与iphone的活动连接。Wowza:需要流rtp生活到iphone

请帮

这是我的application.xml

<Root> 
<Application> 
    <Connections> 
     <AutoAccept>true</AutoAccept> 
     <AllowDomains></AllowDomains> 
    </Connections> 
    <Streams> 
     <StreamType>rtp-live</StreamType> 
     <StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir> 
     <KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir> 
     <LiveStreamPacketizers>cupertinostreamingpacketizer,smoothstreamingpacketizer,sanjosestreamingpacketizer</LiveStreamPacketizers> 
     <Properties> 
     </Properties> 
    </Streams> 
    <Transcoder> 
     <LiveStreamTranscoder></LiveStreamTranscoder> 
     <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> 
     <Recorders></Recorders> 
     <Store></Store> 
     <WindowDuration>0</WindowDuration> 
     <StorageDir>${com.wowza.wms.context.VHostConfigHome}/dvr</StorageDir> 
     <ArchiveStrategy>append</ArchiveStrategy> 
     <Repeater> 
      <ChunkOriginURL></ChunkOriginURL> 
     </Repeater> 

     <Properties> 
     </Properties> 
    </DVR> 

    <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> 
     <!-- Properties defined here will override any properties defined in conf/MediaCasters.xml for any MediaCasters loaded by this applications --> 
     <Properties> 
      <Property> 
       <Name>forceInterleaved</Name> 
       <Value>true</Value> 
       <Type>Boolean</Type> 
      </Property>   
     </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>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> 
+0

你的问题不是很清楚......“我有一个插件,一旦它检测到请求就开始向Wowza发送数据流,所以它不适用于iPhone,因为你从来没有从这个插件调用iPhone,对吧? – fmodos 2013-05-07 07:23:11

+0

忽略该插件。我提到它是因为当我使用它时,不需要发布流。这就是我使用rtp-live的原因。 rtp-live会在有请求时自动发布流。出于某种原因,当请求由iphone发起时,它不起作用。 – sergman 2013-05-07 07:46:28

回答

1

的流类型RTP活仅适用于闪存RTMP。

Flash RTMP clients only 

(可选)如果您的应用程序只会流为Flash RTMP客户, 在[安装目录] /conf/live/Application.xml,您可以设置 流/流类型属性to: <StreamType>rtp-live</StreamType>

教程:http://www.wowza.com/forums/content.php?38

更改日e StreamType到它应该工作。

<StreamType>live</StreamType> 
+0

这是插件开始播放的地方。我不会将数据流式传输到wowza,而只是根据需要。我有200个频道,并且Feed位于不同的服务器上。当有观看频道插件的请求发送命令到饲料服务器的地方开始流式传输到wowza。我知道它就像中继器,但我们使用自己的协议在服务器之间进行流式传输。这就是我们需要rtp-live的原因。我可以发布所有频道,但随后wowza会被他们没有流的日志所覆盖。对于200个通道,这实际上会杀死这个过程。 – sergman 2013-05-07 17:40:11

+0

好吧,知道了......所以我看到的唯一解决方案是一个工作,你向服务器发送请求的地方开始从iPhone发布流,它可以是一个http请求,你可以在服务器端处理它。 – fmodos 2013-05-07 19:54:13

+0

谢谢,您已阅读我的想法。我认为完全一样的解决方案。我只需要保持当前连接的数量,以便在没有人使用它时取消发布流。非常感谢你。 – sergman 2013-05-07 22:44:18