You can do it with FFMPEG outside of Wowza – just combine separate video and audio streams into one new stream for each language you want:
Wowza multiple Live audio with video streaming.
You may also be able to use FFMPEG to combine your video stream and multiple audio streams into one single MPEG-TS stream, then just select different audio tracks for playback with different “.stream” files in Wowza (as described in wifisolution’s second link above). I have not tried this method, though. Instructions for FFMPEG as Wowza MPEG-TS encoder here:
Use FFmpeg to live stream with Wowza Streaming Engine
the latter solution works very well:
- ingest mpeg-ts over udp ==> to wowza
e.g. free solution is to use ffmpeg:
ffmpeg -i input -map 0:0 (encoding parameters for video) -map 0:1 (encoding parameters for audio) language=eng -map 0:2 language=fre (as many -map as audio tracks) -f mpegts udp://[server IP]:[port]?pkt_size=1316
- create stream files for each language specifying the video PID, audio PID or language, with URI: udp://localhost:[port]
The stream files can then be called by a player.
If the player loads a playlist with the streams, one can then select each language.
wowza has options for improving the udp (jitter buffer etc, search for tutorials for mpeg-ts among the articles).
We have devised another solution since we’re not interested in real time applications but rather on the reliability of the streams;
we encode with ffmpeg in tcp.
Then on the server we start an ffmpeg listener per:
ffmpeg -i tcp://[server IP]:[ingest port] -map 0:0 -vcodec copy -map 0:1 -acodec copy (etc for each audio channel) - mpegts udp://localhost:[port indicated in stream files on wowza, may differ from ingest port]?pkt_size=1316
The listener must be started before the encoder.
Since the tcp listener is on the same server as wowza, this minimizes packet loss.