2013-05-07 2 views
2

Мне нужно транслировать rtp-live на iphone. Мои каналы настроены в файлах SDP. Когда я запрашиваю каналы у Flash-плеера, у меня есть плагин, который запускает потоковые данные в Wowza после обнаружения запроса. Таким образом, мне не нужно публиковать потоки. Когда я пытаюсь смотреть с iphone, я получаю сообщение об ошибке, так как поток не публикуется. Если я смотрю канал с Flash-плеера, а затем попытаюсь посмотреть с iphone, он работает, потому что поток автоматически публикуется. Если я перестаю смотреть с Flash-плеера, поток не публикует независимо от активного подключения к iphone.Wowza: Вам нужно потоковать rtp-live на 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

+0

Игнорируйте подключаемый модуль. Я упомянул об этом, потому что, когда я его использую, нет необходимости публиковать поток. Вот почему я использую rtp-live. rtp-live автоматически публикует поток, когда есть запрос. По какой-то причине это не работает, когда запрос инициируется iphone. – sergman

ответ

1

StreamType РТП-живой работает только для флэш-RTMP.

Flash RTMP clients only 

(Необязательно) Если ваше приложение будет течь только клиентам флэш RTMP, в [установить-Dir] /conf/live/Application.xml, вы можете установить/свойство StreamType Streams to: <StreamType>rtp-live</StreamType>

Учебник: http://www.wowza.com/forums/content.php?38

Измените й e StreamType до в режиме реального времени и он должен работать.

<StreamType>live</StreamType> 
+0

Здесь подключается плагин. Я не передаю данные в wowza все время, но только по требованию. У меня 200 каналов, и канал находится на другом сервере. Когда есть запрос на просмотр команды отправки плагина канала на сервер фида, который на месте начинает переходить на wowza. Я знаю, что это похоже на повторитель, но мы используем собственный протокол для потоковой передачи между серверами. Именно по этой причине нам нужен rtp-live. Я могу публиковать все каналы, но затем wowza переполняется журналами, что у них нет потока. Для 200 каналов это фактически убивает процесс. – sergman

+0

Хорошо, получилось ... так что единственное решение, которое я вижу, - это одна работа вокруг, где вы отправляете запрос на сервер, начинаете публиковать потоковое вещание с iphone, это может быть HTTP-запрос, и вы обрабатываете его на стороне сервера. – fmodos

+0

Спасибо, ты прочитал мой разум. Я думал точно о том же решении. Мне просто нужно сохранить количество текущих подключений, чтобы я не публиковал поток, когда никто его не использовал. Большое спасибо. – sergman