My goal is to record a video and then upload it without any further manual post production.

Except for the sound which I can do with the push of a button using ffmpeg.

So far I managed to remove the noise and raised the sound level. But my guess is that I am not using it in an optimal way and that someone with experience in that area can easily spot parts of my command I can improve on.

I hope this is the right place to ask:

Are there obvious mistakes I'm making and/or are there things I could change/improve to make the audio sound more professional?

My ffmpeg command so far:

"<path-to>\ffmpeg.exe" -i "<file-path-input>.mp4" 
-af "arnndn=m=bd.rnnn,compand=attacks=0:points=-80/-900|-45/-15|-27/-9|-5/-5|20/20" 
-c:v copy "<file-path-output>.mp4"

The file bd.rnnn was taken from this github repository: GregorR/rnnoise-models.

I recorded a short 1 minute video and uploaded it with the raw audio and with the command above used.

I have a Tonor Q9 USB Mic. The settings are 1 Kanal 16 Bit 48kHz and the Pegel* is set to 86.

*Translation for "Pegel" is "level recorder". I don't know what the english translation on windows is for that setting.

  • Can you please clarify - what is your question? Are you asking how to reduce the number of manual steps? Or are you asking how to remove noise? Or what?
    – Rory Alsop
    Commented Nov 12, 2021 at 17:02
  • 3
    I've yet to meet the sound engineer who would just run an automated process without ever listening to what it's doing. I might use ffmpeg to re-format someone else's finished product, but never as a step in my own production. I think you're looking for a one-button fix. I'm afraid there is no such animal.
    – Tetsujin
    Commented Nov 12, 2021 at 17:10
  • 1
    The choice of processing is dependant on lots of variables - what the recording is intended to achieve, what the playback system is, what conditions the sound was recorded under, and so on. It's impossible to add a one touch solution for this. Commented Nov 15, 2021 at 15:41

2 Answers 2


"My goal is to record a video and then upload it without any further manual post production.".

Try preprocessing live, instead of only postprocessing; that certainly eliminates post.

"So far I managed to remove the noise and raised the sound level.".

Not really, I can still hear the noise.

Your video has simple background noise, possibly from a fan, that becomes prevalent in between louder audio; the settings you are using seem to make only a small improvement in the processed audio version of the video.

Your vibration mount should eliminate some noise, but if you are recording on a laptop low noise recording may not be a design consideration. If you can record cleaner audio using your cellphone's recording application that's a sure sign that the noise originates in your computer. It's easy to connect a USB microphone to your phone, if it is noise free the problem is with the noise level in your computer.

The Recurrent Neural Network noise reduction was originally developed by Jean-Marc Valin. He has some experience with noise cancellation, placing first and second in the Deep Noise Suppression Challenge 2021, using his PercepNet algorithm.

The GregorR rnnoise models may be trained on other noise sources that are ineffective at removing the noise in your case, if it's external.

If it's internal you'll want to use an external recorder; using ffmpeg to mux the audio and video, rather than relying on it to remove the noise using those noise models.

While the above should answer your question, and improve greatly on the software suggested and the results, a simpler solution is a noise gate.

Check out this demo for NoiseTorch. Source available at the NoiseTorch GitHub.

It doesn't actually "remove" the noise, it's just a very effective gate.

Another way to mask the noise is with a silence track or music track that is substituted for the so-called silent (but noisy) parts using ducking.

Your problem isn't audible noise ruining your speech, it's background noise disturbing the silence. Speech is a very effective mask for low noise, but where there's only silence the noise rises to the forefront.


I have found that the arnndn filter often isn't as effective as the anlmdn. My usual workflow uses anlmdn=s=2 which is pretty aggressive for my use case (may not be for yours). Adjusting the other parameters may improve it as well, but for me the default works well enough.

I use asubcut=5 to get rid of wandering DC offset first.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.