Wowza Community

TS to TS transcode

Does the stream name group (ngrp:) actually work? You indicated that everything actually works. These are WARN lines, one indicates the group will be delayed.

You assign video to another port, skipping at least one. There are examples here:

https://www.wowza.com/docs/how-to-use-vlc-as-a-live-stream-encoder-with-wowza-media-server-mpeg-ts

Richard

It would be information obtained from the stream. Is it working, or not working?

Richard

Jérôme,

Let’s reset and figure this out. What is the encoder and encoder settings? Have you tried FMLE?

Are you using the default transrate.xml or transcode.xml template? Or have you modified or made a custom template?

Do this:

  1. Take screen shot(s) of the encoder as necessary to show all settings.

  2. Stop Wowza, delete or rename the current access log, then restart Wowza and run through testing.

  3. Zip up and send conf and transcoder folders along with current access and error logs and encoder screen shots to support@wowza.com. Include a link to this thread for reference.

Please be sure that logging level is INFO (which is default) and that the configuration files you send are consistent with the testing that is logged, not changed after testing. We need a clear and accurate picture.

Richard

Multicast is always done through your default GW/route.

Try:

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth1

Changing eth1 to the NIC you want to have multicast on.

If successfull - please also put the line in your rc.local or equivalent so it’s kept through reboots.

–Joe.

Richard,

big thank for your answer.

I did not precise my will but as you understood my incoming streams are multicast and I want to regenerate multicast as well.

Why is it mandatory to use a RTSP client to be able to play the resulting stream then ?

Thanks

Jerome

Richard,

many thanks.

Jerome

Hi Richard,

coming back to our discussion, can you precisely confirm if it is possible to generate a multicast stream with a multicast stream source that has been passed through WoWza transcoder ?

Here are the steps :

source : MPE2-TS multicast stream

=> WoWza transcoder to generate H264

=> WoWza server to generate H264 TS-encapsulated multicast stream

Is this right ? Is there another way to manage this ?

Thanks

Jérôme

Richard,

I went through the tutorial and the manuals but I do not see how to concretely output a multicast stream, the only reference to MPEG-TS is when using the TS Wrapper :

forceMPEGTSOut

true

Boolean

rtpWrapMPEGTS

true

Boolean

and it is not mentionned a multicast IP address or how to play the output generated stream.

Thanks

Jérôme

Richard,

I am currently testing multicast publish add-on.

I would like to set up a multicast output like this one (“multicastmap.txt” file) :

myStream={name:myStream,stream:225.1.1.1:10000,ttl:63,isRTPWrapped:false}

but the add-on does not take these parameters, instead it takes the ones from “Applications.xml” file. (I try to open the result with VLC and it displays nothing although it reads something).

I don’t know how to make it working passing thourgh “multicastmap.txt” parameters. In the multicast publish add-on manual it is said :

“When a new stream is started, the multicast publish module will search for the stream name in this map file. If there is a match the stream will used the define multicast destination address or addresses.”

So how to make the matching ?

Thanks

Jérôme

Richard,

thanks it is clearer now.

Here are the logs of my Wowza server now :

INFO server comment - ModuleMulticastPublish.startStream[live/definst]: {RTPDestination: name: “mystream”, stream: 225.1.1.1:10000, ttl: 63, isRTPWrapped: false}

INFO stream create - -

INFO server comment - MulticastTransport.bind[live/definst]: 225.1.1.1/10000

INFO server comment - MulticastTransport.bind[live/definst]: 225.1.1.1/10001

So, now the file multicastmap.txt is used but I can not understand why it still generates 2 other streams separating video and audio.

BTW when I try to play 225.1.1.1:10000 with VLC I get only audio (seen in codecs information/details).

Thanks for your feedback

Jérôme

Richard,

I made a step ahead : I transcode now my mpegts.stream into mpegts.stream_720p and try to publish mpegts.stream_720p.

Here is my multicastmap.txt file configuration :

#mpegts.stream={name:mystream,stream:225.1.1.1:10000,ttl:63,isRTPWrapped:false}

mpegts.stream_720p={name:mystream720p,stream:225.1.1.10:10000,ttl:63,isRTPWrapped:false}

When I start the process I get this :

INFO server comment - LiveStreamPacketizerCupertino.handlePacket[live/definst/mpegts.stream_720p]: Video codec:H264 isCompatible:true

INFO server comment - LiveStreamPacketizerCupertino.handlePacket[live/definst/mpegts.stream_720p][avc1.77.31]: H.264 (Video may not be playable on older iPhone and iPod touch devices where Baseline/Level 3.0 or lower is required) Video info: {H264CodecConfigInfo: profile: “Main”, level: 3.1, frameSize: 960x720, displaySize: 960x720, PAR: 1:1, frameRate: 25.0}

INFO server comment - TranscoderStreamNameGroup.addInternal[live/definst/mpegts.stream]: Add name group: mpegts.stream_all

INFO server comment - ModuleMulticastPublish.startStream[live/definst]: {RTPDestination: name: “mystream720p”, stream: 225.1.1.10:10000, ttl: 63, isRTPWrapped: false}

INFO stream create - -

INFO server comment - MulticastTransport.bind[live/definst]: 225.1.1.10/10000

INFO stream play mpegts.stream_720p -

INFO server comment - MulticastTransport.bind[live/definst]: 225.1.1.10/10001

(still 2 multicast instances !!) but unfortunately I can not get anything when trying to read 225.1.1.10 with VLC.

Thanks for your help.

Jérôme

Richard,

that is exactly what I did (1st step) : I tried to make multicastpublish work but I can get only audio.

**

mpegts.stream={name:mystream,stream:225.1.1.1:10000,ttl:63,isRTPWrapped:false}

**

Here are the logs of my Wowza server :

INFO server comment - ModuleMulticastPublish.startStream[live/definst]: {RTPDestination: name: “mystream”, stream: 225.1.1.1:10000, ttl: 63, isRTPWrapped: false}

INFO stream create - -

INFO server comment - MulticastTransport.bind[live/definst]: 225.1.1.1/10000

INFO server comment - MulticastTransport.bind[live/definst]: 225.1.1.1/10001

Have you got an idea why :

  • I get 2 streams (225.1.1.1:10000 and 225.1.1.1:10001)

  • I can get only audio with VLC when I try udp://@225.1.1.10000

Once this solved I will go to transcoding and multicastpublishing of transcoded stream.

Thanks

Jérôme

Richard,

have you got an idea of the issue ?

We are stuck in the middle of a project at this time and we need to make it work.

Thanks in advance

Jérôme

Richard,

coming back to our project.

  • content of mpegts.stream is udp://225.1.1.8:1234, it is a MPEG2-TS multicast stream

  • it plays inder VLC with audio PID (mpga) and video PID (mpgv)

Here are the logs when I try to make it pass thourg MulticastPublish add-on :

INFO server comment - MulticastPublishAddressMapper.loadMapFile: entries:1

INFO application app-start definst live/definst

INFO server comment - RTPMediaCaster.create[16200795]

INFO server comment - RTPMediaCaster.init[16200795]

INFO server comment - RTPMediaCaster.Reconnector[16200795:live/definst:mpegts.stream]: start: 1

INFO server comment - RTPSessionDescriptionDataProviderBasic.getStreamInfo[live/definst]: URI: udp://225.1.1.8:1234

INFO server comment - HTTPStreamManager.onHTTPRequest: Publish stream successfully started [live/definst]: flv:mpegts.stream

INFO stream create - -

INFO stream publish mpegts.stream -

INFO server comment - ModuleMulticastPublish.onStreamPublish[live/definst]: mpegts.stream

INFO server comment - MulticastTransport.bind[live/definst]: 225.1.1.8/1234

INFO server comment - MulticastTransport.firstPacket: 225.1.1.8/1234

INFO server comment - RTPMediaCaster.Reconnector[16200795:live/definst:mpegts.stream]: done: 1

INFO server comment - RTPDePacketizerMPEGTS.handleRTPPacket: IMPORT: programID[prg:0x201,filter:none]

INFO server comment - RTPDePacketizerMPEGTS.handleRTPPacket: IMPORT: videoPID[prg:0x201,pid:0x78,filter:none]: streamType:MPEG2:2

INFO server comment - RTPDePacketizerMPEGTS.handleRTPPacket: IMPORT: audioPID[prg:0x201,pid:0x82,filter:none]: streamType:MP3:3 audioLanguage:fra

INFO server comment - RTPDePacketizerMPEGTS.handleRTPPacket: INGORE: unkwnPID[prg:0x201,pid:0x91,filter:none]: streamType:6

WARN server comment - LiveStreamTranscoder.isTranscoderAvailable: Transcoder is not available for your platform: platform:linux architecture:32

INFO server comment - ModuleMulticastPublish.startStream[live/definst]: {RTPDestination: name: “myStream”, stream: 225.1.0.18:1234, ttl: 63, isRTPWrapped: false}

INFO stream create - -

INFO server comment - MulticastTransport.bind[live/definst]: 225.1.0.18/1234

INFO stream play mpegts.stream -

INFO server comment - MulticastTransport.bind[live/definst]: 225.1.0.18/1235

^CINFO vhost vhost-stop defaultVHost -

INFO application app-stop definst live/definst

INFO server comment - RTPMediaCaster.shutdown[16200795:live/definst:mpegts.stream]: mpegts.stream

INFO server comment - RTPMediaCaster.disconnect[16200795:live/definst:mpegts.stream]

INFO server comment - RTPMediaCaster.closeRTPSession[16200795:live/definst:mpegts.stream]

INFO server comment - MulticastTransport.unbind[live/definst]: 225.1.1.8/1234 sent:0 recv:88000

INFO stream unpublish mpegts.stream -

INFO server comment - ModuleMulticastPublish.onStreamUnPublish[live/definst]: mpegts.stream

INFO server comment - ModuleMulticastPublish.stopStream[live/definst]: {RTPDestination: name: “myStream”, stream: 225.1.0.18:1234, ttl: 63, isRTPWrapped: false}

INFO server comment - MulticastTransport.unbind[live/definst]: 225.1.0.18/1234 sent:6083 recv:0

INFO server comment - MulticastTransport.unbind[live/definst]: 225.1.0.18/1235 sent:0 recv:0

As a reminder here is my multicastmap.txt file :

mpegts.stream={name:myStream,stream:225.1.0.18:1234,ttl:63,isRTPWrapped:false}

When I try to play 225.1.0.18:1234 under VLC it says it is a mpga stream (audio only). 225.1.0.18:1235 issues nothing.

I don’t understand because there should be only one stream embedding both audio and video as described in the documentation.

Thanks for your help

Jérôme

Richard,

thank you for your answer.

So if I take a multicast MPEG2-TS stream as a source, pass it through transcoder generating a H264 stream and then to multicastpublish, will it issue a valid audio/video multicast stream ?

Thanks

Jérôme

Richard,

thanks for your answer.

I will check and let you know.

regards

Jérôme

Richard,

I face now a new issue regarding my live incoming stream :

here are the logs :

INFO application app-start definst live/definst

INFO server comment - RTPMediaCaster.create[1526608668]

INFO server comment - RTPMediaCaster.init[1526608668]

INFO server comment - RTPMediaCaster.Reconnector[1526608668:live/definst:mpegts.stream]: start: 1

INFO server comment - VHost.startStartupStreams: Stream successfully started [live/definst]: flv:mpegts.stream

INFO server comment - Wowza Media Server is started!

INFO server comment - RTPSessionDescriptionDataProviderBasic.getStreamInfo[live/definst]: URI: udp://239.1.1.8:5500

INFO stream create - -

INFO server comment - MulticastTransport.bind[live/definst]: 239.1.1.8/5500

INFO stream publish mpegts.stream -

INFO server comment - RTPMediaCaster.Reconnector[1526608668:live/definst:mpegts.stream]: done: 1

INFO server comment - RTPMediaCaster.streamTimeout[1526608668:live/definst:mpegts.stream]: timeout:24000 diff:24011 reason:101

INFO server comment - RTPMediaCaster.resetConnection[1526608668:live/definst:mpegts.stream]:

INFO server comment - RTPMediaCaster.closeRTPSession[1526608668:live/definst:mpegts.stream]

INFO server comment - MulticastTransport.unbind[live/definst]: 239.1.1.8/5500 sent:0 recv:0

INFO stream unpublish mpegts.stream -

INFO stream destroy mpegts.stream -

INFO server comment - RTPMediaCaster.Reconnector[1526608668:live/definst:mpegts.stream]: start: 2

INFO server comment - RTPMulticastListener.run(stop)

INFO server comment - RTPSessionDescriptionDataProviderBasic.getStreamInfo[live/definst]: URI: udp://239.1.1.8:5500

INFO stream create - -

INFO server comment - MulticastTransport.bind[live/definst]: 239.1.1.8/5500

You will see that there are some regular reconnections from RTPMediaCaster preceeded by RTPMediaCaster.streamTimeout for Reason 101. What is this reason ?

I made a wireshark capture of the incoming stream and I can’t see any “hole” in it. But I can see regular IGMP reports from Wowza without preceeding IGMP queries.

Thanks for your help.

Jérôme

Hi Richard,

I upgraded to version 3.0.4 and I get the same result :

INFO application app-start definst live/definst

INFO server comment - RTPMediaCaster.create[79042621]

INFO server comment - RTPMediaCaster.init[79042621]

INFO server comment - RTPMediaCaster.Reconnector[79042621:live/definst:mpegts.stream]: start: 1

INFO server comment - VHost.startStartupStreams: Stream successfully started [live/definst]: flv:mpegts.stream

INFO server comment - Wowza Media Server is started!

INFO server comment - RTPSessionDescriptionDataProviderBasic.getStreamInfo[live/definst]: URI: udp://239.1.1.8:5500

INFO stream create - -

INFO stream publish mpegts.stream -

INFO server comment - MulticastTransport.bind[live/definst]: 239.1.1.8/5500

INFO server comment - RTPMediaCaster.Reconnector[79042621:live/definst:mpegts.stream]: done: 1

INFO server comment - RTPMediaCaster.streamTimeout[79042621:live/definst:mpegts.stream]: timeout:12000 diff:12005 reason:101

INFO server comment - RTPMediaCaster.resetConnection[79042621:live/definst:mpegts.stream]:

INFO server comment - RTPMediaCaster.closeRTPSession[79042621:live/definst:mpegts.stream]

INFO server comment - MulticastTransport.unbind[live/definst]: 239.1.1.8/5500 sent:0 recv:0

INFO stream unpublish mpegts.stream -

INFO stream destroy mpegts.stream -

INFO server comment - RTPMediaCaster.Reconnector[79042621:live/definst:mpegts.stream]: start: 2

INFO server comment - RTPMulticastListener.run(stop)

INFO server comment - RTPSessionDescriptionDataProviderBasic.getStreamInfo[live/definst]: URI: udp://239.1.1.8:5500

INFO stream create - -

INFO server comment - MulticastTransport.bind[live/definst]: 239.1.1.8/5500

INFO stream publish mpegts.stream -

INFO server comment - RTPMediaCaster.Reconnector[79042621:live/definst:mpegts.stream]: done: 2

INFO server comment - RTPMediaCaster.streamTimeout[79042621:live/definst:mpegts.stream]: timeout:12000 diff:12005 reason:101

INFO server comment - RTPMediaCaster.resetConnection[79042621:live/definst:mpegts.stream]:

INFO server comment - RTPMediaCaster.closeRTPSession[79042621:live/definst:mpegts.stream]

INFO server comment - MulticastTransport.unbind[live/definst]: 239.1.1.8/5500 sent:0 recv:0

INFO stream unpublish mpegts.stream -

INFO stream destroy mpegts.stream -

INFO server comment - RTPMediaCaster.Reconnector[79042621:live/definst:mpegts.stream]: start: 3

INFO server comment - RTPMulticastListener.run(stop)

INFO server comment - RTPSessionDescriptionDataProviderBasic.getStreamInfo[live/definst]: URI: udp://239.1.1.8:5500

INFO stream create - -

INFO server comment - MulticastTransport.bind[live/definst]: 239.1.1.8/5500

INFO stream publish mpegts.stream -

INFO server comment - RTPMediaCaster.Reconnector[79042621:live/definst:mpegts.stream]: done: 3

Appreciate your help.

Regards

Jérôme

Richard,

so what is that “Reason 101” ? What does Wowza does not like in that case ? If you let me know this I will be able to investigate.

BTW I checked but there is no firewall set up on the server.

Regards

Jérôme

Richard,

OK now I see the problem : the multicast.bind request uses 127.0.0.1…

I then followed what is in the support pages and I made the following changes :

A. In file “VHost.xml”

75

true

1024000

65000

true

192.168.10.11

0

50

4096

B. in file “Application.xml”


digest

none

senderreport

12000

75

90000

0

0.0.0.0

127.0.0.1

*

multicastInterfaceAddress

192.168.10.11

C. in file “Application.xml”


interleave

multicastInterfaceAddress

192.168.10.11

But it does not modify Wowza’s behaviour.

Maybe 127.0.0.1 is hardly specified somewhere…?

Thanks for your feedback.

Jérôme