On date Monday 2014-12-22 16:50:57 +0100, Lars Kiesow encoded: > Hi everyone, > I'm an FFmpeg user for quite a while now and though I might as well > switch to dev at some point... > > Please find attached to this mail a simple audio filter which makes it > possible to extract and print volume information from audio streams. It > works more or less like the showinfo filters only that it returns the > pcm value information for each audio sample. > > This output can then be used to easily plot a waveform image like this: > http://larskiesow.de/waveform.png > > > Example: > ./ffmpeg -nostats -i ... -filter:a aresample=100,showvolume -f null - > [...] > [Parsed_showvolume_1 @ 0x1bcc300] n: 0, channel: 0, volume: -239 > [Parsed_showvolume_1 @ 0x1bcc300] n: 1, channel: 0, volume: 126 > [Parsed_showvolume_1 @ 0x1bcc300] n: 2, channel: 0, volume: -74 > [Parsed_showvolume_1 @ 0x1bcc300] n: 3, channel: 0, volume: 29 > [...] > > Example (Generate waveform using gnuplot): > ./ffmpeg -nostats -i ... -ac 1 -filter:a aresample=100,showvolume \ > -f null - 2>&1 | grep '^\[Parsed_showvolume_1' | \ > gnuplot -p -e 'plot "-" using 9 with lines'
I think a better approach would be to export the average per-frame volume to the metadata. Then you can use ffprobe to show such values and process them. Parsing the log is not robust. Also you could extend one of the existing filters to do that, or design a new audio filter based on signalstats (it could be named 'asignalstats'). Also, I think ideally we should be able to generate an output showing as an image directly from ffmpeg (but could be more tricky due to the undefined length of an audio track). [...] -- FFmpeg = Fast & Faithless Mean Powered Enlightening Generator _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel