Live streaming with simultaneous translation into several languages using OBS and Wowza Streaming Engine.

2021-04-18 14:37:00

In the modern world, it is difficult to be successfull if the business is focused on only one local market. Most manufacturers try to convey information to their existing and potential customers in different countries and continents. This, in turn, requires video broadcasts of presentations, reporting events and management requests with simultaneous translation, at least into English, and preferably into several languages, since despite the globalization of the economy, the language barrier has not been canceled.

In this article, we will look on the methodology of video streaming with simultaneous translation using the OBS Studio software encoder and the Wowza Streaming Engine media server. To perform the test we will use a personal computer with OBS v29.0.2 installed and equiped with capture card which ingest the main video stream with the original audio track, and 2 additional audio streams with translation into two languages. Wowza Streaming Engine v4.8.17 is installed on stream receiving server.

When we open the OBS Studio interface we should create a Scene with 3 sources:

  • MainStream - video/audio source stream with the orignal audio track;
  • Language1 - audio only source stream with translation to the 1st additional language;
  • Language2 - audio only source stream with translation to the 2d additional language;
  • The first thing we need to do is to point the mouse above audio mixer area, right-click and select the "Advanced Audio Properties menu".

    On the pane, select the "Audio Tracks" area and mark a track number for each of the sound sources. For each of the sources, there should be only one checkbox selected, otherwise the audio tracks will be mixed.

    As a result of the above actions, we will produce a video stream with three audio stereo tracks, each of tjose is used for one target language. Now the task is to publish output stream to Wowza server by leveraging SRT protocol. "Recording" feature of OBS should be used to perform this action. This is not obvious but OBS supports SRT publishing via ffmpeg which could be invoked via "Start Recording" menu item. To configure SRT output with ffmpeg, you must first open the "Output" item in the "Settings" menu

    And to select the "Recording" tab. In it. Specify the output type "ffmpeg", your URL and UDP port of the Wowza server in the format srt://, the format of the container should be "mpegts". Select the checkbox "All codecs. Even potentially incompatible" and specify the h.264 codecs for video, aac for audio. Click the audio tracks for broadcasting: 1, 2, 3 in our example with three languages. Next, save the setting and close the "Output" screen.

    To start the broadcast, click "Start recording".

    On Wowza server side, you need to receive your SRT stream by starting to receive .stream file with SRT type. This is described in more detail in our article: Publish SRT stream to Wowza. But Wowza accepts SRT stream with the single audio track only. And unlike MediaCaster with RTP type, it is not possible to start receiving the same SRT stream several times (by specifying the PID number of the audio track in the options of the .stream file).

    The module developed by our company will allow you to overcome this limitation PWI Multilingual streaming Addon for Wowza Streaming Engine. When using this module, the input SRT stream with several language tracks will be converted into an HLS stream with the ability to select the translation language in any HLS player.