[FFmpeg-user] Reduce ffmpeg response

Jim DeLaHunt list+ffmpeg-user at jdlh.com
Sun Nov 8 22:40:00 EET 2020

On 2020-11-08 08:42, Jeff England wrote:

> …Developing code in a Linux / Python environment, using Pydub and ffmpeg to
> play .mp3 sound.
> I would like to "quiet" the response from ffmpeg.  I've found a number of
> posts along the lines of
> ffmpeg -hide_banner -loglevel panic.  I'm having difficulty knowing exactly
> where to place
> the ffmpeg -hide_banner -loglevel panic (or the like) command.  I've tried
> it following the
> import AudioSegment
> from pydub.playback statement and in the programming where the sound is
> actually called.
> Any thoughts or guidance is appreciated.

Hello, Jeff, and welcome to the FFmpeg users list. You ask an 
interesting question.

It sounds like you are using the Python module Pydub[1] to do audio 
editing. Pydub offers an API of audio editing actions, it uses Python 
code for the logic to convert those editing actions into calls to FFmpeg 
or libav, and it can call FFmpeg behind the scenes to actually 
manipulate the audio data. It sounds like the FFmpeg invocations 
generate more text on its stdout than you want, and you want to reduce 
the amount of text which FFmpeg puts to its stdout.

I don't know Pydub, but I do know Python and FFmepg, and I have written 
Python code which calls FFmpeg behind the scenes to actually manipulate 
the video data.

An important thing to bear in mind is that Pydub exists in a Python 
environment, and FFmpeg exists outside that environment. You need to be 
clear what is happening in which environment.

In reading the Pydub API docs[2], I see no way to manipulate FFmpeg 
directly. The AudioSegment(…).export() call[3] does have a `parameters` 
keyword argument, which is a list of options for Pydub to include in the 
FFmpeg invocation. The docs says, "These are added to the end of the 
call (in the output file section)." It doesn't say there is a way to put 
those parameters somewhere else. I don't see any other places in the API 
which lets the caller send parameters to the FFmpeg invocation. And of 
course, the Pydub API docs might not be complete.

So, the first question is, which Pydub API call are you using?

Second, in what way do you see the FFmpeg output to its stdout? Does 
Pydub return this to you?  I don't see a mention of this in the API 
docs. You should describe how you are calling Pydub, and what results 
you see, and what results you would like to see.

Third, be aware that Pydub might not give you the control you are after.

Fourth, be aware that Pydub is a bit off-topic for this list. Anything 
about Pydub and the way it creates an invocation of FFmpeg are 
off-topic. Questions you can phrase in terms of a command-line 
invocation of FFmpeg are where you start to be on-topic for this list. 
Nevertheless, you might still get a bit of help with the Pydub and 
Python parts of your situation.

[1] http://pydub.com/

[2] https://github.com/jiaaro/pydub/blob/master/API.markdown


Hope this helps,
      —Jim DeLaHunt, software engineer, Vancouver, Canada

More information about the ffmpeg-user mailing list