[FFmpeg-user] 31bit limit of -analyzeduration and -probesize

Oliver Fromme oliver at fromme.com
Fri May 23 14:18:46 CEST 2014


I've got a small problem here regarding the -analyzeduration
and -probesize options.

Sometimes I have to handle MPEG2 files that originate from
DVDs, i.e. basically they are concatenated VOBs.  Occasionally
a subtitle track begins somewhere in the middle of the file,
causing ffmpeg and ffprobe to have trouble detecting it.

For example, there is one MPEG2 file with several subtitle
tracks.  One of them (ID 3, i.e. PID 0x23) begins at roughly
55 minutes into the movie, which is somewhere near byte offset
2.5 GB in the MPEG2 file.  Unfortunately I cannot specify
such a value for the -analyzeduration and -probesize options,
the maximum seems to be 2147M.  But with 2147M, ffmpeg doesn't
find the track, and with 2148M (and above), I get an error
message regarding the option value:

ffmpeg -analyzeduration 2148M -probesize 2148M -i title_1.mpg \
       -vn -map '#0x80' -acodec copy -map '#0x23' -scodec dvdsub \
       output.mkv

ffmpeg version 2.2.git Copyright (c) 2000-2014 the FFmpeg developers
  built on May 16 2014 23:47:20 with gcc 4.2.1 (GCC) 20070831 patched [FeeBSD]
  configuration: --disable-x11grab --prefix=/usr/local --mandir=/usr/local/man --incdir=/usr/local/include/ffmpeg1 --libdir=/usr/local/lib/ffmpeg1 --shlibdir=/usr/local/lib/ffmpeg1 --datadir=/usr/local/share/ffmpeg1 --build-suffix=1 --progs-suffix=1 --enable-shared --enable-gpl --enable-postproc --enable-avfilter --enable-pthreads --enable-memalign-hack --disable-libstagefright-h264 --disable-libutvideo --cc=cc --extra-cflags='-msse -I/usr/local/include/vorbis -I/usr/local/include' --extra-ldflags=-L/usr/local/lib --extra-libs=-pthread --disable-debug --disable-libaacplus --disable-indev=alsa --disable-outdev=alsa --disable-libopencore-amrnb --disable-libopencore-amrwb --enable-libass --disable-libcdio --disable-libcelt --disable-libfaac --disable-libfdk-aac --enable-fontconfig --enable-libfreetype --disable-frei0r --disable-gnutls --disable-libgsm --enable-libmp3lame --enable-libbluray --disable-libv4l2 --disable-libmodplug --disable-openal --disable-libopencv --disable-lib!
 openjpeg --disable-libopus --disable-libpulse --enable-librtmp --disable-libschroedinger --disable-libspeex --disable-libtheora --disable-vaapi --disable-vdpau --disable-libvo-aacenc --disable-libvo-amrwbenc --enable-libvorbis --disable-libvpx --enable-libx264 --enable-libxvid --enable-nonfree
  libavutil      52. 83.100 / 52. 83.100
  libavcodec     55. 62.100 / 55. 62.100
  libavformat    55. 37.102 / 55. 37.102
  libavdevice    55. 13.101 / 55. 13.101
  libavfilter     4.  5.100 /  4.  5.100
  libswscale      2.  6.100 /  2.  6.100
  libswresample   0. 19.100 /  0. 19.100
  libpostproc    52.  3.100 / 52.  3.100
[NULL @ 0x806885420] Value 2148000000.000000 for parameter 'analyzeduration' out of range [0 - 2.14748e+09]
[NULL @ 0x806885420] Error setting option analyzeduration to value 2148M.
title_1.mpg: Result too large

Is this a bug?  That is, some variable that is a signed int,
but should really be an off_t (or long or whatever)?
Should I open a ticket?  (However, I can't upload a sample
because it's just too large.)

Or is it me who is doing something wrong?
Is there a different way to get this working?

Best regards
   Oliver

-- 


More information about the ffmpeg-user mailing list