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

FFmpeg trac at avcodec.org
Sun Mar 19 17:00:32 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           |
------------------------------------+------------------------------------
Comment (by Ace17):

 > Check for yourself on Windows

 Until now, I was exclusively testing on GNU/Linux.

 So I just followed your advice and tested on Windows, with the URL you
 provided.
 Here's what I get:

 {{{
 #./repro.sh

 ++ uname -a
 MINGW64_NT-6.1-7601 SEBASTIENA 3.4.6.x86_64 2023-02-15 18:03 UTC x86_64
 Msys

 + md5sum bizarre.wav
 4d5be4933ec09cf1159b93106a11b333  bizarre.wav

 ++ ffmpeg -version
 ffmpeg version N-110043-gadb5f7b41f-20230318 Copyright (c) 2000-2023 the
 FFmpeg developers
 built with gcc 12.2.0 (crosstool-NG 1.25.0.90_cf9beb1)
 configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-
 config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64
 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug
 --enable-shared --disable-static --disable-w32threads --enable-pthreads
 --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype
 --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig
 --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf
 --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-
 libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d
 --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-
 llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libass
 --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus
 --enable-librist --enable-libssh --enable-libtheora --enable-libvpx
 --enable-libwebp --enable-lv2 --disable-libmfx --enable-libvpl --enable-
 openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-
 libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e
 --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr
 --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d
 --disable-libdrm --disable-vaapi --enable-libvidstab --enable-vulkan
 --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265
 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi
 --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-
 ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-
 version=20230318
 libavutil      58.  4.100 / 58.  4.100
 libavcodec     60.  6.101 / 60.  6.101
 libavformat    60.  4.100 / 60.  4.100
 libavdevice    60.  2.100 / 60.  2.100
 libavfilter     9.  4.100 /  9.  4.100
 libswscale      7.  2.100 /  7.  2.100
 libswresample   4. 11.100 /  4. 11.100
 libpostproc    57.  2.100 / 57.  2.100

 ++ ffmpeg -loglevel 1 -i bizarre.wav -acodec libvorbis -y sound1.ogg
 ++ ffmpeg -loglevel 1 -i sound1.ogg -acodec libvorbis -y sound2.ogg
 ++ ffmpeg -loglevel 1 -i sound2.ogg -acodec libvorbis -y sound3.ogg
 ++ ffmpeg -loglevel 1 -i sound3.ogg -acodec libvorbis -y sound4.ogg
 ++ ffmpeg -loglevel 1 -i sound4.ogg -acodec libvorbis -y sound5.ogg
 ++ ffmpeg -loglevel 1 -i sound5.ogg -acodec libvorbis -y sound6.ogg

 ++ for f in sound*.ogg
 ++ ffprobe -v error -show_entries format=duration -of
 default=noprint_wrappers=1:nokey=1 sound1.ogg
 1.000000
 ++ for f in sound*.ogg
 ++ ffprobe -v error -show_entries format=duration -of
 default=noprint_wrappers=1:nokey=1 sound2.ogg
 1.000000
 ++ for f in sound*.ogg
 ++ ffprobe -v error -show_entries format=duration -of
 default=noprint_wrappers=1:nokey=1 sound3.ogg
 1.000000
 ++ for f in sound*.ogg
 ++ ffprobe -v error -show_entries format=duration -of
 default=noprint_wrappers=1:nokey=1 sound4.ogg
 1.000000
 ++ for f in sound*.ogg
 ++ ffprobe -v error -show_entries format=duration -of
 default=noprint_wrappers=1:nokey=1 sound5.ogg
 1.000000
 ++ for f in sound*.ogg
 ++ ffprobe -v error -show_entries format=duration -of
 default=noprint_wrappers=1:nokey=1 sound6.ogg
 1.000000
 }}}

 You're right, the durations are OK on Windows!


 So I used the prebuilt latest (static) binaries ( https://github.com/BtbN
 /FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-
 linux64-gpl.tar.xz ), and re-tested on GNU/Linux.

 Here's what I got:

 {{{
 ace at ANTEC repro % ./repro.sh
 + uname -a
 Linux ANTEC 6.1.0-6-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.15-1
 (2023-03-05) x86_64 GNU/Linux

 + md5sum bizarre.wav
 4d5be4933ec09cf1159b93106a11b333  bizarre.wav

 + which ffmpeg
 /tmp/ffmpeg-master-latest-linux64-gpl/bin/ffmpeg

 + ffmpeg -version
 ffmpeg version N-110043-gadb5f7b41f-20230318 Copyright (c) 2000-2023 the
 FFmpeg developers
 built with gcc 12.2.0 (crosstool-NG 1.25.0.90_cf9beb1)
 configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-
 config=pkg-config --cross-prefix=x86_64-ffbuild-linux-gnu- --arch=x86_64
 --target-os=linux --enable-gpl --enable-version3 --disable-debug --enable-
 iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-
 libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-
 libvorbis --enable-opencl --enable-libpulse --enable-libvmaf --enable-
 libxcb --enable-xlib --enable-amf --enable-libaom --enable-libaribb24
 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2
 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r
 --enable-libgme --enable-libkvazaar --enable-libass --enable-libbluray
 --enable-libjxl --enable-libmp3lame --enable-libopus --enable-mbedtls
 --enable-librist --enable-libssh --enable-libtheora --enable-libvpx
 --enable-libwebp --enable-lv2 --disable-libmfx --enable-libvpl --enable-
 openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-
 libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e
 --enable-librubberband --disable-schannel --enable-sdl2 --enable-libsoxr
 --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d
 --enable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan
 --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265
 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi
 --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-
 ldflags=-pthread --extra-ldexeflags=-pie --extra-libs='-ldl -lgomp'
 --extra-version=20230318
 libavutil      58.  4.100 / 58.  4.100
 libavcodec     60.  6.101 / 60.  6.101
 libavformat    60.  4.100 / 60.  4.100
 libavdevice    60.  2.100 / 60.  2.100
 libavfilter     9.  4.100 /  9.  4.100
 libswscale      7.  2.100 /  7.  2.100
 libswresample   4. 11.100 /  4. 11.100
 libpostproc    57.  2.100 / 57.  2.100

 + ffmpeg -loglevel 1 -i bizarre.wav -acodec libvorbis -y sound1.ogg
 + ffmpeg -loglevel 1 -i sound1.ogg -acodec libvorbis -y sound2.ogg
 + ffmpeg -loglevel 1 -i sound2.ogg -acodec libvorbis -y sound3.ogg
 + ffmpeg -loglevel 1 -i sound3.ogg -acodec libvorbis -y sound4.ogg
 + ffmpeg -loglevel 1 -i sound4.ogg -acodec libvorbis -y sound5.ogg
 + ffmpeg -loglevel 1 -i sound5.ogg -acodec libvorbis -y sound6.ogg
 + ffprobe -v error -show_entries format=duration -of
 default=noprint_wrappers=1:nokey=1 sound1.ogg
 1.000000
 + ffprobe -v error -show_entries format=duration -of
 default=noprint_wrappers=1:nokey=1 sound2.ogg
 0.011519
 + ffprobe -v error -show_entries format=duration -of
 default=noprint_wrappers=1:nokey=1 sound3.ogg
 1.004263
 + ffprobe -v error -show_entries format=duration -of
 default=noprint_wrappers=1:nokey=1 sound4.ogg
 0.994104
 + ffprobe -v error -show_entries format=duration -of
 default=noprint_wrappers=1:nokey=1 sound5.ogg
 0.994104
 + ffprobe -v error -show_entries format=duration -of
 default=noprint_wrappers=1:nokey=1 sound6.ogg
 0.994104
 }}}

 The durations are clearly not OK here.

 So it seems like we're getting different results, depending on the host
 platform.

 What do you think ?

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


More information about the FFmpeg-trac mailing list