ffprobewrapper¶
This module contains the following classes:
FFPROBEWrapper, a wrapper aroundffprobeto read the properties of an audio file;FFPROBEParsingError,FFPROBEPathError, andFFPROBEUnsupportedFormatError, representing errors while reading the properties of audio files.
-
exception
aeneas.ffprobewrapper.FFPROBEParsingError[source]¶ Error raised when the call to
ffprobedoes not produce any output.
-
exception
aeneas.ffprobewrapper.FFPROBEPathError[source]¶ Error raised when the path to
ffprobeis not a valid executable.New in version 1.4.1.
-
exception
aeneas.ffprobewrapper.FFPROBEUnsupportedFormatError[source]¶ Error raised when
ffprobecannot decode the format of the given file.
-
class
aeneas.ffprobewrapper.FFPROBEWrapper(logger=None, rconf=None)[source]¶ Wrapper around
ffprobeto read the properties of an audio file.It will perform a call like:
$ ffprobe -select_streams a -show_streams /path/to/audio/file.mp3
and it will parse the first
[STREAM]element returned:[STREAM] index=0 codec_name=mp3 codec_long_name=MP3 (MPEG audio layer 3) profile=unknown codec_type=audio codec_time_base=1/44100 codec_tag_string=[0][0][0][0] codec_tag=0x0000 sample_fmt=s16p sample_rate=44100 channels=1 channel_layout=mono bits_per_sample=0 id=N/A r_frame_rate=0/0 avg_frame_rate=0/0 time_base=1/14112000 start_pts=0 start_time=0.000000 duration_ts=1545083190 duration=109.487188 bit_rate=128000 max_bit_rate=N/A bits_per_raw_sample=N/A nb_frames=N/A nb_read_frames=N/A nb_read_packets=N/A DISPOSITION:default=0 DISPOSITION:dub=0 DISPOSITION:original=0 DISPOSITION:comment=0 DISPOSITION:lyrics=0 DISPOSITION:karaoke=0 DISPOSITION:forced=0 DISPOSITION:hearing_impaired=0 DISPOSITION:visual_impaired=0 DISPOSITION:clean_effects=0 DISPOSITION:attached_pic=0 [/STREAM]
Parameters: - rconf (
RuntimeConfiguration) – a runtime configuration - logger (
Logger) – the logger object
-
FFPROBE_PARAMETERS= ['-select_streams', 'a', '-show_streams']¶ ffprobeparameters
-
STDERR_DURATION_REGEX= re.compile('Duration: ([0-9]*):([0-9]*):([0-9]*)\\.([0-9]*)')¶ Regex to match
ffprobestderr duration values
-
STDOUT_BEGIN_STREAM= '[STREAM]'¶ ffprobestdout begin stream tag
-
STDOUT_CHANNELS= 'channels'¶ ffprobestdout channels keyword
-
STDOUT_CODEC_NAME= 'codec_name'¶ ffprobestdout codec name (format) keyword
-
STDOUT_DURATION= 'duration'¶ ffprobestdout duration keyword
-
STDOUT_END_STREAM= '[/STREAM]'¶ ffprobestdout end stream tag
-
STDOUT_SAMPLE_RATE= 'sample_rate'¶ ffprobestdout sample rate keyword
-
read_properties(audio_file_path)[source]¶ Read the properties of an audio file and return them as a dictionary.
Example:
d["index"]=0 d["codec_name"]=mp3 d["codec_long_name"]=MP3 (MPEG audio layer 3) d["profile"]=unknown d["codec_type"]=audio d["codec_time_base"]=1/44100 d["codec_tag_string"]=[0][0][0][0] d["codec_tag"]=0x0000 d["sample_fmt"]=s16p d["sample_rate"]=44100 d["channels"]=1 d["channel_layout"]=mono d["bits_per_sample"]=0 d["id"]=N/A d["r_frame_rate"]=0/0 d["avg_frame_rate"]=0/0 d["time_base"]=1/14112000 d["start_pts"]=0 d["start_time"]=0.000000 d["duration_ts"]=1545083190 d["duration"]=109.487188 d["bit_rate"]=128000 d["max_bit_rate"]=N/A d["bits_per_raw_sample"]=N/A d["nb_frames"]=N/A d["nb_read_frames"]=N/A d["nb_read_packets"]=N/A d["DISPOSITION:default"]=0 d["DISPOSITION:dub"]=0 d["DISPOSITION:original"]=0 d["DISPOSITION:comment"]=0 d["DISPOSITION:lyrics"]=0 d["DISPOSITION:karaoke"]=0 d["DISPOSITION:forced"]=0 d["DISPOSITION:hearing_impaired"]=0 d["DISPOSITION:visual_impaired"]=0 d["DISPOSITION:clean_effects"]=0 d["DISPOSITION:attached_pic"]=0
Parameters: audio_file_path (string) – the path of the audio file to analyze Return type: dict Raises: TypeError: if audio_file_pathis NoneRaises: OSError: if the file at audio_file_pathcannot be readRaises: FFPROBEParsingError: if the call to ffprobedoes not produce any outputRaises: FFPROBEPathError: if the path to the ffprobeexecutable cannot be calledRaises: FFPROBEUnsupportedFormatError: if the file has a format not supported by ffprobe
- rconf (