【问题标题】:Wowza: Need to stream rtp-live to iphoneWowza:需要将 rtp-live 流式传输到 iphone
【发布时间】:2013-05-07 01:53:45
【问题描述】:

我需要将 rtp-live 流式传输到 iphone。我的频道是在 SDP 文件中配置的。当我从 Flash 播放器请求频道时,我有一个插件,一旦检测到请求,它就会开始将数据流式传输到 Wowza。这样我就不需要发布流了。 当我尝试从 iphone 观看时,由于流未发布,我收到错误消息。如果我从 Flash 播放器观看一个频道,然后尝试从 iphone 观看,那么它可以工作,因为流是自动发布的。如果我停止从 Flash 播放器观看,则无论与 iphone 的活动连接如何,流都会取消发布。

请帮忙

这是我的应用程序.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>

【问题讨论】:

  • 你的问题不是很清楚......“我有一个插件,一旦它检测到请求,就会开始将数据流式传输到 Wowza”,所以它不适用于 iphone,因为你从不调用它iphone的插件,对吧?
  • 忽略插件。我提到它是因为当我使用它时,不需要发布流。这就是我使用 rtp-live 的原因。 rtp-live 在有请求时自动发布流。由于某种原因,当请求由 iphone 发起时它不起作用。

标签: iphone stream live rtp wowza


【解决方案1】:

StreamType rtp-live 仅适用于 flash RTMP。

Flash RTMP clients only

(可选)如果您的应用程序将只流式传输到 Flash RTMP 客户端, 在 [install-dir]/conf/live/Application.xml 中,您可以设置 Streams/StreamType 属性to: &lt;StreamType&gt;rtp-live&lt;/StreamType&gt;

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

将 StreamType 更改为 live,它应该可以工作。

<StreamType>live</StreamType>

【讨论】:

  • 这是插件发挥作用的地方。我不会一直将数据流式传输到 wowza,而只是按需传输。我有 200 个频道,并且提要位于不同的服务器上。当有观看频道插件的请求时,将命令发送到就地开始流式传输到 wowza 的源服务器。我知道它就像中继器,但我们使用自己的协议在服务器之间进行流式传输。这就是我们需要 rtp-live 的原因。我可以发布所有频道,但是 wowza 被他们没有流的日志淹没了。对于 200 个频道,这实际上会终止进程。
  • 好的,明白了...所以我看到的唯一解决方案是解决您向服务器发送请求开始从 iphone 发布流的解决方法,它可以是 http 请求,您可以处理它在服务器端。
  • 谢谢,你读懂了我的想法。我想到了完全相同的解决方案。我只需要保留当前连接的计数,以便在没有人使用它时取消发布流。非常感谢。
  • 多年来用户一直在使用 Wowza StreamingEngine 遇到这个问题,我不明白他们为什么不实施解决方案!这是我的同一个问题不止一次,每个站点都有有限的带宽,我不能只激活我需要的流媒体......我正在寻找解决方法或新的媒体服务器......
猜你喜欢
  • 2013-12-06
  • 1970-01-01
  • 2017-08-11
  • 2019-01-20
  • 2017-09-05
  • 2011-08-29
  • 1970-01-01
  • 1970-01-01
  • 2015-08-01
相关资源
最近更新 更多