FFMPEG problems with real-time buffer
Asked Answered
R

2

6

I'm trying to use FFMPEG (Windows) to encode a stream from a video capture card via dshow and send to a RTMP server. THis is my command line;

    ffmpeg -f dshow -i video="AVerMedia BDA Analog Capture Secondary":audio="Microphone (6- C-Media USB Audi" -vf scale=1280:720 -vcodec libx264 -r 30 -rtbufsize 702000k -acodec mp3 -ac 2 -ar 44100 -ab 128k -pix_fmt yuv420p -tune zerolatency -preset ultrafast -f flv "rtmp://xxx.xxx.xxx.xxx/stream/key"        ffmpeg version N-86950-g1bef008 Copyright (c) 2000-2017 the FFmpeg developers
    built with gcc 7.1.0 (GCC)
    configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable
    -libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspe
    ex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
    libavutil      55. 70.100 / 55. 70.100
    libavcodec     57.102.100 / 57.102.100
    libavformat    57. 76.100 / 57. 76.100
    libavdevice    57.  7.100 / 57.  7.100
    libavfilter     6. 98.100 /  6. 98.100
    libswscale      4.  7.102 /  4.  7.102
    libswresample   2.  8.100 /  2.  8.100
    libpostproc    54.  6.100 / 54.  6.100
    Guessed Channel Layout for Input Stream #0.1 : stereo
    Input #0, dshow, from 'video=AVerMedia BDA Analog Capture Secondary:audio=Microphone (6- C-Media USB Audi':
    Duration: N/A, start: 2035.202000, bitrate: N/A
    Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 720x480, 29.97 fps, 29.97 tbr, 10000k tbn, 10000k tbc
    Stream #0:1: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
    [dshow @ 00000000005f90e0] real-time buffer [AVerMedia BDA Analog Capture Secondary] [video input] too full or near too full (68% of size: 3041280 [rtbufsize parameter])! frame dropped!
    [dshow @ 00000000005f90e0] real-time buffer [AVerMedia BDA Analog Capture Secondary] [video input] too full or near too full (90% of size: 3041280 [rtbufsize parameter])! frame dropped!
    [dshow @ 00000000005f90e0] real-time buffer [AVerMedia BDA Analog Capture Secondary] [video input] too full or near too full (113% of size: 3041280 [rtbufsize parameter])! frame dropped!
    Last message repeated 46 times
    Stream mapping:
    Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
    Stream #0:1 -> #0:1 (pcm_s16le (native) -> mp3 (libmp3lame))
    Press [q] to stop, [?] for help
    [dshow @ 00000000005f90e0] real-time buffer [AVerMedia BDA Analog Capture Secondary] [video input] too full or near too full (113% of size: 3041280 [rtbufsize parameter])! frame dropped!
    [libx264 @ 0000000005b16640] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0000000005b16640] profile Constrained Baseline, level 3.1
    [libx264 @ 0000000005b16640] 264 - core 152 r2851 ba24899 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=2
    1,11 fast_pskip=1 chroma_qp_offset=0 threads=11 lookahead_threads=11 sliced_threads=1 slices=11 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ra
    tio=1.40 aq=0
    [dshow @ 00000000005f90e0] real-time buffer [AVerMedia BDA Analog Capture Secondary] [video input] too full or near too full (113% of size: 3041280 [rtbufsize parameter])! frame dropped!
    Past duration 0.999992 too large

The buffer too full message are non-stop. I can use Open Broadcast Software (OBS) and stream with no problem (I'm pretty sure it also uses ffmpeg), so I'm doing something wrong.

Regular answered 11/8, 2017 at 20:51 Comment(0)
A
14

Increase the input buffer size.

ffmpeg -f dshow -rtbufsize 100M -i ...
Acidic answered 12/8, 2017 at 5:4 Comment(5)
Oh yeah, I forgot to mention, even if I do try and change the buffer size with that same command, it still gives me an error; never accepting the command and keeping the size: 3041280Regular
Run the command with -report and rtbufsize and share the report.Acidic
As shown in my answer, rtbufsize goes before the input name since it applies to inputs.Acidic
Yep. just fixed that. It took the change, So now I'm still getting the same error, but it just takes about 10 seconds before it starts doing it: pastebin.com/ygj4hide pastebin.com/GmrmxBgPRegular
Instead of streaming elsewhere, save the output to FLV file and check.Acidic
M
1

I know this is a long time from the original posting, but I ran into the same problem. I fixed it by making the buffers even larger.

ffmpeg -hide_banner -loglevel info -stats -thread_queue_size 4096 -f dshow ^ -video_size 1920x1080 -rtbufsize 200M -thread_queue_size 10M ^ -i video="FHD Capture":audio="Digital Audio Interface (3- FHD Capture)" ^ -y E:\Capture\Test3.mkv

Now I just have to get it to work with a QSV (Intel) acellerated codec.

Martingale answered 27/6, 2024 at 11:53 Comment(0)

© 2022 - 2025 — McMap. All rights reserved.