Wowza Community

Stripping off audio track from RTMP live stream source without transcoding

Hi,

We have multiple sources feeding RTMP to Wowza with audio and video in H.264. We would like to guarantee that Wowza re-streams only video and drops the audio or turns it silent. All re-streaming / playback is HLS only and we would like the HLS clients to not receive any audio from Wowza. We cannot afford to transcode these live streams, so this must be done without any transcoding.

Thanks!

I’m not sure if there is a pure server-side way to do this, but the easiest way is to send messages to the clients, for example to mute their stream, like switching streams in this post

Using netconnection.call on the client and appInstance.broadcastMsg on the server.

Regards,

Salvadore

If additional delay can be accepted, you can use FFmpeg to grab the stream from Wowza and resend after stripping off the audio.

This involves no transcoding, and CPU usage is minimal. (My Core i7 shows 0%)

ffmpeg -i rtmp://wowza.domain:1935/live/withAudio -c copy -map 0:0 -f flv rtmp://wowza.domain:1935/live/noAudio

nirmitv,

I tested with a 30fps stream, roughly 1Mbps.

Wowza 4.0.5, FFmpeg (Windows x64 build) N-69835-g03abafb

I do not know why you are seeing low frame rate, but I would start with the following.

  • Check if FFmpeg version is up to date.

  • Check Wowza configurations. (My server has most settings near default)

  • Check Wowza security settings. (Maybe FFmpeg is just failing with user&pass authentication on publishing)

I’m not sure if there is a pure server-side way to do this, but the easiest way is to send messages to the clients, for example to mute their stream, like switching streams in this post

Using netconnection.call on the client and appInstance.broadcastMsg on the server.

Regards,

Salvadore

Salvadore, thanks for your response. The problem we have is not that the clients are not aware that they need to be muted, we need to guarantee that all clients play muted videos or videos with silent audio tracks. The problem is that the MPMoviePlayer in iOS does not allow us to mute the stream. We also have no control on the sources and we know that they will feed video+audio to Wowza via RTMP.

Hence, any solution that drops the audio track before re-streaming HLS would help. Thanks!

Hi DavidS, that sounded like exactly what I needed.

However, when I tried it, the noAudio stream was super choppy. I also see that the fps and bit rate are very low. The source is 24fps at 1Mbps. I am doing this on a powerful server where not much else is happening, so it should be able to process faster, if there is a way to make ffmpeg do so.

Here is a snapshot of ffmpeg output when this was running:

frame=12236 fps=1.2 q=-1.0 Lsize= 102531kB time=03:07:01.83 bitrate= 74.8kbits/s

video:102291kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.233990%

Thank you again!