h.264 / AAC to WebRTC Transcode?

Is there a way to receive h.264 video and AAC audio via RTMP in to Wowza, then leverage the transcoder to flip the audio to a supported Vorbis / Opus spec and pass through video?

Can the whole stream be made WebRTC ready? If so, what would this config look like? If it works, willing to see what the delay is.

This is for a one-to-few broadcast, no 2-way chat.

Thank you!

Hello,

Thanks for contacting the Wowza Community

Yes, you should be able to do your workflow described. Here are some docs to help you with that

WebRTC
Transcoding

Hope this helps. If any further questions, feel free to contact us.

regards,

Jermaine

Hello,

I have tried to use WebRTC with wowza and now i can stream my video and audio to other client, so i think the server is configured well.

But i need send to wowza a RTMP stream ( from my Wirecast, OBS ) and transcoding it in WebRTC, i have configured a transcoder and the video work but the audio don’t work.

I have tried with Vorbis and Opus for audio transcondig, but everytime the audio is cut …

How i can configure the transcoder ?

Thanks

Moreno

As @Primo Round commented, I also need to send a RTMP stream to Wowza, and have it transcode the audio to OPUS, but even using the latest version (4.7.5), the audio is cut from the stream, with no visible error ou the console output.

Is there a way to achieve this with Wowza Transcoder?

Hello @Caio Farinazzo

Two things I would recommend checking:

  1. Audio needs to be set to 48 kHz on the source before transcoding to Opus (WebRTC Opus requirement).

  2. Audio needs to be 2 channels.

Regards,

JasonT

Hello

So flash can’t be transcoded to Opus in no way with wowza, as it is 16khz and only has 1 channel with Speex. But even streaming from OBS, with the correct values, still gives a transcoded result with no audio.

Hello @Caio Farinazzo

You would need to find an encoder that supports AAC 48 kHz if you need audio.

If you can verify that OBS is creating a 2 channel AAC 48 kHz stream, it should work. I would recommend reviewing mediainfo to see the audio details and also upgrading to Wowza Streaming Engine 4.7.5 as this has all the latest WebRTC fixes / enhancements.

If you need further assistance, please open a support ticket here as there might be some additional properties that could help.

Regards,

JasonT

I can confirm that OBS is sending a stream with audio using AAC 48kHz and that it is Stereo. I have updated Wowza to 4.7.5 before doing the tests. Where would I get the latest WebRTC fixes / enhancements?

Please disregard my last message. I managed to transcode an AAC audio stream to OPUS after I modified the Application.xml, adding the webrtc parameters. Unfortunately, I actually needed to transcode from the Flash audio codec, Speex, to OPUS. On that situation, there’s no way using just Wowza right?

Hello @Caio Farinazzo

They are within the updater. I would recommend opening a support ticket as suggested in the previous reply and we’ll review this stream to see if there’s any additional properties we can suggest to get this stream working for you.

Regards,

JasonT

OBS is creating a 2 channel AAC 48 kHz stream,
i am try it, but not work!

It’s working for us @AWS MT. Let me know if it still doen’t work for you. I can help you in this regard.

Thank you @Kundan Ray for reaching out to help.

Could you please explain hou you achieved it?

Hi Caio_Farinazzo! Can you explain what WebRTC parameters you set in Application.xml to achieve AAC to Opus transcoding? Thanks!

I’ve got the same issue, if I try to transcode AAC to Opus, it says “Audio and video codecs cannot be packetized together in a single stream: audio:OPUS video:H264”.

The message you are seeing in the logs indicates that the opus codec and h264 codec cannot be packetized together for http playback. You know that though, so how to fix that in application xml:

Open [ install-dir ]/conf/[ applicationName ]/ Application.xml in a text editor, and configure the following properties in the <WebRTC> container.

Step 2. * In the <Encode>/ <Audio> container, set <Codec> to Opus, and enter a valid value for Bitrate.

It will look like this:

    <Audio>
     <Codec>Opus</Codec>
     <Bitrate>96000</Bitrate>
     <Resample>
            <Enable>true</Enable>
            <SampleRate>48000</SampleRate>
            <Channels>2</Channels>
     </Resample>
     <Parameters>
     </Parameters>
`.     </Audio>`

Here is the doc.

You can also do this in Engine Manager when you enable the transcoder. You can select Opus if you need to transcode the AAC to Opus in H264 for a webrtc stream.

In the Audio Settings area, select Opus .


Here is the doc on how to enable the transcoder:

Thanks for the answer, Rose. I had all that done, I don’t know what the issue is. Came back today and I can’t reproduce it. Maybe I had just forgotten to restart something after applying the settings.

Hey, if that was it, a lot of us forget to do that too sometimes. I hope it continues to work for you!