[FFmpeg-trac] #10270(ffmpeg:reopened): Random duration changes when transcoding ogg vorbis

FFmpeg trac at avcodec.org
Tue Mar 21 09:38:09 EET 2023


#10270: Random duration changes when transcoding ogg vorbis
------------------------------------+------------------------------------
             Reporter:  Ace17       |                    Owner:  (none)
                 Type:  defect      |                   Status:  reopened
             Priority:  normal      |                Component:  ffmpeg
              Version:  git-master  |               Resolution:
             Keywords:              |               Blocked By:
             Blocking:              |  Reproduced by developer:  0
Analyzed by developer:  0           |
------------------------------------+------------------------------------
Description changed by Ace17:

Old description:

> When repeatedly transcoding the same file from ogg to ogg, the duration
> of the generated file changes (see log below).
>
> How to reproduce:
> {{{
> #/usr/bin/env bash
> ffmpeg -loglevel 1 -i bizarre.wav -y sound1.ogg
> ffmpeg -loglevel 1 -i sound1.ogg -y sound2.ogg
> ffmpeg -loglevel 1 -i sound2.ogg -y sound3.ogg
> ffmpeg -loglevel 1 -i sound3.ogg -y sound4.ogg
> ffmpeg -loglevel 1 -i sound4.ogg -y sound5.ogg
> ffmpeg -loglevel 1 -i sound5.ogg -y sound6.ogg
>
> set +x
> for f in sound*.ogg ; do
>   echo -n "$f :"
>   ffprobe $f 2>&1 | grep start
> done
> }}}
>
> Output:
> {{{
> ffmpeg version 5.1.2-3 Copyright (c) 2000-2022 the FFmpeg developers
> built with gcc 12 (Debian 12.2.0-14)
> configuration: --prefix=/usr --extra-version=3 --toolchain=hardened
> --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu
> --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-
> ladspa --enable-libaom --enable-libass --enable-libbluray --enable-
> libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-
> libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype
> --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm
> --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-
> libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse
> --enable-librabbitmq --enable-librist --enable-librubberband --enable-
> libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-
> libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-
> libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx
> --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid
> --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-
> omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2
> --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg
> --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883
> --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo
> --enable-librav1e --enable-shared
> libavutil      57. 28.100 / 57. 28.100
> libavcodec     59. 37.100 / 59. 37.100
> libavformat    59. 27.100 / 59. 27.100
> libavdevice    59.  7.100 / 59.  7.100
> libavfilter     8. 44.100 /  8. 44.100
> libswscale      6.  7.100 /  6.  7.100
> libswresample   4.  7.100 /  4.  7.100
> libpostproc    56.  6.100 / 56.  6.100
> + ffmpeg -loglevel 1 -i bizarre.wav -y sound1.ogg
> + ffmpeg -loglevel 1 -i sound1.ogg -y sound2.ogg
> + ffmpeg -loglevel 1 -i sound2.ogg -y sound3.ogg
> + ffmpeg -loglevel 1 -i sound3.ogg -y sound4.ogg
> + ffmpeg -loglevel 1 -i sound4.ogg -y sound5.ogg
> + ffmpeg -loglevel 1 -i sound5.ogg -y sound6.ogg
> + set +x
> sound1.ogg :  Duration: 00:00:01.00, start: 0.000000, bitrate: 106 kb/s
> sound2.ogg :  Duration: 00:00:00.01, start: 0.991293, bitrate: 8925 kb/s
> sound3.ogg :  Duration: 00:00:01.00, start: 0.000000, bitrate: 97 kb/s
> sound4.ogg :  Duration: 00:00:00.99, start: 0.010159, bitrate: 95 kb/s
> sound5.ogg :  Duration: 00:00:00.99, start: 0.010159, bitrate: 97 kb/s
> sound6.ogg :  Duration: 00:00:00.99, start: 0.010159, bitrate: 94 kb/s
> }}}
>
> The input wav here is exactly 1 second long.
> The duration of the generated files changes from 1.00 (ok), 0.99
> (okayyish) , 0.01 (what the?).

New description:

 When repeatedly transcoding the same file from ogg to ogg, the duration of
 the generated file changes (see log below).

 Edit: the problem manifests itself with git-master prebuilt binaires,
 however you have to use "bizarre.wav" to trigger it on GNU/Linux, and you
 have to use "strange.wav" to trigger it on MS Windows.

 How to reproduce:
 {{{
 #/usr/bin/env bash
 ffmpeg -loglevel 1 -i bizarre.wav -y sound1.ogg
 ffmpeg -loglevel 1 -i sound1.ogg -y sound2.ogg
 ffmpeg -loglevel 1 -i sound2.ogg -y sound3.ogg
 ffmpeg -loglevel 1 -i sound3.ogg -y sound4.ogg
 ffmpeg -loglevel 1 -i sound4.ogg -y sound5.ogg
 ffmpeg -loglevel 1 -i sound5.ogg -y sound6.ogg

 set +x
 for f in sound*.ogg ; do
   echo -n "$f :"
   ffprobe $f 2>&1 | grep start
 done
 }}}

 Output:
 {{{
 ffmpeg version 5.1.2-3 Copyright (c) 2000-2022 the FFmpeg developers
 built with gcc 12 (Debian 12.2.0-14)
 configuration: --prefix=/usr --extra-version=3 --toolchain=hardened
 --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu
 --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-
 ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b
 --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d
 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-
 libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-
 libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg
 --enable-libopenmpt --enable-libopus --enable-libpulse --enable-
 librabbitmq --enable-librist --enable-librubberband --enable-libshine
 --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt
 --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame
 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp
 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg
 --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal
 --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-
 libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-
 libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint
 --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e
 --enable-shared
 libavutil      57. 28.100 / 57. 28.100
 libavcodec     59. 37.100 / 59. 37.100
 libavformat    59. 27.100 / 59. 27.100
 libavdevice    59.  7.100 / 59.  7.100
 libavfilter     8. 44.100 /  8. 44.100
 libswscale      6.  7.100 /  6.  7.100
 libswresample   4.  7.100 /  4.  7.100
 libpostproc    56.  6.100 / 56.  6.100
 + ffmpeg -loglevel 1 -i bizarre.wav -y sound1.ogg
 + ffmpeg -loglevel 1 -i sound1.ogg -y sound2.ogg
 + ffmpeg -loglevel 1 -i sound2.ogg -y sound3.ogg
 + ffmpeg -loglevel 1 -i sound3.ogg -y sound4.ogg
 + ffmpeg -loglevel 1 -i sound4.ogg -y sound5.ogg
 + ffmpeg -loglevel 1 -i sound5.ogg -y sound6.ogg
 + set +x
 sound1.ogg :  Duration: 00:00:01.00, start: 0.000000, bitrate: 106 kb/s
 sound2.ogg :  Duration: 00:00:00.01, start: 0.991293, bitrate: 8925 kb/s
 sound3.ogg :  Duration: 00:00:01.00, start: 0.000000, bitrate: 97 kb/s
 sound4.ogg :  Duration: 00:00:00.99, start: 0.010159, bitrate: 95 kb/s
 sound5.ogg :  Duration: 00:00:00.99, start: 0.010159, bitrate: 97 kb/s
 sound6.ogg :  Duration: 00:00:00.99, start: 0.010159, bitrate: 94 kb/s
 }}}

 The input wav here is exactly 1 second long.
 The duration of the generated files changes from 1.00 (ok), 0.99
 (okayyish) , 0.01 (what the?).

--
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/10270#comment:11>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list