I have some encoders in my data center sending a multicast stream. I have set up Wowza to pick up that multicast stream with a sdp file per the instructions on this page (https://www.wowza.com/quickstart.html) but I am not able to open the stream remotely with VLC.
In the messages box on VLC I get -
macosx debug: using Snow Leopard AR cookies
macosx debug: notification received in VLC with name VLCOSXGUIInit and object VLCEyeTVSupport
main debug: adding item `rtsp://76.8.60.29:1935/rtplive/ch1.sdp' ( rtsp://76.8.60.29:1935/rtplive/ch1.sdp )
main debug: rebuilding array of current - root Playlist
main debug: rebuild done - 1 items, index -1
main debug: processing request item rtsp://76.8.60.29:1935/rtplive/ch1.sdp node Playlist skip 0
main debug: resyncing on rtsp://76.8.60.29:1935/rtplive/ch1.sdp
main debug: rtsp://76.8.60.29:1935/rtplive/ch1.sdp is at 0
main debug: starting new item
main debug: creating new input thread
main debug: Creating an input for 'rtsp://76.8.60.29:1935/rtplive/ch1.sdp'
main debug: thread (input) created at priority 22 (input/input.c:230)
main debug: thread started
main debug: using timeshift granularity of 50 MBytes
main debug: using timeshift path '/tmp'
main debug: `rtsp://76.8.60.29:1935/rtplive/ch1.sdp' gives access `rtsp' demux `' path `76.8.60.29:1935/rtplive/ch1.sdp'
main debug: creating demux: access='rtsp' demux='' path='76.8.60.29:1935/rtplive/ch1.sdp'
main debug: looking for access_demux module: 1 candidate
macosx debug: input has changed, refreshing interface
main debug: no fetch required for (null) (art currently (null))
live555 debug: DESCRIBE failed with 403: cannot handle DESCRIBE response: RTSP/1.0 403 Forbidden
live555 debug: connection timeout
live555 error: Failed to connect with rtsp://76.8.60.29:1935/rtplive/ch1.sdp
main warning: no access_demux module matching "rtsp" could be loaded
main debug: TIMER module_need() : 1296.388 ms - Total 1296.388 ms / 1 intvls (Avg 1296.388 ms)
main debug: creating access 'rtsp' path='76.8.60.29:1935/rtplive/ch1.sdp'
main debug: looking for access module: 1 candidate
main debug: net: connecting to 76.8.60.29 port 1935
main debug: connection: Operation now in progress
main debug: connection succeeded (socket = 10)
access_realrtsp debug: rtsp connected
access_realrtsp warning: only real/helix rtsp servers supported for now
main warning: no access module matching "rtsp" could be loaded
main debug: TIMER module_need() : 1079.523 ms - Total 1079.523 ms / 1 intvls (Avg 1079.523 ms)
main debug: waitpipe: object killed
main error: open of `rtsp://76.8.60.29:1935/rtplive/ch1.sdp' failed: (null)
main debug: thread ended
main debug: dead input
main debug: changing item without a request (current 0/1)
main debug: nothing to play
macosx debug: input has stopped, refreshing interface
main debug: TIMER input launching for 'rtsp://76.8.60.29:1935/rtplive/ch1.sdp' : 2404.744 ms - Total 2404.744 ms / 1 intvls (Avg 2404.744 ms)
My sdp file is -
v=0
o=ch1 123456765 17627676392 IN IP4 192.168.2.x
s=Channel1
c=IN IP4 239.1.1.1/127
a=recvonly
a=type:broadcast
m=video 20010 RTP/AVP 33
a=rtpmap:33 MP2T/90000
This same sdp file and VLC work with Darwin Streaming Server so I am confident neither are the problem.
I have opened 8086 and 1935 on our firewall.
And the server output looks like this -
INFO stream unpublish ch1.sdp -
INFO stream destroy ch1.sdp -
INFO server comment - RTPMediaCaster.Reconnector: start
INFO server comment - RTPSessionDescriptionDataProviderBasic.getStreamInfo: /usr/local/WowzaMediaServer/content/ch1.sdp
INFO stream create - -
INFO stream publish ch1.sdp -
INFO server comment - RTPMediaCaster.Reconnector: stop
INFO server comment - MulticastTransport.bind: 239.1.1.1/20010
INFO server comment - RTPMulticastListener.run(stop)
INFO server comment - RTPMediaCaster.resetConnection:
INFO stream unpublish ch1.sdp -
INFO stream destroy ch1.sdp -
INFO server comment - RTPMediaCaster.Reconnector: start
INFO server comment - RTPSessionDescriptionDataProviderBasic.getStreamInfo: /usr/local/WowzaMediaServer/content/ch1.sdp
INFO stream create - -
INFO stream publish ch1.sdp -
INFO server comment - MulticastTransport.bind: 239.1.1.1/20010
INFO server comment - RTPMediaCaster.Reconnector: stop
INFO server comment - RTPMulticastListener.run(stop)
If it was working properly you should see a firstPacket log message right after the bind. The firstPacket log message would indicate that we received the first multicast packet. I suspect that for some reason the machine running Wowza is not receiving the multicast packets.
You may want to try pulling the streaming using the raw UDP port rather then an SDP file. Those instructions are here:
https://www.wowza.com/docs/how-to-publish-and-play-a-live-stream-mpeg-ts-based-encoder
Charlie
Again, if you are just sending MPEG-TS then look at these instructions:
https://www.wowza.com/docs/how-to-publish-and-play-a-live-stream-mpeg-ts-based-encoder
It does not involve an SDP file. You will need to use the UDP url in the mpegts.stream file:
udp://239.1.1.1:20010
You should be able to use the tool tcpdump to test to see if you are getting multicast packets.
Charlie
Yes, multicast will work with the same instructions. There are just so many permutations and combinations it is tough to reasonably cover all of them in a set of tutorials.
Charlie
So what is the problem? It looks like the current logs indicate that the MPEG-TS stream contains a video stream we recognize but if there is an audio stream it is not AAC. Do you see a video stream but do not hear audio?
Charlie
I know im an ignorant when comes to this, but is it possible that the following paragraph of yours is having the issue that instead of “none” you have “nano”?? and the system is and wont recognize this method?
digest
nano
senderreport
12000
*
-Hope this helps.
I know im an ignorant when comes to this, but is it possible that the following paragraph of yours is having the issue that instead of “none” you have “nano”?? and the system is and wont recognize this method?
digest
nano
senderreport
12000
*
-Hope this helps.
That’s absolutely the case; you won’t be able to view the stream at all with a playmethod of “nano” - that needs to be “none”.
I can’t send to the stream to Wowza only as it needs to go out to STBs and DSS as well as Wowza.
Is there a test I can run to see if the machine is getting the multicast packets?
Network wise the Wowza box is configured the same as my DSS box, and I am using the same sdp file as the DSS box (other then the IP address change).
Here is my application.xml in case I did not configure something right-
<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, cupertinostreamingrepeater, smoothstreamingrepeater -->
<LiveStreamPacketizers>cupertinostreamingpacketizer,smoothstreamingpacketizer</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>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>nano</PlayMethod>
</Authentication>
<!-- RTP/AVSyncMethod. Valid values are: senderreport, systemclock, rtptimecode -->
<AVSyncMethod>senderreport</AVSyncMethod>
<MaxRTCPWaitTime>12000</MaxRTCPWaitTime>
<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>
<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>
<Property>
<Name>smoothStreamingMediaMajorVersion</Name>
<Value>2</Value>
<Type>Integer</Type>
</Property>
</Application>
</Root>
Thanks.
In those instructions I read “8. # Configure the MPEG-TS based encoder to send a live to the IP address of the server running Wowza Server using port 10000” which means I cannot not use this method being that out encoders feed other sources, one of them having much higher priority then Wowza.
I did not know I could use a multicast address instead. I will give that a shot.
Yea I saw that as soon as I posted it but even after fixing it I haven’t been able to get the stream. I ended up started from scratch but still nothing. I am sure it is a dumb error on my part but I can’t figure out what.
After fixing that typo I am getting
Configure logging: file:///usr/local/WowzaMediaServer/conf/log4j.properties
INFO server server-start Wowza Media Server 2 Developer 2.0.0 build22912 -
INFO server comment - Serial number: XXXXX-XXXXX-XXXXX-XXXXX-XFDCJ
INFO server comment - Maximum connections: 10
INFO server comment - Hardware Available Processors: 2
INFO server comment - Hardware Physical Memory: 1846MB/1996MB
INFO server comment - Hardware Swap Space: 5843MB/5843MB
INFO server comment - Max File Descriptor Count: 1024
INFO server comment - Open File Descriptor Count: 37
INFO server comment - OS Name: Linux
INFO server comment - OS Version: 2.6.31-14-generic-pae
INFO server comment - OS Architecture: i386
INFO server comment - Java Name: Java HotSpot(TM) Server VM
INFO server comment - Java Vendor: Sun Microsystems Inc.
INFO server comment - Java Version: 1.6.0_15
INFO server comment - Java VM Version: 14.1-b02
INFO server comment - Java Spec Version: 1.6
INFO server comment - Java Home: /usr/lib/jvm/java-6-sun-1.6.0.15/jre
INFO server comment - Java Max Heap Size: 739MB
INFO server comment - Java Architecture: 32
INFO server comment - CMDInterface now listening: [any]:8083
INFO server comment - _defaultVHost_ home directory: /usr/local/WowzaMediaServer
INFO vhost vhost-start _defaultVHost_ -
INFO vhost comment _defaultVHost_ Bind attempt ([any]:1935)
INFO vhost comment _defaultVHost_ Bind successful ([any]:1935)
INFO vhost comment _defaultVHost_ Bind attempt ([any]:8086)
INFO vhost comment _defaultVHost_ Bind successful ([any]:8086)
INFO application app-start _definst_ rtplive/_definst_
INFO server comment - RTPMediaCaster.create
INFO server comment - RTPMediaCaster.init
INFO server comment - RTPMediaCaster.Reconnector: start
INFO server comment - RTPSessionDescriptionDataProviderBasic.getStreamInfo: URI: udp://239.2.2.2:20020
INFO server comment - HTTPStreamManager.onHTTPRequest: Publish stream successfully started [rtplive/_definst_]: ch2.stream
INFO stream create - -
INFO stream publish ch2.stream -
INFO server comment - RTPMediaCaster.Reconnector: stop
INFO server comment - MulticastTransport.bind: 239.2.2.2/20020
INFO server comment - RTPDePacketizerMPEGTS.handleRTPPacket: MPEG-TS over RTP
INFO server comment - MulticastTransport.firstPacket: 239.2.2.2/20020
INFO server comment - RTPDePacketizerMPEGTS.handleRTPPacket: videoPID: 0x100
started with a new app.xml file and got it working. now to get one of the flash players to work.
thanks