Differences in output between FFmpeg versions

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Differences in output between FFmpeg versions

Ethan Coeytaux
Hello all,


My work involves analyzing large quantities of songs and determining
"matches" and for some time we've been using FFmpeg to convert MP3s and
AACs from numerous sources to raw data to then analyze.  However this
system was put into place several years ago and we're still using a very
old version of FFmpeg (v2.2.1).  When upgrading however we noticed there
are substantial differences in the output of FFmpeg when using a newer
version (either 2.6.8, 3.3.4, or 4.1.1) compared to the older version,
which has notable consequences on our analysis of the audio.  However, the
output from 2.6.8, 3.3.4, and 4.1.1, while still different, are much more
similar than the output from 2.2.1.


My question is: are there any ways to eliminate or minimize these changes
in the output?  The command we're running is "ffmpeg -loglevel warning -i
$AUDIODIR/$filename -ar 8000 -ac 1 -f s16le -acodec pcm_s16le
$RAMDIR/RAW/$rawFilename".


The config for our v2.2.1 version is:


ffmpeg version 2.2.1

built on Dec 11 2015 16:14:14 with gcc 4.4.7 (GCC) 20120313 (Red Hat
4.4.7-16)

--prefix=/usr

--bindir=/usr/bin

--datadir=/usr/share/ffmpeg

--incdir=/usr/include/ffmpeg

--libdir=/usr/lib64

--mandir=/usr/share/man

--arch=x86_64

--optflags='-O2

-g

-pipe

-Wall

-Wp,-D_FORTIFY_SOURCE=2

-fexceptions

-fstack-protector

--param=ssp-buffer-size=4

-m64

-mtune=generic'

--enable-bzlib

--disable-crystalhd

--enable-gnutls

--enable-libass

--enable-libdc1394

--disable-indev=jack

--enable-libfreetype

--enable-libgsm

--enable-libmp3lame

--enable-openal

--enable-libopenjpeg

--enable-libopus

--enable-libpulse

--enable-libschroedinger

--enable-libspeex

--enable-libtheora

--enable-libvorbis

--enable-libv4l2

--enable-libxvid

--enable-x11grab

--enable-avfilter

--enable-avresample

--enable-postproc

--enable-pthreads

--disable-static

--enable-shared

--enable-gpl

--disable-debug

--disable-stripping

--shlibdir=/usr/lib64

--enable-runtime-cpudetect

libavutil      52. 66.100 / 52. 66.100

libavcodec     55. 52.102 / 55. 52.102

libavformat    55. 33.100 / 55. 33.100

libavdevice    55. 10.100 / 55. 10.100

libavfilter     4.  2.100 /  4.  2.100

libavresample   1.  2.  0 /  1.  2.  0

libswscale      2.  5.102 /  2.  5.102

libswresample   0. 18.100 /  0. 18.100

libpostproc    52.  3.100 / 52.  3.100


and the config for v4.1.1 is:


ffmpeg version 4.1.1-static https://johnvansickle.com/ffmpeg/  Copyright
(c) 2000-2019 the FFmpeg developers

built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516

--enable-gpl

--enable-version3

--enable-static

--disable-debug

--disable-ffplay

--disable-indev=sndio

--disable-outdev=sndio

--cc=gcc-6

--enable-fontconfig

--enable-frei0r

--enable-gnutls

--enable-gmp

--enable-gray

--enable-libaom

--enable-libfribidi

--enable-libass

--enable-libvmaf

--enable-libfreetype

--enable-libmp3lame

--enable-libopencore-amrnb

--enable-libopencore-amrwb

--enable-libopenjpeg

--enable-librubberband

--enable-libsoxr

--enable-libspeex

--enable-libvorbis

--enable-libopus

--enable-libtheora

--enable-libvidstab

--enable-libvo-amrwbenc

--enable-libvpx

--enable-libwebp

--enable-libx264

--enable-libx265

--enable-libxml2

--enable-libxvid

--enable-libzvbi

--enable-libzimg

libavutil      56. 22.100 / 56. 22.100

libavcodec     58. 35.100 / 58. 35.100

libavformat    58. 20.100 / 58. 20.100

libavdevice    58.  5.100 / 58.  5.100

libavfilter     7. 40.101 /  7. 40.101

libswscale      5.  3.100 /  5.  3.100

libswresample   3.  3.100 /  3.  3.100

libpostproc    55.  3.100 / 55.  3.100


Any tips or advice would be much appreciated, thank you!


- Ethan Coeytaux
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Differences in output between FFmpeg versions

Moritz Barsnick
On Tue, Oct 15, 2019 at 15:08:56 -0600, Ethan Coeytaux wrote:

> When upgrading however we noticed there are substantial differences
> in the output of FFmpeg when using a newer version (either 2.6.8,
> 3.3.4, or 4.1.1) compared to the older version, which has notable
> consequences on our analysis of the audio. However, the output from
> 2.6.8, 3.3.4, and 4.1.1, while still different, are much more similar
> than the output from 2.2.1.
[...]
> Any tips or advice would be much appreciated, thank you!

You forgot to tell us what those differences in the output are. What
are the "consequences on our analysis of the audio"?

Are you saying audio was decoded (to raw) more correctly previously
than it is now?

I believe decoding of MP3 and AAC should be pretty precise. You can try
alternative decoders (such as libfdk_aac) for comparison, but I'm
riddled what you mean.

Moritz
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Differences in output between FFmpeg versions

Ethan Coeytaux
Hi Moritz,

Thank you for the response.  It's not 100% clear to me what the differences
are since it's decoded output, but when converting the same exact MP3 file
with different FFmpeg versions the decoded output files are different in
size and don't fully match up throughout the file.  For example on a test
MP3 file the decoded output using v2.2.1 had far more leading 0s than the
output from the v4.1.1 version.  Past that it mostly comes down to numerous
flipped bits throughout the files.  I'm not sure what "more correctly" is
in this context, and if one is more correct I would assume the latest
version is the most correct, but the outputs are undeniably different.

As for the consequences, I can't go into too much detail unfortunately, but
because we are trying to match songs and the first step is to decode the
audio it becomes far more difficult when the same exact song has different
decoded output depending on when it was decoded.

Would it be helpful if I posted the outputs of a decoded MP3 file?

-Ethan

On Tue, Oct 15, 2019 at 3:44 PM Moritz Barsnick <[hidden email]> wrote:

> On Tue, Oct 15, 2019 at 15:08:56 -0600, Ethan Coeytaux wrote:
>
> > When upgrading however we noticed there are substantial differences
> > in the output of FFmpeg when using a newer version (either 2.6.8,
> > 3.3.4, or 4.1.1) compared to the older version, which has notable
> > consequences on our analysis of the audio. However, the output from
> > 2.6.8, 3.3.4, and 4.1.1, while still different, are much more similar
> > than the output from 2.2.1.
> [...]
> > Any tips or advice would be much appreciated, thank you!
>
> You forgot to tell us what those differences in the output are. What
> are the "consequences on our analysis of the audio"?
>
> Are you saying audio was decoded (to raw) more correctly previously
> than it is now?
>
> I believe decoding of MP3 and AAC should be pretty precise. You can try
> alternative decoders (such as libfdk_aac) for comparison, but I'm
> riddled what you mean.
>
> Moritz
> _______________________________________________
> ffmpeg-user mailing list
> [hidden email]
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> [hidden email] with subject "unsubscribe".
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Differences in output between FFmpeg versions

Carl Eugen Hoyos-2
In reply to this post by Moritz Barsnick
Am Di., 15. Okt. 2019 um 23:44 Uhr schrieb Moritz Barsnick <[hidden email]>:

> I believe decoding of MP3 and AAC should be pretty precise.

I believe that both mp3 and aac are not supposed to decode to
one "correct" output, both know many correct outputs.
So the fact that the outputs are different is not a sufficient
indication for a bug.

But as always: Command line and complete, uncut console
output missing, I suspect it will provide part of the answer.

Carl Eugen
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: Differences in output between FFmpeg versions

Carl Eugen Hoyos-2
In reply to this post by Ethan Coeytaux
Am Mi., 16. Okt. 2019 um 00:25 Uhr schrieb Ethan Coeytaux
<[hidden email]>:

> Thank you for the response.  It's not 100% clear to me what the differences
> are since it's decoded output, but when converting the same exact MP3 file
> with different FFmpeg versions the decoded output files are different in
> size and don't fully match up throughout the file.  For example on a test
> MP3 file the decoded output using v2.2.1 had far more leading 0s than the
> output from the v4.1.1 version.

Note that v4.1.1 is old and unsupported.

The leading zeros sound like a bug fix.

Please find out what top-posting means and avoid it here.

Carl Eugen
_______________________________________________
ffmpeg-user mailing list
[hidden email]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".