[FFmpeg-user] ffmpeg GPU selection issue
Matthew Reus
matthew.reus01 at gmail.com
Thu Sep 5 08:11:10 EEST 2019
yes , it taking the defined GPU and working fine ,
but there is showing dup frame
[h264 @ 0x565148b79140] SPS unavailable in decode_picture_timing
[h264 @ 0x565148b79140] non-existing PPS 0 referenced
[h264 @ 0x565148b79140] SPS unavailable in decode_picture_timing
[h264 @ 0x565148b79140] non-existing PPS 0 referenced
[h264 @ 0x565148b79140] decode_slice_header error
[h264 @ 0x565148b79140] no frame!
[h264 @ 0x565148b79140] SPS unavailable in decode_picture_timing
[h264 @ 0x565148b79140] non-existing PPS 0 referenced
[h264 @ 0x565148b79140] SPS unavailable in decode_picture_timing
[h264 @ 0x565148b79140] non-existing PPS 0 referenced
[h264 @ 0x565148b79140] decode_slice_header error
[h264 @ 0x565148b79140] no frame!
[h264 @ 0x565148b79140] SPS unavailable in decode_picture_timing
[h264 @ 0x565148b79140] non-existing PPS 0 referenced
[h264 @ 0x565148b79140] SPS unavailable in decode_picture_timing
[h264 @ 0x565148b79140] non-existing PPS 0 referenced
[h264 @ 0x565148b79140] decode_slice_header error
[h264 @ 0x565148b79140] no frame!
[h264 @ 0x565148b79140] SPS unavailable in decode_picture_timing
[h264 @ 0x565148b79140] non-existing PPS 0 referenced
[h264 @ 0x565148b79140] SPS unavailable in decode_picture_timing
[h264 @ 0x565148b79140] non-existing PPS 0 referenced
[h264 @ 0x565148b79140] decode_slice_header error
[h264 @ 0x565148b79140] no frame!
[h264 @ 0x565148b79140] mmco: unref short failure
[h264 @ 0x565148b79140] number of reference frames (0+4) exceeds max (3;
probably corrupt input), discarding one
Input #0, mpegts, from 'udp://@
224.2.2.21:5008?fifo_size=1000000\&overrun_nonfatal':
Duration: N/A, start: 82237.270033, bitrate: N/A
Program 60
Metadata:
service_name : BBS TV 1
service_provider:
Stream #0:0[0x3d]: Video: h264 (Main) ([27][0][0][0] / 0x001B),
yuv420p(tv, bt470bg, top first), 704x576 [SAR 12:11 DAR 4:3], 25 fps, 25
tbr, 90k tbn, 50 tbc
Stream #0:1[0x3e](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000 Hz,
stereo, s16p, 128 kb/s
[rtmp @ 0x565148b78a40] Ignoring unsupported var reason
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_nvenc))
Stream #0:1 -> #0:1 (mp2 (native) -> aac (native))
Press [q] to stop, [?] for help
[h264 @ 0x56514939de40] co located POCs unavailable
[h264 @ 0x5651493f6340] mmco: unref short failure
[h264 @ 0x5651493f6340] number of reference frames (0+4) exceeds max (3;
probably corrupt input), discarding one
Output #0, flv, to 'rtmp://
admin:netaccess at 192.168.0.44:1935/nettv/netBBS11500.stream':
Metadata:
encoder : Lavf58.30.100
Stream #0:0: Video: h264 (h264_nvenc) (Main) ([7][0][0][0] / 0x0007),
cuda, 880x720 [SAR 12:11 DAR 4:3], q=-1--1, 1800 kb/s, 25 fps, 1k tbn, 25
tbc
Metadata:
encoder : Lavc58.55.100 h264_nvenc
Side data:
cpb: bitrate max/min/avg: 1800000/0/1800000 buffer size: 1800000
vbv_delay: -1
Stream #0:1(eng): Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz,
stereo, fltp, 64 kb/s
Metadata:
encoder : Lavc58.55.100 aac
[h264 @ 0x5651493aed00] *mmco: unref short failure0:29:05.24
bitrate=1874.2kbits/s dup=26 drop=0 *speed= 1x
Last message repeated 1 times
[h264 @ 0x5651493aed00] number of reference frames (0+4) exceeds max (3;
probably corrupt input), discarding one
On Thu, Sep 5, 2019 at 4:11 AM Dennis Mungai <dmngaie at gmail.com> wrote:
> On Wed, 4 Sep 2019 at 18:28, Dennis Mungai <dmngaie at gmail.com> wrote:
> >
> > On Wed, 4 Sep 2019 at 10:39, Matthew Reus <matthew.reus01 at gmail.com>
> wrote:
> > >
> > > Hello
> > > I have ubuntu 18.04 server where i have install ffmpeg and compile sdk
> as
> > > well as all requirement of NVIDIA tesla M 60 driver .
> > >
> > >
> > > *1.Issue is whenever i define gpu , both gpu 1 and gpu2 take the
> process *
> > >
> > > *2.ffmepg mostof the time shows frame drops and video buffer *
> > >
> > > *Here is have attached all the output and script *
> > >
> > > ffmpeg version N-94423-ga0c1970 Copyright (c) 2000-2019 the FFmpeg
> > > developers
> > > built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
> > > configuration: --prefix=/root/ffmpeg_build
> --pkg-config-flags=--static
> > > --extra-cflags=-I/root/ffmpeg_build/include
> > > --extra-ldflags=-L/root/ffmpeg_build/lib --extra-libs='-lpthread -lm'
> > > --bindir=/root/bin --enable-cuda --enable-cuvid --enable-libnpp
> > > --extra-cflags=-I../nv_sdk --extra-ldflags=-L../nv_sdk
> --enable-cuda-nvcc
> > > --enable-nvenc --extra-cflags=-I/usr/local/cuda/include/
> > > --extra-ldflags=-L/usr/local/cuda/lib64/ --enable-gpl --enable-libaom
> > > --enable-libass --enable-libfdk-aac --enable-vaapi --enable-libfreetype
> > > --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx
> > > --enable-libx264 --enable-libx265 --enable-nonfree
> > > libavutil 56. 32.100 / 56. 32.100
> > > libavcodec 58. 55.100 / 58. 55.100
> > > libavformat 58. 30.100 / 58. 30.100
> > > libavdevice 58. 9.100 / 58. 9.100
> > > libavfilter 7. 58.100 / 7. 58.100
> > > libswscale 5. 6.100 / 5. 6.100
> > > libswresample 3. 6.100 / 3. 6.100
> > > libpostproc 55. 6.100 / 55. 6.100
> > > Hyper fast Audio and Video encoder
> > > usage: ffmpeg [options] [[infile options] -i infile]... {[outfile
> options]
> > > outfile}...
> > >
> > >
> > > *My test script is *
> > > *ffmpeg -hwaccel_device 1 -hwaccel auto -i
> > > 'udp://@224.2.2.21:5008?fifo_size=1000000\&overrun_nonfatal
> <http://224.2.2.21:5008?fifo_size=1000000%5C&overrun_nonfatal>
> > > <http://224.2.2.21:5008?fifo_size=1000000\&overrun_nonfatal>' -vf
> > > "hwupload_cuda,format=yuv420p|cuda,yadif_cuda=0:-1:0,scale_npp=-1:720"
> -c:v
> > > h264_nvenc -gpu 1 -b:v 1800k -c:a aac -aspect 16:9 -g 50 -b:a 64k
> -ar
> > > 44100 -ac 2 -f flv
> > > 'rtmp://admin:netaccess@192.168.0.44:1935/nettv/netBBS11500.stream
> > > <http://admin:netaccess@192.168.0.44:1935/nettv/netBBS11500.stream>'
> > > </dev/null >/dev/null 2>/var/log/BBs1.log &*
> > >
> > >
> > > ffmpeg version N-94423-ga0c1970 Copyright (c) 2000-2019 the FFmpeg
> > > developers
> > > built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
> > > configuration: --prefix=/root/ffmpeg_build
> --pkg-config-flags=--static
> > > --extra-cflags=-I/root/ffmpeg_build/include
> > > --extra-ldflags=-L/root/ffmpeg_build/lib --extra-libs='-lpthread -lm'
> > > --bindir=/root/bin --enable-cuda --enable-cuvid --enable-libnpp
> > > --extra-cflags=-I../nv_sdk --extra-ldflags=-L../nv_sdk
> --enable-cuda-nvcc
> > > --enable-nvenc --extra-cflags=-I/usr/local/cuda/include/
> > > --extra-ldflags=-L/usr/local/cuda/lib64/ --enable-gpl --enable-libaom
> > > --enable-libass --enable-libfdk-aac --enable-vaapi --enable-libfreetype
> > > --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx
> > > --enable-libx264 --enable-libx265 --enable-nonfree
> > > libavutil 56. 32.100 / 56. 32.100
> > > libavcodec 58. 55.100 / 58. 55.100
> > > libavformat 58. 30.100 / 58. 30.100
> > > libavdevice 58. 9.100 / 58. 9.100
> > > libavfilter 7. 58.100 / 7. 58.100
> > > libswscale 5. 6.100 / 5. 6.100
> > > libswresample 3. 6.100 / 3. 6.100
> > > libpostproc 55. 6.100 / 55. 6.100
> > > [h264 @ 0x559b7b7248c0] SPS unavailable in decode_picture_timing
> > > [h264 @ 0x559b7b7248c0] non-existing PPS 0 referenced
> > > [h264 @ 0x559b7b7248c0] SPS unavailable in decode_picture_timing
> > > [h264 @ 0x559b7b7248c0] non-existing PPS 0 referenced
> > > [h264 @ 0x559b7b7248c0] decode_slice_header error
> > > [h264 @ 0x559b7b7248c0] no frame!
> > > [h264 @ 0x559b7b7248c0] SPS unavailable in decode_picture_timing
> > > [h264 @ 0x559b7b7248c0] non-existing PPS 0 referenced
> > > [h264 @ 0x559b7b7248c0] SPS unavailable in decode_picture_timing
> > > [h264 @ 0x559b7b7248c0] non-existing PPS 0 referenced
> > > [h264 @ 0x559b7b7248c0] decode_slice_header error
> > > [h264 @ 0x559b7b7248c0] no frame!
> > > [h264 @ 0x559b7b7248c0] SPS unavailable in decode_picture_timing
> > > [h264 @ 0x559b7b7248c0] non-existing PPS 0 referenced
> > > [h264 @ 0x559b7b7248c0] SPS unavailable in decode_picture_timing
> > > [h264 @ 0x559b7b7248c0] non-existing PPS 0 referenced
> > > [h264 @ 0x559b7b7248c0] decode_slice_header error
> > > [h264 @ 0x559b7b7248c0] no frame!
> > > [h264 @ 0x559b7b7248c0] mmco: unref short failure
> > > Last message repeated 1 times
> > > [h264 @ 0x559b7b7248c0] number of reference frames (0+4) exceeds max
> (3;
> > > probably corrupt input), discarding one
> > > Input #0, mpegts, from 'udp://@
> > > 224.2.2.21:5008?fifo_size=1000000\&overrun_nonfatal
> <http://224.2.2.21:5008?fifo_size=1000000%5C&overrun_nonfatal>':
> > > Duration: N/A, start: 7352.806033, bitrate: N/A
> > > Program 60
> > > Metadata:
> > > service_name : BBS TV 1
> > > service_provider:
> > > Stream #0:0[0x3d]: Video: h264 (Main) ([27][0][0][0] / 0x001B),
> > > yuv420p(tv, bt470bg, top first), 704x576 [SAR 12:11 DAR 4:3], 25 fps,
> 50
> > > tbr, 90k tbn, 50 tbc
> > > Stream #0:1[0x3e](eng): Audio: mp2 ([4][0][0][0] / 0x0004), 48000
> Hz,
> > > stereo, s16p, 128 kb/s
> > > [rtmp @ 0x559b7b7241c0] Ignoring unsupported var reason
> > > [h264 @ 0x559b7b73eb80] Using auto hwaccel type cuda with new device
> > > created from 1.
> > > Stream mapping:
> > > Stream #0:0 -> #0:0 (h264 (native) -> h264 (h264_nvenc))
> > > Stream #0:1 -> #0:1 (mp2 (native) -> aac (native))
> > > Press [q] to stop, [?] for help
> > > [h264 @ 0x559b7c007e00] reference picture missing during reorder
> > > [h264 @ 0x559b7c007e00] Missing reference picture, default is 65297
> > > [h264 @ 0x559b7c024680] mmco: unref short failure
> > > Last message repeated 1 times
> > > [h264 @ 0x559b7c024680] number of reference frames (0+4) exceeds max
> (3;
> > > probably corrupt input), discarding one
> > > [h264 @ 0x559b7c05d780] mmco: unref short failure
> > > [h264 @ 0x559b7c108940] mmco: unref short failure
> > > Output #0, flv, to 'rtmp://
> > > admin:netaccess at 192.168.0.44:1935/nettv/netBBS11500.stream':
> > > Metadata:
> > > encoder : Lavf58.30.100
> > > Stream #0:0: Video: h264 (h264_nvenc) (Main) ([7][0][0][0] /
> 0x0007),
> > > cuda, 880x720 [SAR 16:11 DAR 16:9], q=-1--1, 1800 kb/s, 25 fps, 1k
> tbn, 25
> > > tbc
> > > Metadata:
> > > encoder : Lavc58.55.100 h264_nvenc
> > > Side data:
> > > cpb: bitrate max/min/avg: 0/0/1800000 buffer size: 3600000
> vbv_delay:
> > > -1
> > > Stream #0:1(eng): Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100
> Hz,
> > > stereo, fltp, 64 kb/s
> > > Metadata:
> > > encoder : Lavc58.55.100 aac
> > > root at ubuntu:/var/log# 17.0 size= 68167kB time=00:04:54.44
> > > bitrate=1896.6kbits/s speed=1.02x
> >
> >
> > Hello there,
> >
> > Please try this. I've simplified your command a bit for legibility.
> > These `<>` have been dropped.
> >
> > ffmpeg -fflags +genpts -vsync 1 -threads 4 \
> > -hwaccel nvdec -hwaccel_device 1 -hwaccel_output_format cuda \
> > -i 'udp://@224.2.2.21:5008?fifo_size=1000000\&overrun_nonfatal
> <http://224.2.2.21:5008?fifo_size=1000000%5C&overrun_nonfatal> \
> > -vf "yadif_cuda=0:-1:0,scale_npp=-1:720" \
> > -c:v h264_nvenc -preset:v llhq -rc:v cbr_ld_hq -gpu 1 -b:v 1800k
> > -maxrate:v 1800k -bufsize:v 1800k -r:v 25 -g:v 50 \
> > -c:a aac -b:a 64k -ar 44100 -ac 2 \
> > -f flv -flags +global_header -map 0 \
> > 'rtmp://admin:netaccess@192.168.0.44:1935/nettv/netBBS11500.stream'
> >
> > A few notes:
> >
> > 1. Note how we call up the hwaccel method. Please don't set this to
> > auto. Judging by your console output, you definitely have nvdec
> > available. Use it.
> >
> > 2. See how we request for a specific texture format output from the
> > decoder tied to the hwaccel method. In this case we ask for cuda. That
> > way you can skip the unnecessary hwupload parts in your previous
> > script. These extra bits will definitely slow you down.
> >
> > 3. The thread count (-threads 4) is explicitly set to a low value, 4.
> > For hwaccels such as nvdec, this is ideal. Very high numbers (~16+)
> > may result in decoder initialization failure, with warnings.
> >
> > 4. On encoder presets: You're using a Maxwell Gen 2 GPU (a Tesla M60).
> > Based on your previous command line, I assumed you're targeting
> > constant bitrate output. With that in mind, the command above selects
> > the low latency high quality preset (-preset:v llhq) whose rate
> > control method is overridden to constant bitrate, low latency high
> > quality mode (-cbr:v cbr_ld_hq) while adapting your selected GOP size
> > and frame rate.
> >
> > 5. On device selection: This is governed by the -hwaccel_device
> > arguments passed to the underlying hwaccel , and for the encoder, the
> > -gpu argument takes precedence. Your mistake in the previous command
> > was calling up hwupload_cuda without specifying a device to use. Your
> > previous arguments resulted in the creation of a random CUDA device in
> > the middle of a filter chain, invoking expensive copies to and from
> > system memory. And that will definitely slow down the encoder.
> >
> > As an example, with a single RTX 2080 on my laptop encoding one of the
> > C-band satellite capture samples from https://kodi.wiki/view/Samples :
> >
> > cd ~/test
> > time ffmpeg -fflags +genpts -vsync 1 -threads 4 \
> > -hwaccel nvdec -hwaccel_device 0 -hwaccel_output_format cuda \
> > -i 'test.mkv' \
> > -vf "yadif_cuda=0:-1:0,scale_npp=-1:720" \
> > -c:v h264_nvenc -preset:v llhq -rc:v cbr_ld_hq -gpu 0 -b:v 1800k
> > -maxrate:v 1800k -bufsize:v 1800k -r:v 59.94 -g:v 59.98 \
> > -c:a aac -b:a 64k -ar 44100 -ac 2 \
> > -f flv -flags +global_header -map 0 'test.flv'
> >
> > And this runs at a sweet, sweet ~11x speed:
> >
> > frame=17791 fps=657 q=27.0 Lsize= 68121kB time=00:04:56.92
> > bitrate=1879.4kbits/s dup=8895 drop=0 speed= 11x
> > video:65225kB audio:2336kB subtitle:0kB other streams:0kB global
> > headers:0kB muxing overhead: 0.829441%
> > [aac @ 0x561db5b25440] Qavg: 153.261
> >
> > real 0m27.461s
> > user 0m15.690s
> > sys 0m1.404s
> >
> >
> > At the very least, on your hardware, you should be getting throughput
> > speeds in multiples of ~1x with no drops whatsoever.
> >
> > Test and report back.
> >
> > Warm regards,
> >
> > Dennis.
>
> With proper escapes:
>
> ffmpeg -fflags +genpts -vsync 1 -threads 4 \
> -hwaccel nvdec -hwaccel_device 1 -hwaccel_output_format cuda \
> -i 'udp://@224.2.2.21:5008?fifo_size=1000000\&overrun_nonfatal
> <http://224.2.2.21:5008?fifo_size=1000000%5C&overrun_nonfatal> \
> -vf "yadif_cuda=0:-1:0,scale_npp=-1:720" \
> -c:v h264_nvenc -preset:v llhq -rc:v cbr_ld_hq -gpu 1 -b:v 1800k \
> -maxrate:v 1800k -bufsize:v 1800k -r:v 25 -g:v 50 \
> -c:a aac -b:a 64k -ar 44100 -ac 2 \
> -f flv -flags +global_header -map 0 \
> 'rtmp://admin:netaccess@192.168.0.44:1935/nettv/netBBS11500.stream'
>
> Test and report back, thanks.
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-user
mailing list