Opened 7 years ago
Closed 6 years ago
#8232 closed defect (invalid)
decklink -> nvenc -> mpegts crush
| Reported by: | ANTON CHELOSHKIN | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | undetermined |
| Version: | unspecified | Keywords: | nvenc |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
Summary of the bug:
Hello!
Ubuntu 18.04.3
ffmpeg 4.2
Driver Version: 435.21
CUDA Version: 10.1
Nvenc version 9.1
Capture Device: DeckLink Mini Recorder 4K
GPU: NVidia GeForce GTX 1660
i need stream input video to mpegts udp:
How to reproduce:
% ffmpeg \
-use_wallclock_as_timestamps 1 \
-loglevel debug \
-hwaccel nvdec \
-threads 8 -thread_type frame \
-f decklink \
-video_pts wallclock \
-audio_pts wallclock \
-draw_bars true \
-raw_format yuv422p10 \
-channels 2 \
-i 'DeckLink Mini Recorder 4K' \
\
-c:v h264_nvenc \
-vsync 0 \
-preset:v slow \
-profile:v high \
-level:v 4.2 \
-rc cbr_hq \
-rc-lookahead 32 \
-surfaces 64 \
-weighted_pred 1 \
-pix_fmt yuv420p \
-b:v 4.8M \
-cq 17 \
-qmin 1 \
-qmax 18 \
-g 12 \
-refs 2 \
\
-c:a libfdk_aac \
-profile:a aac_he_v2 \
-ac 2 \
-ar 48000 \
-af 'aresample=async=1' \
\
-f mpegts 'udp://@239.0.0.1:2266?pkt_size=1316&fifo_size=1000000&buffer_size=100000000&overrun_nonfatal=1'
ffmpeg version 4.2.git-3 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
configuration: --prefix=/tmp/ffmpeg_build --extra-version=3 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --extra-cflags=-I/tm
p/ffmpeg_build/include --extra-ldflags=-L/tmp/ffmpeg_build/lib --enable-gpl --disable-stripping --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable
-txtpages --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfontconfig --ena
ble-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librsvg --enable-libshin
e --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-li
bwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-frei0r --enable-l
ibx264 --enable-shared --enable-decklink --extra-cflags=-I/home/karcun/src/BMSDK11.3 --extra-ldflags=-L/home/karcun/src/BMSDK11.3 --enable-nonfree --extra-ldflags='-static-libst
dc++ -static-libgcc' --enable-static --enable-pic --enable-libfdk-aac --enable-cross-compile --pkg-config=pkg-config --enable-libnpp --enable-cuda-nvcc --enable-cuvid --enable-n
venc --enable-libopenmpt --enable-libxml2 --enable-libzmq --enable-opencl --arch=x86_64
after some little time of encoding, it crushes with one of reasons:
frame=17251 fps= 25 q=26.0 size= 420858kB time=00:11:29.95 bitrate=4997.0kbits/s speed= 1x
frame=17264 fps= 25 q=26.0 size= 421170kB time=00:11:30.50 bitrate=4996.7kbits/s speed= 1x
[decklink @ 0x55dc42b4ac00] Frame received (#17275) - Valid (5529600B) - QSize 0.000000MB
frame=17277 fps= 25 q=26.0 size= 421484kB time=00:11:31.01 bitrate=4996.7kbits/s speed= 1x
[decklink @ 0x55dc42b4ac00] Frame received (#17300) - Valid (5529600B) - QSize 63.378754MB
[decklink @ 0x55dc42b4ac00] Frame received (#17325) - Valid (5529600B) - QSize 195.402374MB
[decklink @ 0x55dc42b4ac00] Frame received (#17350) - Valid (5529600B) - QSize 327.425995MB
[decklink @ 0x55dc42b4ac00] Frame received (#17375) - Valid (5529600B) - QSize 459.449615MB
[decklink @ 0x55dc42b4ac00] Frame received (#17400) - Valid (5529600B) - QSize 591.473236MB
[decklink @ 0x55dc42b4ac00] Frame received (#17425) - Valid (5529600B) - QSize 723.496857MB
[decklink @ 0x55dc42b4ac00] Frame received (#17450) - Valid (5529600B) - QSize 855.520477MB
[decklink @ 0x55dc42b4ac00] Frame received (#17475) - Valid (5529600B) - QSize 987.544098MB
[decklink @ 0x55dc42b4ac00] Decklink input buffer overrun!
Last message repeated 36 times
[decklink @ 0x55dc42b4ac00] Frame received (#17500) - Valid (5529600B) - QSize 1024.503296MB
[decklink @ 0x55dc42b4ac00] Decklink input buffer overrun!
Last message repeated 49 times
[decklink @ 0x55dc42b4ac00] Frame received (#17525) - Valid (5529600B) - QSize 1024.503296MB
[decklink @ 0x55dc42b4ac00] Decklink input buffer overrun!
Last message repeated 49 times
[decklink @ 0x55dc42b4ac00] Frame received (#17550) - Valid (5529600B) - QSize 1024.503296MB
[decklink @ 0x55dc42b4ac00] Decklink input buffer overrun!
Last message repeated 49 times
and ffmpeg stay alive with repeating:
[decklink @ 0x55dc42b4ac00] Decklink input buffer overrun!
[decklink @ 0x55dc42b4ac00] Frame received (#{frame_number}) - Valid (5529600B) - QSize 1024.503296MB
syslog:
kernel: [ 1240.080358] NVRM: GPU at PCI:0000:01:00: GPU-6caba61c-b997-efe4-1f42-012b974eadb5 kernel: [ 1240.080362] NVRM: GPU Board Serial Number: kernel: [ 1240.080369] NVRM: Xid (PCI:0000:01:00): 31, pid=2196, Ch 00000038, intr 00000000. MMU Fault: ENGINE NVENC0 HUBCLIENT_NVENC0 faulted @ 0x0_00001000. Fault is of type FAULT_PDE ACCESS_TYPE_VIRT_READ
or:
[h264_nvenc @ 0x5612f414e040] Failed locking bitstream buffer: invalid param (8) Video encoding failed [libfdk_aac @ 0x5612f416b480] 4 frames left in the queue on closing Conversion failed!
it`s bug or i do it wrong?
Attachments (1)
Change History (4)
comment:1 by , 7 years ago
| Component: | ffmpeg → undetermined |
|---|---|
| Priority: | critical → normal |
| Version: | 4.2 → unspecified |
comment:2 by , 7 years ago
hmm... it`s a driver bug.
when i do pipeline:
decklink > libx246(q=1-3) -> rtmp (150Mbit/s) -> h264_nvenc(mpegts udp)
, it`s working fine!
most likely this is a bug of the proprietary nvidia driver.
i include complete ffmpeg output.
command is:
ffmpeg \
-use_wallclock_as_timestamps 1 \
-loglevel debug \
-hwaccel nvdec \
-threads 8 -thread_type frame \
-f decklink \
-video_pts wallclock \
-audio_pts wallclock \
-draw_bars true \
-raw_format yuv422p10 \
-channels 2 \
-i 'DeckLink Mini Recorder 4K' \
\
-c:v h264_nvenc \
-vsync 0 \
-preset:v slow \
-profile:v high \
-level:v 4.2 \
-rc cbr_hq \
-rc-lookahead 32 \
-surfaces 64 \
-weighted_pred 1 \
-pix_fmt yuv420p \
-b:v 4.8M \
-cq 17 \
-qmin 1 \
-qmax 18 \
-g 12 \
-refs 2 \
\
-c:a libfdk_aac \
-profile:a aac_he_v2 \
-ac 2 \
-ar 48000 \
-af 'aresample=async=1' \
\
-f mpegts 'udp://@239.0.0.1:2266?pkt_size=1316&fifo_size=1000000&buffer_size=100000000&overrun_nonfatal=1'
comment:3 by , 6 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
Afaict, the kernel messages do not indicate a bug that can be fixed in FFmpeg.



Please test current FFmpeg git head and provide the command line you tested together with the complete, uncut console output to make this a valid ticket.