[FFmpeg-user] Delay in windows screen capture

Carl Zwanzig cpz at tuunq.com
Thu Sep 27 00:39:20 EEST 2018


I'm able to capture from a windows desktop and send that out a Blackmagic 
DeckLink card (in NTSC format), however there is a substantial delay, almost 
a second, between the windowz direct-connected monitor and the SDI monitor.

Thoughts on why this is happening? The system is not CPU bound, indeed, it's 
largely idle. Even scaling from 800x600 to 720x486 and converting the 
pix_fmt shouldn't take long and I wouldn't expect any encode/decode or other 
processing along the way.

The content I'm testing with is entirely still images played though a 
slide-show program; the fades between slides look fairly smooth on the SDI, 
just later than expected. (The screen is set to 800x600 as a convenience, 
it's the lowest 4:3 resolution the video card will do.)

# ./ffmpeg.exe -f gdigrab -draw_mouse 0 -framerate 30000/1001 -offset_x 1920 
-offset_y 0 -video_size 800x600 -i desktop -f decklink -pix_fmt uyvy422 -s 
720x486 -r 30000/1001 "DeckLink SDI 4K"
ffmpeg version N-91991-gc02ff77681-static Copyright (c) 2000-2018 the FFmpeg 
   built with gcc 8.2.0 (Rev1, Built by MSYS2 project)
   configuration: --extra-cflags=-I/mingw64/include 
--extra-ldflags=-L/mingw64/lib --extra-version=static 
--extra-cflags=--static --enable-static --disable-debug --disable-shared 
--disable-ffplay --disable-ffprobe --disable-doc --enable-decklink 
--enable-avfilter --extra-cflags=-I/mingw64/include/BMD
   libavutil      56. 19.101 / 56. 19.101
   libavcodec     58. 30.100 / 58. 30.100
   libavformat    58. 18.101 / 58. 18.101
   libavdevice    58.  4.103 / 58.  4.103
   libavfilter     7. 32.100 /  7. 32.100
   libswscale      5.  2.100 /  5.  2.100
   libswresample   3.  2.100 /  3.  2.100
[gdigrab @ 00000000006ebbc0] Capturing whole desktop as 800x600x32 at (1920,0)
Input #0, gdigrab, from 'desktop':
   Duration: N/A, start: 1537916427.265766, bitrate: 460352 kb/s
     Stream #0:0: Video: bmp, bgra, 800x600, 460352 kb/s, 29.97 fps, 33 tbr, 
1000k tbn, 1000k tbc
Stream mapping:
   Stream #0:0 -> #0:0 (bmp (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
[decklink @ 000000000079d040] Found Decklink mode 720 x 486 with rate 29.97(i)
Output #0, decklink, to 'DeckLink SDI 4K':
     encoder         : Lavf58.18.101
     Stream #0:0: Video: wrapped_avframe, uyvy422, 720x486, q=2-31, 200 
kb/s, 29.97 fps, 29.97 tbn, 29.97 tbc
       encoder         : Lavc58.30.100 wrapped_avframe
frame=2411422 fps= 30 q=-0.0 size=N/A time=22:21:01.11 bitrate=N/A dup=19 
drop=4 speed=   1x
(still running after 22 hours :) )

As a side note, I hate dealing with the non-square pixels of NTSC.



More information about the ffmpeg-user mailing list