rdp / screen-capture-recorder-to-video-windows-free

a free open source windows "screen capture" device and recorder (also allows VLC/ffmpeg and others to capture/stream desktop/audio)
https://github.com/rdp/screen-capture-recorder-to-video-windows-free/releases
Other
2.09k stars 458 forks source link

virtual-audio-capturer causes "Real-time buffer full! Frame dropped!" on Windows 10 #68

Closed mmendeza closed 8 years ago

mmendeza commented 8 years ago

Hi,

I've been using this great tool to capture desktop video and audio in Windows 7 with the command line:

_ffmpeg -rtbufsize 2100M -f dshow -i video="screen-capture-recorder" -f dshow -i audio="virtual-audio-capturer" -af volume=300 -audio_buffer_size 80 -vcodec libx264 -preset ultrafast -tune zerolatency -acodec libmp3lame -q:a 6 -g 10 -b:v 1500k -movflags isml+fragkeyframe -r 30 -f ismv http://localhost/test.isml/Streams(Encoder1)

After upgrading to Windows 10 this command causes "Real-time buffer full! Frame dropped" every time.

Capturing only the video part seems to work fine though.

rdp commented 8 years ago

full console output please?

mmendeza commented 8 years ago

Video and audio console output:

D:\ffmpeg-20151004-git-84b4998-win64-static\bin>ffmpeg -rtbufsize 2100M  -f dshow -i video="screen-capture-recorder" -f dshow -i audio="virtual-audio-capturer" -af volume=300 -audio_buffer_size 80 -vcodec 
libx264  -preset ultrafast -tune zerolatency  -acodec libmp3lame -q:a 6 -g 10 -b:v 1500k -movflags isml+frag_keyframe -r 30 -f ismv http://localhost/test.isml/Streams(Encoder1)
ffmpeg version N-75746-g84b4998 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 5.2.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray 
--enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb 
--enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab 
--enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma 
--enable-decklink --enable-zlib
  libavutil      55.  2.100 / 55.  2.100
  libavcodec     57.  4.100 / 57.  4.100
  libavformat    57.  3.100 / 57.  3.100
  libavdevice    57.  0.100 / 57.  0.100
  libavfilter     6. 10.100 /  6. 10.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.100 /  2.  0.100
  libpostproc    54.  0.100 / 54.  0.100
leaving aero onInput #0, dshow, from 'video=screen-capture-recorder':
  Duration: N/A, start: 1225.705000, bitrate: N/A
    Stream #0:0: Video: rawvideo, bgr0, 1024x768, 30 tbr, 10000k tbn, 30 tbc
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (62% of size: 2100000000 [rtbufsize parameter])! frame dropped!
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (63% of size: 2100000000 [rtbufsize parameter])! frame dropped!
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (64% of size: 2100000000 [rtbufsize parameter])! frame dropped!
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (65% of size: 2100000000 [rtbufsize parameter])! frame dropped!
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (66% of size: 2100000000 [rtbufsize parameter])! frame dropped!
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (67% of size: 2100000000 [rtbufsize parameter])! frame dropped!
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (68% of size: 2100000000 [rtbufsize parameter])! frame dropped!
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (69% of size: 2100000000 [rtbufsize parameter])! frame dropped!
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (70% of size: 2100000000 [rtbufsize parameter])! frame dropped!
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (71% of size: 2100000000 [rtbufsize parameter])! frame dropped!
    Last message repeated 1 times
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (72% of size: 2100000000 [rtbufsize parameter])! frame dropped!
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (73% of size: 2100000000 [rtbufsize parameter])! frame dropped!
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (74% of size: 2100000000 [rtbufsize parameter])! frame dropped!
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (75% of size: 2100000000 [rtbufsize parameter])! frame dropped!
    Last message repeated 1 times
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (76% of size: 2100000000 [rtbufsize parameter])! frame dropped!
    Last message repeated 3 times
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (77% of size: 2100000000 [rtbufsize parameter])! frame dropped!
    Last message repeated 3 times
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (78% of size: 2100000000 [rtbufsize parameter])! frame dropped!
    Last message repeated 1 times
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (79% of size: 2100000000 [rtbufsize parameter])! frame dropped!
    Last message repeated 3 times
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (80% of size: 2100000000 [rtbufsize parameter])! frame dropped!
    Last message repeated 3 times
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (81% of size: 2100000000 [rtbufsize parameter])! frame dropped!
    Last message repeated 1 times
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (82% of size: 2100000000 [rtbufsize parameter])! frame dropped!
    Last message repeated 3 times
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (83% of size: 2100000000 [rtbufsize parameter])! frame dropped!
    Last message repeated 3 times
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (84% of size: 2100000000 [rtbufsize parameter])! frame dropped!
    Last message repeated 1 times
[dshow @ 000000aa7050bc60] real-time buffer [screen-capture-recorder] [video input] too full or near too full (85% of size: 2100000000 [rtbufsize parameter])! frame dropped!

Video only:

D:\ffmpeg-20151004-git-84b4998-win64-static\bin>ffmpeg -rtbufsize 2100M  -f dshow -i video="screen-capture-recorder" -vcodec libx264  -preset ultrafast -tune zerolatency  -g 10 -b:v 1500k -movflags 
isml+frag_keyframe -r 30 -f ismv http://localhost/test.isml/Streams(Encoder1)
ffmpeg version N-75746-g84b4998 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 5.2.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray 
--enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb 
--enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab 
--enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma 
--enable-decklink --enable-zlib
  libavutil      55.  2.100 / 55.  2.100
  libavcodec     57.  4.100 / 57.  4.100
  libavformat    57.  3.100 / 57.  3.100
  libavdevice    57.  0.100 / 57.  0.100
  libavfilter     6. 10.100 /  6. 10.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.100 /  2.  0.100
  libpostproc    54.  0.100 / 54.  0.100
leaving aero onInput #0, dshow, from 'video=screen-capture-recorder':
  Duration: N/A, start: 1374.819000, bitrate: N/A
    Stream #0:0: Video: rawvideo, bgr0, 1024x768, 30 tbr, 10000k tbn, 30 tbc
No pixel format specified, yuv444p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.
[libx264 @ 0000001ff68b1fc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0000001ff68b1fc0] profile High 4:4:4 Predictive, level 3.1, 4:4:4 8-bit
[libx264 @ 0000001ff68b1fc0] 264 - core 148 r2597 e86f3a1 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - 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=21,11 fast_pskip=1 chroma_qp_offset=6 threads=8 lookahead_threads=8 sliced_threads=1 slices=8 nr=0 
decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=10 keyint_min=1 scenecut=0 intra_refresh=0 rc=abr mbtree=0 bitrate=1500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 
qpstep=4 ip_ratio=1.40 aq=0
Output #0, ismv, to 'http://localhost/test.isml/Streams(Encoder1)':
  Metadata:
    encoder         : Lavf57.3.100
    Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv444p, 1024x768, q=-1--1, 1500 kb/s, 30 fps, 10000k tbn, 30 tbc
    Metadata:
      encoder         : Lavc57.4.100 libx264
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Press [q] to stop, [?] for help
frame=  556 fps= 31 q=38.0 Lsize=    5668kB time=00:00:18.53 bitrate=2505.3kbits/s
video:5651kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.295150%
[libx264 @ 0000001ff68b1fc0] frame I:56    Avg QP:36.68  size: 98419
[libx264 @ 0000001ff68b1fc0] frame P:500   Avg QP:39.93  size:   550
[libx264 @ 0000001ff68b1fc0] mb I  I16..4: 100.0%  0.0%  0.0%
[libx264 @ 0000001ff68b1fc0] mb P  I16..4:  0.2%  0.0%  0.0%  P16..4:  1.4%  0.0%  0.0%  0.0%  0.0%    skip:98.4%
[libx264 @ 0000001ff68b1fc0] final ratefactor: 37.68
[libx264 @ 0000001ff68b1fc0] coded y,u,v intra: 36.4% 22.8% 21.3% inter: 0.4% 0.0% 0.0%
[libx264 @ 0000001ff68b1fc0] i16 v,h,dc,p: 48% 35% 14%  3%
[libx264 @ 0000001ff68b1fc0] kb/s:2497.66
mmendeza commented 8 years ago

It seems that publishing the video in a smooth streaming publication point doesn't work as expected. All I see is a blank screen. I'm not sure if it has something to do with the device, because writing a simple mp4 file as output works fine.

rdp commented 8 years ago

try -pix_fmt yuv420p it seems more comptaible [?]

On Tue, Oct 6, 2015 at 5:18 AM, mmendeza notifications@github.com wrote:

It seems that publishing the video in a smooth streaming publication point doesn't work as expected. All I see is a blank screen. I'm not sure if it has something to do with the device, because writing a simple mp4 file as output works fine.

— Reply to this email directly or view it on GitHub https://github.com/rdp/screen-capture-recorder-to-video-windows-free/issues/68#issuecomment-145825207 .

mmendeza commented 8 years ago

Yes the video works with yuv420p thanks!