Wowza Community

TS to TS transcode

Richard,

as I told you there is an IP address issue. I have 5 network interfaces on the server.

IGMP report (join) is performed by 127.0.0.1 which clearly is an issue.

So the key point is to be able to specify the right IP address (192.168.10.11 in my case) to perform the IGMP join.

Thanks for your answer.

Regards

Jérôme

Richard,

please specify because in my VHost.xml file I have 2 HostPort definitions (see above), I changed “*” by “192.168.10.11” and it does not change anything. Indeed these IP addresses are used to bind port 1935 and port 8086.

4

*

1935

1

*

8086

I also checked the support pages :

https://www.wowza.com/docs/how-to-listen-for-a-multicast-stream-on-a-particular-network-interface

but the result is the same.

Please advise.

Regards

Jérôme

Richard,

All UDP ports are open.

Here is a tcpdump capture of the IGMP messages :

04:34:06.389959 IP 127.0.0.1 > 239.1.1.8: igmp v2 report 239.1.1.8

That means that WMS is using 127.0.0.1 to send IGMP join messages and this is the reason of the error messages. This address has to be modified somewhere in the configuration files.

Can you tell me where ?

Regards

Jérôme

Richard,

I already modified VHost.xml accordingly :

75

true

1024000

65000

true

192.168.10.11

0

50

4096

but this did not solve the issue.

Please advise.

Jérôme

Joe,

the route for multicast is already permanently specified :

239.0.0.0 192.168.10.1 255.0.0.0 UG 0 0 0 eth1

the issue is not the routing, it resides in the way IP IGMP packet is built because it contains 127.0.0.1 as source IP address.

Regards

Jérôme

Hi Richard,

there was an issue with Ubuntu and the network cards we were using so I went to CentOS which is working now.

Now cinematic follows :

  • source : “mpegts.stream” : 239.1.1.1:5500 (MPEG2TS)

  • transcoded to “mpegts.stream_720p” (H264/AAC)

  • issued to “myStream720p” multicast stream

Here is my multicastmap.txt :

mpegts.stream_720p={name:myStream720p,stream:239.100.1.1:5500,isRTPWrapped:false,TTL:63}

Here are the logs :

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

INFO stream create - -

INFO stream publish mpegts.stream -

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

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

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

INFO server comment - MulticastTransport.firstPacket: 239.1.1.1/5500

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

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

INFO server comment - RTPDePacketizerMPEGTS.handleRTPPacket: IMPORT: audioPID[prg:0x3,pid:0x3ea,filter:none]: streamType:MP3:4 audioLanguage:uknown

INFO server comment - TranscoderSessionNative.loadLibrary: Load transcoder list: /usr/local/WowzaMediaServer/lib-native/linux64/transcoder.list

INFO server comment - LiveStreamTranscoder.init[live/definst/mpegts.stream]: Load transcoder template: file:///usr/local/WowzaMediaServer/transcoder/templates/mpegts.stream.xml

INFO server comment - JNI:TranscoderSession.isCUDAAvailable[defaultVHost:live/definst/mpegts.stream]: NVidia CUDA hardware acceleration is NOT available on Linux

INFO server comment - JNI:TranscoderSession.isQuickSyncAvailable[defaultVHost:live/definst/mpegts.stream]: Intel Quick Sync hardware acceleration is NOT available on Linux

INFO stream create - -

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

INFO stream publish mpegts.stream_720p -

INFO server comment - JNI:TranscoderSession.videoDecoderCreate[defaultVHost:live/definst/mpegts.stream]: Create video decoder: MPEG2: default

INFO transcoder decoder-video-start mpegts.stream {codec:MPEG2, profile:4, level:8, frameSize:544x576, displaySize:768x576, frameRate:25.0}

INFO server comment - JNI:VideoDecoderMP2.updateDecodeInfo[defaultVHost:live/definst/mpegts.stream]: aspect:4x3 frame:544x576 display:768x576 frameRate:25

INFO server comment - JNI:TranscoderSession.videoEncoderAdd[defaultVHost:live/definst/mpegts.stream:720p]: Create video encoder: H.264: default

WARN server comment - JNI:VideoEncoderH264::setDefaults: CPUID vendor:GenuineIntel isMMX:1 isSSE:1 isSSE2:1 isSSE3:1 cpu_opt:6

INFO transcoder encoder-video-start mpegts.stream {name:“720p”, bitrate:1300000, codec:H264, profile:Main, level:3.1, frameSize:960x720, displaySize:960x720, frameRate:25.0}

WARN server comment - TranscoderStreamNameGroups#DelayStart.run[defaultVHost:live/definst/mpegts.stream]: Name group could not be resolved: mpegts.stream_all reason:[bitrateMissing:false videoCodecIdMissing:false audioCodecIdMissing:true sizeMissing:false]

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

INFO stream create - -

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

INFO stream play mpegts.stream_720p -

INFO server comment - MulticastTransport.bind[live/definst]: 239.100.1.1/5501

Everything seems OK but I would like your feedback (especially regarding warnings) and you can see that there are 2 multicast streams generated : 239.100.1.1:5500 and 239.100.1.1:5501 instead of one stream (239.100.1.1:5500).

Thanks for your help.

Jérôme

Richard,

regarding the second warning, I understand now why, even if VLC is detecting a stream, there is nothing within 239.100.1.1:5501, I guess the reason is : "audioCodecIdMissing:true "

But why is it happening and how to fix it ?

2nd question : provided that the below issue is fixed, how could I call (under VLC let’s say) 239.100.1.1:5500 to get both video and audio at the same time ? Indeed 239.100.1.1:5500 displays video without sound, I guess solution should not be so far.

Thanks

Jérôme

Richard,

you mention : "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. "

Who is supposed to give this audio codec id to Wowza ? Is it generated by Wowza itself ?

Thanks

Jérôme

Richard,

actually audio is not working.

from the logs :

INFO server comment - Java Args[6]: -Dcom.wowza.wms.ConfigURL=

INFO server comment - Java Args[7]: -Dcom.wowza.wms.ConfigHome=/usr/local/WowzaMediaServer

INFO server comment - Server runmode: standalone

INFO server comment - Server native.platform: linux

INFO server comment - Server threads[h/t]: 10/10

INFO server comment - CMDInterface now listening: [any]:8083

INFO vhost vhost-start defaultVHost -

INFO server comment - defaultVHost threads[h/t]:120/80 home:/usr/local/WowzaMediaServer

INFO vhost comment defaultVHost Bind attempt ([any]:1935:4)

INFO vhost comment defaultVHost Bind successful ([any]:1935)

INFO vhost comment defaultVHost Bind attempt ([any]:8086:1)

INFO vhost comment defaultVHost Bind successful ([any]:8086)

INFO server comment - ModuleMulticastPublish.onAppStart[live/definst]

INFO server comment - MulticastPublishAddressMapper.init[live/definst]: startingAddress:225.1.1.0:10000 incMode:address

INFO server comment - MulticastPublishAddressMapper.loadMapFile: entries:1

INFO application app-start definst live/definst

INFO server comment - RTPMediaCaster.create[1629818866]

INFO server comment - RTPMediaCaster.init[1629818866]

INFO server comment - RTPMediaCaster.Reconnector[1629818866: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.1:5500

INFO stream create - -

INFO stream publish mpegts.stream -

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

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

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

INFO server comment - MulticastTransport.firstPacket: 239.1.1.1/5500

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

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

INFO server comment - RTPDePacketizerMPEGTS.handleRTPPacket: IMPORT: audioPID[prg:0x3,pid:0x3ea,filter:none]: streamType:MP3:4 audioLanguage:uknown

INFO server comment - TranscoderSessionNative.loadLibrary: Load transcoder list: /usr/local/WowzaMediaServer/lib-native/linux64/transcoder.list

INFO server comment - LiveStreamTranscoder.init[live/definst/mpegts.stream]: Load transcoder template: file:///usr/local/WowzaMediaServer/transcoder/templates/mpegts.stream.xml

INFO server comment - JNI:TranscoderSession.isCUDAAvailable[defaultVHost:live/definst/mpegts.stream]: NVidia CUDA hardware acceleration is NOT available on Linux

INFO server comment - JNI:TranscoderSession.isQuickSyncAvailable[defaultVHost:live/definst/mpegts.stream]: Intel Quick Sync hardware acceleration is NOT available on Linux

INFO stream create - -

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

INFO stream publish mpegts.stream_240p -

INFO server comment - JNI:TranscoderSession.videoDecoderCreate[defaultVHost:live/definst/mpegts.stream]: Create video decoder: MPEG2: default

INFO transcoder decoder-video-start mpegts.stream {codec:MPEG2, profile:4, level:8, frameSize:544x576, displaySize:768x576, frameRate:25.0}

INFO server comment - JNI:VideoDecoderMP2.updateDecodeInfo[defaultVHost:live/definst/mpegts.stream]: aspect:4x3 frame:544x576 display:768x576 frameRate:25

INFO server comment - JNI:TranscoderSession.videoEncoderAdd[defaultVHost:live/definst/mpegts.stream:240p]: Create video encoder: H.264: default

WARN server comment - JNI:VideoEncoderH264::setDefaults: CPUID vendor:GenuineIntel isMMX:1 isSSE:1 isSSE2:1 isSSE3:1 cpu_opt:6

INFO transcoder encoder-video-start mpegts.stream {name:“240p”, bitrate:350000, codec:H264, profile:Baseline, level:1.3, frameSize:320x240, displaySize:320x240, frameRate:25.0}

WARN server comment - TranscoderStreamNameGroups#DelayStart.run[defaultVHost:live/definst/mpegts.stream]: Name group could not be resolved: mpegts.stream_all reason:[bitrateMissing:false videoCodecIdMissing:false audioCodecIdMissing:true sizeMissing:false]

WARN server comment - TranscoderStreamNameGroups#DelayStart.run[defaultVHost:live/definst/mpegts.stream]: Name group could not be resolved: mpegts.stream_mobile reason:[bitrateMissing:false videoCodecIdMissing:false audioCodecIdMissing:true sizeMissing:false]

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

INFO stream create - -

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

INFO server comment - MulticastTransport.bind[live/definst]: 239.100.1.1/5501

INFO stream play mpegts.stream_240p -

I can conclude that incoming stream’s audio codec is MP3 :

INFO server comment - RTPDePacketizerMPEGTS.handleRTPPacket: IMPORT: audioPID[prg:0x3,pid:0x3ea,filter:none]: streamType:MP3:4 audioLanguage:uknown

There are a lots of logs related to video decoding and encoding :

INFO server comment - JNI:TranscoderSession.videoDecoderCreate[defaultVHost:live/definst/mpegts.stream]: Create video decoder: MPEG2: default

INFO transcoder decoder-video-start mpegts.stream {codec:MPEG2, profile:4, level:8, frameSize:544x576, displaySize:768x576, frameRate:25.0}

INFO server comment - JNI:VideoDecoderMP2.updateDecodeInfo[defaultVHost:live/definst/mpegts.stream]: aspect:4x3 frame:544x576 display:768x576 frameRate:25

INFO server comment - JNI:TranscoderSession.videoEncoderAdd[defaultVHost:live/definst/mpegts.stream:240p]: Create video encoder: H.264: default

WARN server comment - JNI:VideoEncoderH264::setDefaults: CPUID vendor:GenuineIntel isMMX:1 isSSE:1 isSSE2:1 isSSE3:1 cpu_opt:6

but none regarding audio

So I can understand that there is a : “audioCodecIdMissing:true” and then I have no audio output.

Where does it come and how to fix that as audio stream does exist from the live input channel and has a format supported by Wowza ?

Thanks

Jérôme

Hi

I’m also interested in how to put video+audio together into one MPEG-TS stream in MulticastPublish add-on (different PID’s).

thanks,

Indur