[FFmpeg-trac] #10284(ffprobe:new): Captured HD DVR (HDHomeRun) streams (in the UK) - wrongly identified as 1080p when it should be 1080i

FFmpeg trac at avcodec.org
Mon Mar 27 19:58:49 EEST 2023


#10284: Captured HD DVR (HDHomeRun) streams (in the UK) - wrongly identified as
1080p when it should be 1080i
-------------------------------------+-------------------------------------
             Reporter:  minxster     |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  ffprobe      |                  Version:  6.0
             Keywords:  interlaced,  |               Blocked By:
  ffprobe, mpegts                    |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug: ffprobe is miss-identifying a DVR recording as
 Progressive (1080p) when it should be 1080i. In the UK, HD TV channels can
 broadcast a mix of 1080i and 1080p. E.g. the main event (sports match) can
 be in 1080i, but adverts may (not always) be 1080p. I'm assuming this mix
 of formats is what is causing the issue, especially not knowing how
 formats are identified? To verify, if I play the file back in VLC, and
 turn off de-interlace, the video of the sports match is clearly interlaced
 (you can see the horizontal lines); if I manually turn on de-interlace,
 the video plays perfectly.

 How to reproduce: This is difficult unless you can capture UK Freeview
 (HD) TV. I am a noob at all of this, but I do have a 6gb (over 3hrs) file
 that is being miss-identified. I'm happy to try and chop some of the video
 down (with help from you?), but the resulting filesize may still be big. I
 did manage to isolate a section of the main sports match, and ffprobe then
 clearly identified it as interlaced/1080i.

 ---

 Output from a full commands I ran (ffprobe + ffmpeg idet:

 C:\dump>\ffmpeg\bin\ffprobe "Live Six Nations Rugby (2011) - 2023-03-18 12
 00 00 - France v Wales.ts"
 ffprobe version 6.0-full_build-www.gyan.dev Copyright (c) 2007-2023 the
 FFmpeg developers
   built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
   configuration: --enable-gpl --enable-version3 --enable-static --disable-
 w32threads --disable-autodetect --enable-fontconfig --enable-iconv
 --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma
 --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt
 --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray
 --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libdav1d
 --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e
 --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265
 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl
 --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-
 libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-
 liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-
 amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec
 --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-
 libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-
 libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-
 libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora
 --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-
 libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex
 --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite
 --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-
 chromaprint
   libavutil      58.  2.100 / 58.  2.100
   libavcodec     60.  3.100 / 60.  3.100
   libavformat    60.  3.100 / 60.  3.100
   libavdevice    60.  1.100 / 60.  1.100
   libavfilter     9.  3.100 /  9.  3.100
   libswscale      7.  1.100 /  7.  1.100
   libswresample   4. 10.100 /  4. 10.100
   libpostproc    57.  1.100 / 57.  1.100
 [mpegts @ 0000027364e2e2c0] start time for stream 2 is not set in
 estimate_timings_from_pts
 Input #0, mpegts, from 'Live Six Nations Rugby (2011) - 2023-03-18 12 00
 00 - France v Wales.ts':
   Duration: 02:44:57.62, start: 1.400000, bitrate: 5232 kb/s
   Program 1
     Metadata:
       service_name    : Service01
       service_provider: FFmpeg
   Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B),
 yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25
 tbr, 90k tbn
   Stream #0:1[0x101](eng): Audio: aac_latm (LC) ([17][0][0][0] / 0x0011),
 48000 Hz, stereo, fltp
   Stream #0:2[0x102](eng): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)

 C:\dump>C:\ffmpeg\bin\ffmpeg -filter:v idet -f rawvideo -y NUL -i "Live
 Six Nations Rugby (2011) - 2023-03-18 12 00 00 - France v Wales.ts"
 ffmpeg version 6.0-full_build-www.gyan.dev Copyright (c) 2000-2023 the
 FFmpeg developers
   built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
   configuration: --enable-gpl --enable-version3 --enable-static --disable-
 w32threads --disable-autodetect --enable-fontconfig --enable-iconv
 --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma
 --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt
 --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray
 --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libdav1d
 --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e
 --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265
 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl
 --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-
 libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-
 liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-
 amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec
 --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-
 libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-
 libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-
 libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora
 --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-
 libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex
 --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite
 --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-
 chromaprint
   libavutil      58.  2.100 / 58.  2.100
   libavcodec     60.  3.100 / 60.  3.100
   libavformat    60.  3.100 / 60.  3.100
   libavdevice    60.  1.100 / 60.  1.100
   libavfilter     9.  3.100 /  9.  3.100
   libswscale      7.  1.100 /  7.  1.100
   libswresample   4. 10.100 /  4. 10.100
   libpostproc    57.  1.100 / 57.  1.100
 [mpegts @ 000002650e45d380] start time for stream 2 is not set in
 estimate_timings_from_pts
 Input #0, mpegts, from 'Live Six Nations Rugby (2011) - 2023-03-18 12 00
 00 - France v Wales.ts':
   Duration: 02:44:57.62, start: 1.400000, bitrate: 5232 kb/s
   Program 1
     Metadata:
       service_name    : Service01
       service_provider: FFmpeg
   Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B),
 yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25
 tbr, 90k tbn
   Stream #0:1[0x101](eng): Audio: aac_latm (LC) ([17][0][0][0] / 0x0011),
 48000 Hz, stereo, fltp
   Stream #0:2[0x102](eng): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))
 Press [q] to stop, [?] for help
 Output #0, rawvideo, to 'NUL':
   Metadata:
     encoder         : Lavf60.3.100
   Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p(tv, bt709,
 progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 622080 kb/s, 25 fps,
 25 tbn
     Metadata:
       encoder         : Lavc60.3.100 rawvideo
 Live Six Nations Rugby (2011) - 2023-03-18 12 00 00 - France v Wales.ts:
 corrupt decoded frame in stream 0
     Last message repeated 1 times
 Live Six Nations Rugby (2011) - 2023-03-18 12 00 00 - France v Wales.ts:
 corrupt decoded frame in stream 0
 Live Six Nations Rugby (2011) - 2023-03-18 12 00 00 - France v Wales.ts:
 corrupt decoded frame in stream 0
     Last message repeated 1 times
 Live Six Nations Rugby (2011) - 2023-03-18 12 00 00 - France v Wales.ts:
 corrupt decoded frame in stream 0
     Last message repeated 38 times
 ... repeats ...

 frame=247402 fps=850 q=-0.0 Lsize=751483575kB time=02:44:56.04
 bitrate=622082.5kbits/s speed=  34x
 video:751483575kB audio:0kB subtitle:0kB other streams:0kB global
 headers:0kB muxing overhead: 0.000000%
 [Parsed_idet_0 @ 0000026511e4ef00] Repeated Fields: Neither:247249 Top:
 100 Bottom:    53
 [Parsed_idet_0 @ 0000026511e4ef00] Single frame detection: TFF:186225 BFF:
 565 Progressive: 43578 Undetermined: 17034
 [Parsed_idet_0 @ 0000026511e4ef00] Multi frame detection: TFF:196512 BFF:
 479 Progressive: 50411 Undetermined:     0
 C:\dump>

 ---

 I don't know if it helps, but if I probe the (whole) file with MediaInfo,
 it correctly identifies the format (and so do for all the sports matches I
 recorded (in that the are all 1080i))

 MediaInfo (v22.12) Output:
 root at plex-ubuntu:/media/truenas_raidz/TV/HDHomeRun/Live Six Nations Rugby
 (2011)/Season 2023# mediainfo Live\ Six\ Nations\ Rugby\ \(2011\)\ -\
 2023-03-18\ 12\ 00\ 00\ -\ France\ v\ Wales.ts
 General
 ID                                       : 1 (0x1)
 Complete name                            : Live Six Nations Rugby (2011) -
 2023-03-18 12 00 00 - France v Wales.ts
 Format                                   : MPEG-TS
 File size                                : 6.03 GiB
 Duration                                 : 2 h 44 min
 Overall bit rate mode                    : Variable
 Overall bit rate                         : 5 233 kb/s

 Video
 ID                                       : 256 (0x100)
 Menu ID                                  : 1 (0x1)
 Format                                   : AVC
 Format/Info                              : Advanced Video Codec
 Format profile                           : High at L4
 Format settings                          : CABAC / 4 Ref Frames
 Format settings, CABAC                   : Yes
 Format settings, Reference frames        : 4 frames
 Codec ID                                 : 27
 Duration                                 : 2 h 44 min
 Width                                    : 1 920 pixels
 Height                                   : 1 080 pixels
 Display aspect ratio                     : 16:9
 Frame rate                               : 25.000 FPS
 Color space                              : YUV
 Chroma subsampling                       : 4:2:0
 Bit depth                                : 8 bits
 Scan type                                : MBAFF
 Scan type, store method                  : Interleaved fields
 Scan order                               : Top Field First
 Color range                              : Limited
 Color primaries                          : BT.709
 Transfer characteristics                 : BT.709
 Matrix coefficients                      : BT.709

 Audio
 ID                                       : 257 (0x101)
 Menu ID                                  : 1 (0x1)
 Format                                   : AAC LC
 Format/Info                              : Advanced Audio Codec Low
 Complexity
 Muxing mode                              : LATM
 Codec ID                                 : 17-2
 Duration                                 : 2 h 44 min
 Bit rate mode                            : Variable
 Channel(s)                               : 2 channels
 Channel layout                           : L R
 Sampling rate                            : 48.0 kHz
 Frame rate                               : 46.875 FPS (1024 SPF)
 Compression mode                         : Lossy
 Delay relative to video                  : -1 s 539 ms
 Language                                 : English

 Text
 ID                                       : 258 (0x102)
 Menu ID                                  : 1 (0x1)
 Format                                   : DVB Subtitle
 Codec ID                                 : 6
 Duration                                 : 2 h 44 min
 Delay relative to video                  : 4 s 480 ms
 Language                                 : English

 Menu
 ID                                       : 4096 (0x1000)
 Menu ID                                  : 1 (0x1)
 Format                                   : AVC / AAC / DVB Subtitle
 Duration                                 : 2 h 44 min
 List                                     : 256 (0x100) (AVC) / 257 (0x101)
 (AAC, English) / 258 (0x102) (DVB Subtitle, English)
 Language                                 :  / English / English
 Service name                             : Service01
 Service provider                         : FFmpeg
 Service type                             : digital television
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/10284>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list