Opened 8 months ago

Last modified 8 months ago

#7561 new defect

nvenc option -b_ref_mode middle outputs excessive log information about timestamps

Reported by: malakudi Owned by:
Priority: normal Component: undetermined
Version: git-master Keywords: nvenc
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Latest nvenc version have support for b-pyramid type of encoding, with option -b_ref_mode middle. When using this option, default log level is full of the following type of messages:

[mpegts @ 0x55853b4aaa40] Invalid DTS: 698400 PTS: 696600 in output stream 0:0, replacing by guess
[mpegts @ 0x55853b4aaa40] Invalid DTS: 705600 PTS: 703800 in output stream 0:0, replacing by guess
[mpegts @ 0x55853b4aaa40] Invalid DTS: 712800 PTS: 711000 in output stream 0:0, replacing by guess
[mpegts @ 0x55853b4aaa40] Invalid DTS: 720000 PTS: 718200 in output stream 0:0, replacing by guess
[mpegts @ 0x55853b4aaa40] Invalid DTS: 727200 PTS: 725400 in output stream 0:0, replacing by guess
[mpegts @ 0x55853b4aaa40] Invalid DTS: 734400 PTS: 732600 in output stream 0:0, replacing by guess

which keep running all the time. They are also shown with -loglevel warning and they do not show with -loglevel error and below. Output transcoded video seems to be OK.

How to reproduce:

./ffmpeg-git -f mpegts -i input.ts -vcodec h264_nvenc -refs 4 -bf 3 -b_ref_mode middle -c:a copy -f mpegts -y /dev/null
ffmpeg version N-92510-gfa08345e88 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
  configuration: --enable-runtime-cpudetect --disable-decoder=amrnb --disable-decoder=libopenjpeg --disable-mips32r2 --disable-mips32r6 --disable-mips64r6 --disable-mipsdsp --disable-mipsdspr2 --disable-mipsfpu --disable-msa --disable-libopencv --disable-podpages --disable-sndio --disable-debug --enable-libaom --enable-avfilter --enable-gcrypt --enable-gnutls --enable-gpl --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libfdk-aac --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libilbc --enable-libkvazaar --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx265 --enable-libxvid --enable-libzvbi --enable-libnpp --enable-cuda-sdk --enable-nonfree --enable-opencl --enable-opengl --enable-postproc --enable-pthreads --enable-static --disable-shared --enable-version3 --enable-libwebp --incdir=/usr/include/x86_64-linux-gnu --libdir=/usr/lib/x86_64-linux-gnu --prefix=/usr --toolchain=hardened --enable-frei0r --enable-chromaprint --enable-libx264 --enable-libiec61883 --enable-libdc1394 --enable-vaapi --enable-libmfx --disable-altivec --shlibdir=/usr/lib/x86_64-linux-gnu
  libavutil      56. 23.101 / 56. 23.101
  libavcodec     58. 39.100 / 58. 39.100
  libavformat    58. 22.100 / 58. 22.100
  libavdevice    58.  6.100 / 58.  6.100
  libavfilter     7. 46.100 /  7. 46.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, mpegts, from 'input.ts':
  Duration: 00:01:42.92, start: 1.400000, bitrate: 1302 kb/s
  Program 1 
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, smpte170m, top first), 720x576 [SAR 16:11 DAR 20:11], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x101](gre): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 160 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_nvenc))
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
Output #0, mpegts, to '/dev/null':
  Metadata:
    encoder         : Lavf58.22.100
    Stream #0:0: Video: h264 (h264_nvenc) (Main), yuv420p, 720x576 [SAR 16:11 DAR 20:11], q=-1--1, 2000 kb/s, 25 fps, 90k tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.39.100 h264_nvenc
    Side data:
      cpb: bitrate max/min/avg: 0/0/2000000 buffer size: 4000000 vbv_delay: -1
    Stream #0:1(gre): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 160 kb/s
[mpegts @ 0x5577b703c780] Invalid DTS: 136800 PTS: 133200 in output stream 0:0, replacing by guess
[mpegts @ 0x5577b703c780] Invalid DTS: 151200 PTS: 147600 in output stream 0:0, replacing by guess
[mpegts @ 0x5577b703c780] Invalid DTS: 165600 PTS: 162000 in output stream 0:0, replacing by guess
[mpegts @ 0x5577b703c780] Invalid DTS: 180000 PTS: 176400 in output stream 0:0, replacing by guess
... many similar lines removed ...
[mpegts @ 0x5577b703c780] Invalid DTS: 9180000 PTS: 9176400 in output stream 0:0, replacing by guess
[mpegts @ 0x5577b703c780] Invalid DTS: 9194400 PTS: 9190800 in output stream 0:0, replacing by guess
[mpegts @ 0x5577b703c780] Invalid DTS: 9208800 PTS: 9205200 in output stream 0:0, replacing by guess
[mpegts @ 0x5577b703c780] Invalid DTS: 9223200 PTS: 9219600 in output stream 0:0, replacing by guess
[mpegts @ 0x5577b703c780] Invalid DTS: 9237600 PTS: 9234000 in output stream 0:0, replacing by guess
[mpegts @ 0x5577b703c780] Invalid DTS: 9252000 PTS: 9248400 in output stream 0:0, replacing by guess
frame= 2537 fps=507 q=16.0 Lsize=   29012kB time=00:01:42.84 bitrate=2311.0kbits/s speed=20.6x    
video:24582kB audio:1995kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 9.165133%

Options -refs 4 -bf 3 are used in order to enable support for b_ref_mode middle - minimum values for it to work is -refs 3 -bf 2.

The ticket is opened because nvenc ffmpeg code or nvenc library from nvidia should either not produce bad timestamps that make ffmpeg report them or, since it doesn't affect output, ffmpeg should not report it so heavily.

Change History (1)

comment:1 Changed 8 months ago by cehoyos

  • Keywords nvenc added
Note: See TracTickets for help on using tickets.