Wowza Community

TS to TS transcode

Hi,

I would like to transcode or transrate MPEG-TS streams into MPEG-TS streams, the only part that will be changed will then be either codec itself (MPEG2 to H264) or bitrate. The result should then be a MPEG-TS stream. Is it possible with Wowza Transcoder and how to set it up ?

Thanks

Jerome

Jerome,

You can use this addon along with the Wowza Transcoder:

https://www.wowza.com/docs/how-to-get-multicastpublish-addon-multicast-and-unicast-streams-to-udp-and-rtsp

The last example in the package readme.html:

Incoming stream myStream will be published as MPEG-TS to address:

239.1.0.1:10000

myStream={name:myStream,stream:239.1.0.1:10000,isRTPWrapped:false}

The input to Wowza Transcoder is your MPEG-TS stream, the input to Multicast Publish is Wowza transrated stream. The package publishes mpeg-ts stream unicast o

Richard

Jerome,

You can playback the output of the Wowza Transcoder in any client supported by Wowza, no need to involve this addon. The mpeg-ts stream published by Wowza with transcoder source has to be played back in VLC or Quicktime.

Richard

Jérôme,

Yes, each of those things can be done in Wowza, and in that order, assuming the source video codec and audio codec are supported for decode

Video decoding: H.264, MPEG2, MPEG4 Part 2

Audio decoding: AAC, MP3, MPEG 1 Part 1/2, Speex, G.711 (a-law and mu-law)

https://www.wowza.com/docs/how-to-set-up-and-run-wowza-transcoder-for-live-streaming

Richard

Jérôme,

You just need MulticastPublish Addon:

https://www.wowza.com/docs/how-to-get-multicastpublish-addon-multicast-and-unicast-streams-to-udp-and-rtsp

Test playback locally with VLC.

Richard

Jérôme,

You have to publish a stream named “myStream”, or you can start a stream named “myStream” in StreamManager or /conf/StartUpStreams.xml if the source is MediaCaster stream like an IP camera.

Richard

Jérôme,

It’s best to do these things one at a time: figure out multicast with one stream, then do transcoding, then do multicast with each transcoded stream. In any case, if you want to mpegts.stream_720p you need to match it, your file is only matching myStream not myStream_720p. Add a line for myStream_720p.

Richard

(deleted last, was wrong)

I’m not sure. What is the source? What is the contents of mpegts.stream? Does it play in VLC? What does VLC report in Tools > Codec Info?

Richard

@Jérôme,

The video is mpeg2, which is not supported. mpeg2 is supported for decode in the Wowza Transcoder.

@Indur,

Wowza doesn’t mux audio and video. You will have to provide a stream that includes audio and video. Then the MulticastPublish addon can be used to send that to mpegts stream.

Richard

Jerome, also notice that the Wowza Transcoder is not running, it is not supported on 32bit system. You may only need to install 64bit version of Java.

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Choose the 64bit JDK for linux.

Richard

Yes, as long as the audio and video codecs of the source are supported for decode in the Wowza Transcoder

Richard

Jérôme,

UDP ports are probably blocked in your firewall or not mapped in your router. See if you can figure that out, or try setting /conf/[app-name]/Application.xml /MediaCaster Property forceInterleaved to “true”:

<Property>
	<Name>forceInterleaved</Name>
	<Value>true</Value>
	<Type>Boolean</Type>
</Property>

Edit: forceInterleaved has no effect with mpegts source.

What version of Wowza are you running? If you are using Wowza 3.0.4, the default has changed, so the above is not necessary.

Richard

Scratched the forceInterleaved suggestion, which is not relevant in your case.

It’s good to update, but my suggestion is to look at UDP ports. I only noted that forceInterleaved default has changed in 3.0.4.

Richard

Wowza is not connecting to the stream. It looks like UDP ports. You got .bind then timeout lines then .unbind. Typical when UDP ports are blocked:

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

Richard

Again, it appears to be UDP ports. Setting RTPTransportMode to “forceInterleaved” won’t help. Remember I suggested that then scratched the suggestio because forceInterleaved only affects RTSP ingress not UDP. You either have to allow UDP ports in a firewall or perhaps map UDP ports to your Wowza server in a router.

Richard

You can use specific IP by changing /conf/VHost.xml /HostPort /IpAddress from “*” to “[ip-address]”

Richard

Jérôme,

Use the HostPort with /Port “1935”, the port you are using.

Anyway, I’m not sure what that does for you in this case. If you are still seeing this in the log it’s a connectivity problem of some kind, most likely UDP ports not being allowed or mapped.

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

Richard

Try it all locally.

Richard

There are two place to change MulticastInterfaceAddress in VHost.xml. Did you change both?

Richard

Jérôme,

This might be helpful regarding the first WARN line:

https://www.wowza.com/docs/how-to-control-transcoded-video-with-video-encoding-parameters

In the 2nd, it seems that one of the streams in the stream name group has a missing audio codec id. “TranscoderStreamNameGroups#DelayStart.run” indicates that creation of the group is delayed, I guess waiting for the audio codec id.

Outbound multicast video binding to two ports is normal, expected. Notice in the examples the audio port is set 2 ahead of the video port for this reason.

Richard