[FFmpeg-trac] #10925(undetermined:new): Regression in showinfo filter, SAR does not update if it changes mid-video
FFmpeg
trac at avcodec.org
Thu Mar 21 01:33:43 EET 2024
#10925: Regression in showinfo filter, SAR does not update if it changes mid-video
-------------------------------------+-------------------------------------
Reporter: Tom | Type: defect
Status: new | Priority: normal
Component: | Version: git-
undetermined | master
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary of the bug:
In videos where the sample aspect ratio changes mid-video, the showinfo
filter in previous versions of ffmpeg would correctly update the SAR
output to reflect this. In recent versions, the SAR is permanently set to
what appears to be the SAR of the first frame, and does not update.
How to reproduce:
Using an old version of ffmpeg shows that between frame 23 and 24 the SAR
changes from 24/17 to 32/17:
{{{
% ffmpeg -y -i /nas/media/Transcoded/60019_20240108013600_3.ts -vf
showinfo -c:v rawvideo -f rawvideo /dev/null
ffmpeg version 4.2.7-0ubuntu0.1 Copyright (c) 2000-2022 the FFmpeg
developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
configuration: --prefix=/usr --extra-version=0ubuntu0.1
--toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu
--incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl
--disable-stripping --enable-avresample --disable-filter=resample
--enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom
--enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca
--enable-libcdio --enable-libcodec2 --enable-libflite --enable-
libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme
--enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa
--enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-
libpulse --enable-librsvg --enable-librubberband --enable-libshine
--enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh
--enable-libtheora --enable-libtwolame --enable-libvidstab --enable-
libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-
libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi
--enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl
--enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883
--enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264
--enable-shared
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
[mpegts @ 0x559addbe9700] start time for stream 2 is not set in
estimate_timings_from_pts
Input #0, mpegts, from '/nas/media/Transcoded/60019_20240108013600_3.ts':
Duration: 00:00:04.81, start: 1.400000, bitrate: 1096 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
yuv420p(tv, top first), 544x576 [SAR 24:17 DAR 4:3], 25 fps, 25 tbr, 90k
tbn, 50 tbc
Stream #0:1[0x101](eng): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz,
stereo, fltp, 128 kb/s
Stream #0:2[0x102](eng): Subtitle: dvb_subtitle ([6][0][0][0] /
0x0006)
Stream mapping:
Stream #0:0 -> #0:0 (mpeg2video (native) -> rawvideo (native))
Press [q] to stop, [?] for help
[Parsed_showinfo_0 @ 0x559addcb0980] config in time_base: 1/90000,
frame_rate: 25/1
[Parsed_showinfo_0 @ 0x559addcb0980] config out time_base: 0/0,
frame_rate: 0/0
[Parsed_showinfo_0 @ 0x559addcb0980] n: 0 pts: 0 pts_time:0
pos: 29892 fmt:yuv420p sar:24/17 s:544x576 i:T iskey:1 type:I
checksum:C6429662 plane_checksum:[21028474 73D808F7 73D808F7] mean:[16 128
128] stdev:[0.0 0.0 0.0]
.
.
.
[Parsed_showinfo_0 @ 0x559addcb0980] n: 23 pts: 82800 pts_time:0.92
pos: 158484 fmt:yuv420p sar:24/17 s:544x576 i:P iskey:0 type:B
checksum:C6429662 plane_checksum:[21028474 73D808F7 73D808F7] mean:[16 128
128] stdev:[0.0 0.0 0.0]
[Parsed_showinfo_0 @ 0x559addcb0980] n: 24 pts: 90000 pts_time:1
pos: 164124 fmt:yuv420p sar:32/17 s:544x576 i:P iskey:1 type:I
checksum:C72C2262 plane_checksum:[07E1C4C0 E491F499 453168EB] mean:[163 49
172] stdev:[23.9 11.1 8.5]
.
.
.
[Parsed_showinfo_0 @ 0x559addcb0980] n: 76 pts: 280800 pts_time:3.12
pos: 648600 fmt:yuv420p sar:32/17 s:544x576 i:P iskey:0 type:P
checksum:91FEE149 plane_checksum:[BFD9F415 9500F295 BE02FA81] mean:[128 78
161] stdev:[46.0 33.8 17.6]
}}}
With the latest snapshot downloaded and compiled from git the SAR remains
at 24/17:
{{{
~/compile/ffmpeg7/build/bin/ffmpeg -y -i
/nas/media/Transcoded/60019_20240108013600_3.ts -vf showinfo -c:v rawvideo
-f rawvideo /dev/null
ffmpeg version N-114281-gdfcf5f828d Copyright (c) 2000-2024 the FFmpeg
developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.2)
configuration: --prefix=/home/myth/compile/ffmpeg7/build --pkg-config-
flags=--static --extra-cflags=-I/home/myth/compile/ffmpeg7/build/include
--extra-ldflags=-L/home/myth/compile/ffmpeg7/build/lib --extra-
libs='-lpthread -lm' --bindir=/home/myth/compile/ffmpeg7/build/bin
--enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype
--enable-libharfbuzz --enable-libfontconfig --enable-libx264 --enable-
libx265 --enable-nonfree
libavutil 59. 2.100 / 59. 2.100
libavcodec 61. 1.101 / 61. 1.101
libavformat 61. 0.100 / 61. 0.100
libavdevice 61. 0.100 / 61. 0.100
libavfilter 10. 0.100 / 10. 0.100
libswscale 8. 0.100 / 8. 0.100
libswresample 5. 0.100 / 5. 0.100
libpostproc 58. 0.100 / 58. 0.100
[mpegts @ 0x55cd56c27dc0] start time for stream 2 is not set in
estimate_timings_from_pts
Input #0, mpegts, from '/nas/media/Transcoded/60019_20240108013600_3.ts':
Duration: 00:00:04.81, start: 1.400000, bitrate: 1096 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
yuv420p(tv, top first), 544x576 [SAR 24:17 DAR 4:3], 25 fps, 25 tbr, 90k
tbn
Side data:
cpb: bitrate max/min/avg: 15000000/0/0 buffer size: 1835008
vbv_delay: N/A
Stream #0:1[0x101](eng): Audio: mp2 (mp3float) ([3][0][0][0] / 0x0003),
48000 Hz, stereo, fltp, 128 kb/s
Stream #0:2[0x102](eng): Subtitle: dvb_subtitle (dvbsub) ([6][0][0][0] /
0x0006)
Stream mapping:
Stream #0:0 -> #0:0 (mpeg2video (native) -> rawvideo (native))
Press [q] to stop, [?] for help
[Parsed_showinfo_0 @ 0x7f26500032c0] config in time_base: 1/90000,
frame_rate: 25/1
[Parsed_showinfo_0 @ 0x7f26500032c0] config out time_base: 0/0,
frame_rate: 0/0
[Parsed_showinfo_0 @ 0x7f26500032c0] n: 0 pts: 0 pts_time:0
duration: 3600 duration_time:0.04 fmt:yuv420p cl:left sar:24/17
s:544x576 i:T iskey:1 type:I checksum:C6429662 plane_checksum:[21028474
73D808F7 73D808F7] mean:[16 128 128] stdev:[0.0 0.0 0.0]
.
.
.
[Parsed_showinfo_0 @ 0x7f26500032c0] n: 23 pts: 82800 pts_time:0.92
duration: 3600 duration_time:0.04 fmt:yuv420p cl:left sar:24/17
s:544x576 i:P iskey:0 type:B checksum:C6429662 plane_checksum:[21028474
73D808F7 73D808F7] mean:[16 128 128] stdev:[0.0 0.0 0.0]
[Parsed_showinfo_0 @ 0x7f26500032c0] n: 24 pts: 90000 pts_time:1
duration: 3600 duration_time:0.04 fmt:yuv420p cl:left sar:24/17
s:544x576 i:P iskey:1 type:I checksum:C72C2262 plane_checksum:[07E1C4C0
E491F499 453168EB] mean:[163 49 172] stdev:[23.9 11.1 8.5]
.
.
.
[Parsed_showinfo_0 @ 0x7f26500032c0] n: 76 pts: 280800 pts_time:3.12
duration: 3600 duration_time:0.04 fmt:yuv420p cl:left sar:24/17
s:544x576 i:P iskey:0 type:P checksum:91FEE149 plane_checksum:[BFD9F415
9500F295 BE02FA81] mean:[128 78 161] stdev:[46.0 33.8 17.6]
}}}
ffprobe does however show the change correctly:
{{{
/home/myth/compile/ffmpeg7/build/bin/ffprobe -of csv=p=0 -select_streams v
-show_entries frame=pts_time,sample_aspect_ratio
/nas/media/Transcoded/60019_20240108013600_3.ts
ffprobe version N-114281-gdfcf5f828d Copyright (c) 2007-2024 the FFmpeg
developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.2)
configuration: --prefix=/home/myth/compile/ffmpeg7/build --pkg-config-
flags=--static --extra-cflags=-I/home/myth/compile/ffmpeg7/build/include
--extra-ldflags=-L/home/myth/compile/ffmpeg7/build/lib --extra-
libs='-lpthread -lm' --bindir=/home/myth/compile/ffmpeg7/build/bin
--enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype
--enable-libharfbuzz --enable-libfontconfig --enable-libx264 --enable-
libx265 --enable-nonfree
libavutil 59. 2.100 / 59. 2.100
libavcodec 61. 1.101 / 61. 1.101
libavformat 61. 0.100 / 61. 0.100
libavdevice 61. 0.100 / 61. 0.100
libavfilter 10. 0.100 / 10. 0.100
libswscale 8. 0.100 / 8. 0.100
libswresample 5. 0.100 / 5. 0.100
libpostproc 58. 0.100 / 58. 0.100
[mpegts @ 0x555c060effc0] start time for stream 2 is not set in
estimate_timings_from_pts
Input #0, mpegts, from '/nas/media/Transcoded/60019_20240108013600_3.ts':
Duration: 00:00:04.81, start: 1.400000, bitrate: 1096 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002),
yuv420p(tv, top first), 544x576 [SAR 24:17 DAR 4:3], 25 fps, 25 tbr, 90k
tbn
Side data:
cpb: bitrate max/min/avg: 15000000/0/0 buffer size: 1835008
vbv_delay: N/A
Stream #0:1[0x101](eng): Audio: mp2 (mp3float) ([3][0][0][0] / 0x0003),
48000 Hz, stereo, fltp, 128 kb/s
Stream #0:2[0x102](eng): Subtitle: dvb_subtitle (dvbsub) ([6][0][0][0] /
0x0006)
3.047844,24:17,
3.087844,24:17,
.
.
.
3.967844,24:17,
4.047844,32:17,
.
.
.
6.167844,32:17,
}}}
A very small sample file is attached to this ticket.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/10925>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list