MPEG-TS UDP Multicast Woes

So I’ve attempted to set up my broadcast encoder to push 4 Mbit/sec UDP multicast to 224.2.2.2:10000 on my internal network. I configured Wowza following this tutorial https://www.wowza.com/docs/how-to-publish-and-play-a-live-stream-mpeg-ts-based-encoder, entering the multicast IP instead of 0.0.0.0 as indicated. All else is the same. There does not appear to be any output from the Wowza Server (as in http://[wowza-ip-address]:1935/live/mpegts.stream/playlist.m3u8 and http://[wowza-ip-address]:1935/live/mpegts.stream/manifest.f4m do not exist), and I’m at a point where I’m banging my head against a wall here.

Sample output from my logs…

Error log

#Version: 1.0
#Start-Date: 2013-10-14 09:21:34 PDT
#Software: Wowza Media Server 3.6.2 build5334
#Date: 2013-10-14
#Fields: x-severity     x-category      x-event date    time    c-client-id     c-ip    c-port  cs-bytes        sc-bytes        x-duration      x-sname x-stream-id     x-spos  sc-stream-bytes cs-stream-bytes x-file-size     x-file-length   x-ctx   x-comment
ERROR   server  comment 2013-10-14      09:21:34        -       -       -       -       -       0.24    -       -       -       -       -       -       -       -       ServerUtils.loadServerListener: Error creating <ServerListener> (com.wowza.wms.plugin.amazonaws.ec2.env.ServerListenerEC2Variables): java.lang.ClassNotFoundException: com.wowza.wms.plugin.amazonaws.ec2.env.ServerListenerEC2Variables
ERROR   server  comment 2013-10-14      09:21:34        -       -       -       -       -       0.242   -       -       -       -       -       -       -       -       ServerUtils.loadServerListener: Error creating <ServerListener> (com.wowza.wms.plugin.mediacache.impl.MediaCacheServerListener): java.lang.ClassNotFoundException: com.wowza.wms.plugin.mediacache.impl.MediaCacheServerListener
ERROR   server  comment 2013-10-14      09:21:35        -       -       -       -       -       1.035   -       -       -       -       -       -       -       -       JMXConfig: error: java.net.MalformedURLException: Bad URL path: ${com.wowza.amazonaws.ec2.AWSEC2_METADATA_PUBLIC_HOSTNAME}:8084/jndi/rmi://${com.wowza.amazonaws.ec2.AWSEC2_METADATA_PUBLIC_HOSTNAME}:8085/jmxrmi

Access log

2013-10-14      16:09:20        PDT     create  stream  INFO    200     -       -       _defaultVHost_  live    _definst_       0.0     -       80      null    127.0.0.1       rtsp    -       known   1486152010      0       0       1942    0       0       0       mpegts.stream   -       -       -       -       -       null    null    -       null    -
2013-10-14      16:09:20        PDT     comment server  INFO    200     -       RTPDePacketizerMPEGTS.init: Drop incomplete video frames        _defaultVHost_  live    _definst_       24466.224       -       80      null    127.0.0.1       rtsp    -       known   1486152010      0       0       -       -       -       -       -       -       -       -       -       -       -       -       -       null    -
2013-10-14      16:09:20        PDT     comment server  INFO    200     -       MulticastTransport.bind[live/_definst_]: 224.2.2.2/10000        _defaultVHost_  live    _definst_       24466.224       -       80      null    127.0.0.1       rtsp    -       known   1486152010      0       0       -       -       -       -       -       -       -       -       -       -       -       -       -       null    -
2013-10-14      16:09:20        PDT     publish stream  INFO    200     mpegts.stream   -       _defaultVHost_  live    _definst_       0.001   -       80      null    127.0.0.1       rtsp    -       known   1486152010      0       0       1942    0       0       0       mpegts.stream   -       -       -       -       -       null    null    -       null    -
2013-10-14      16:09:20        PDT     comment server  INFO    200     -       RTPMediaCaster.Reconnector[1340818635:live/_definst_:mpegts.stream]: done: 1281 -       -       -       24466.225       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -
2013-10-14      16:09:33        PDT     comment server  INFO    200     -       RTPMediaCaster.streamTimeout[1340818635:live/_definst_:mpegts.stream]: timeout:12000 diff:12003 reason:101      -       -       -       24478.624       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -
2013-10-14      16:09:33        PDT     comment server  INFO    200     -       RTPMediaCaster.resetConnection[1340818635:live/_definst_:mpegts.stream]:        -       -       -       24478.625       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -
2013-10-14      16:09:33        PDT     comment server  INFO    200     -       RTPMediaCaster.closeRTPSession[1340818635:live/_definst_:mpegts.stream] -       -       -       24478.652       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -
2013-10-14      16:09:33        PDT     comment server  INFO    200     -       MulticastTransport.unbind[live/_definst_]: 224.2.2.2/10000 sent:0 recv:0        -       -       -       24478.653       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -
2013-10-14      16:09:33        PDT     unpublish       stream  INFO    200     mpegts.stream   -       _defaultVHost_  live    _definst_       12.43   -       80      null    127.0.0.1       rtsp    -       known   1486152010      0       0       1942    0       0       0       mpegts.stream   -       -       -       -       -       null    null    -       null    -
2013-10-14      16:09:33        PDT     comment server  INFO    200     -       RTPMulticastListener.run(stop)  _defaultVHost_  live    _definst_       24478.654       -       80      null    127.0.0.1       rtsp    -       known   1486152010      0       0       -       -       -       -       -       -       -       -       -       -       -       -       -       null    -
2013-10-14      16:09:33        PDT     destroy stream  INFO    200     mpegts.stream   -       _defaultVHost_  live    _definst_       12.431  -       80      null    127.0.0.1       rtsp    -       known   1486152010      0       0       1942    0       0       0       mpegts.stream   -       -       -       -       -       null    null    -       null    -
2013-10-14      16:09:33        PDT     comment server  INFO    200     -       RTPMediaCaster.Reconnector[1340818635:live/_definst_:mpegts.stream]: start: 1282        -       -       -       24478.655       -       -       -       -       -       -       -       -       -       -       -       -       -       - 

Hello,

You mentioned that you are using the encoder to push the multicast stream pn your internal network.

I see from the logs that your Wowza server is using an Amazon EC2 server.

I don’t think that you will be able to push your multicast stream from your local network to your Amazon server. You should have your Wowza server in the same network as your multicast encoder.

This log line, also indicated that the encoder stream is not reaching Wowza server:

2013-10-14 16:09:33 PDT comment server INFO 200 - RTPMediaCaster.streamTimeout[1340818635:live/definst:mpegts.stream]: timeout:12000 diff:12003 reason:101 -

Zoran

can you create a .zip archive of your Wowza conf/ and logs/ folders and send them to support@wowza.com ?

Please add this forum URL as reference. I would like to take a closer look at your logs.

By the way, do you have more than one network interface configured on your server?

Zoran

Jasonritzke,

I came here to find a solution to such a scenario. Incidentally, your setup is similar to mine except that your Wowza and encoder are on the same network (are you sure?). So let me try to help you…

While your issue looks more of a network and firewall related, make sure your stream being published is H264-mpeg+AAC.

I would do the following to troubleshoot this problem:

  1. Disable firewall on the Debian

  2. Disable firewall on the encoder

  3. Use VLC player to stream to Wowza (debian), use lower bitrates and formats just to test, in your case the publish as UDP legacy to IP 224.2.2.2 and port 10000

  4. Use VLC player on yet another computer on the network to play RTMP stream from Wowza

  5. If this works, there is no issue in networking, the problem is with your encoder or player settings.

  6. If it doesn’t, VLC player on the player side will show some message if it is unable to play, something like “the video is not encoded with MP4” or “Could not connect to server” or something, i don’t recall the exact syntax. That would be your hint to encoding or connectivity problems. You should be able to find a direction from there on.

oh by the way, I had to append mp4 to stream name in jwplayer once, in case you’re using that, i.e, rtmp://YourWowzaIp:1935/streamname/mp4:mpegts.stream

Best wishes

Inderjeet

Hello Zoran,

I do not understand why the Amazon messages are there. I am not using an EC2 server. This is a local hard box on my local LAN. Looking at it right now. Made of metal. IP of 192.168.41.102. All I did was install Wowza from the website and configure it as per the above tutorial (adding my license key of course). Download was from here https://www.wowza.com/downloads/WowzaMediaServer-3-6-2/WowzaMediaServer-3.6.2.deb.bin

Also, to answer your other point, there is SOMETHING reaching the server. Here is the relevant output of tshark from that server.

  2.818709 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.821493 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.824279 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.827061 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.829851 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.832637     192 kb/s -> 48 kHz       MPEG-1 1358 Audio Layer 2
  2.835421 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.838203 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.840990 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.843779 192.168.255.138 -> PTS 4697.025166666 MPEG PES 1358 video-stream
  2.846561 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.849347 192.168.255.138 -> PTS 4697.041844444 MPEG PES 1358 video-stream
  2.852133 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.854918 DTS 4697.058533333 -> PTS 4697.108577777 MPEG PES 1358 video-stream
  2.857701     192 kb/s -> 48 kHz       MPEG-1 1358 Audio Layer 2
  2.860486 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.863273 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.866056 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.868844 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.871628 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.874415 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.877200 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.879987 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.882740     192 kb/s -> 48 kHz       MPEG-1 1358 Audio Layer 2
  2.885556 192.168.255.138 -> PTS 4697.075211111 MPEG PES 1358 video-stream
  2.888342 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.891127 192.168.255.138 -> PTS 4697.091900000 MPEG PES 1358 video-stream
  2.893913 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.896698 DTS 4697.108577777 -> PTS 4697.158633333 MPEG PES 1358 video-stream
  2.899484 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.902270 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.905054     192 kb/s -> 48 kHz       MPEG-1 1358 Audio Layer 2
  2.907840 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.910624 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.913411 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.916196 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp
  2.918978 192.168.255.138 -> 224.2.2.2    UDP 1358 Source port: 2007  Destination port: ndmp

Those are the UDP multicast packets from the encoder.

EDIT: added mpegts.stream contents

udp://224.2.2.2:10000

EDIT AGAIN:

Since it’s not incredibly obvious from the tshark output, here’s the tcpdump output showing destination port:

    192.168.255.138.2007 > 224.2.2.2.10000: [no cksum] UDP, length 1316
    192.168.255.138.2007 > 224.2.2.2.10000: [no cksum] UDP, length 1316
    192.168.255.138.2007 > 224.2.2.2.10000: [no cksum] UDP, length 1316
    192.168.255.138.2007 > 224.2.2.2.10000: [no cksum] UDP, length 1316
    192.168.255.138.2007 > 224.2.2.2.10000: [no cksum] UDP, length 1316
    192.168.255.138.2007 > 224.2.2.2.10000: [no cksum] UDP, length 1316
    192.168.255.138.2007 > 224.2.2.2.10000: [no cksum] UDP, length 1316
    192.168.255.138.2007 > 224.2.2.2.10000: [no cksum] UDP, length 1316
    192.168.255.138.2007 > 224.2.2.2.10000: [no cksum] UDP, length 1316

can you create a .zip archive of your Wowza conf/ and logs/ folders and send them to support@wowza.com ?

Please add this forum URL as reference. I would like to take a closer look at your logs.

By the way, do you have more than one network interface configured on your server?

Zoran

I have sent you the requested files, plus my transcoder folder (JIC).

Yes, I do have two interfaces on this box. As you can see from the file, I did make sure to clarify for Wowza (using the instructions TS to TS transcode and here Listen for a multicast stream on a specific network in, seemingly to no avail.