glitchyme
glitchyme

Reputation: 287

ffmpeg capture output from child window

using xwininfo -all I'm able to see the stats of any window, along with its child windows

xwininfo: Window id: 0x3c000ba "Electro - The Slag & Prototype Raptor - Crescendo - YouTube - Mozilla Firefox"

  Root window id: 0xa8 (the root window) (has no name)
  Parent window id: 0xc001b8 (has no name)
     2 children:
     0x3c00175 (has no name): ()  1388x876+0+0  +52+24
        5 children:
        0x3d210ab (has no name): ()  854x510+225+197  +277+221
           1 child:
           0x3d210ac (has no name): ()  854x510+0+0  +277+221
              1 child:
              0x40404de "plugin-container": ("plugin-container" "Plugin-container")  854x510+0+0  +277+221
                 2 children:
                 0x40404e1 (has no name): ()  854x510+0+0  +277+221
                 0x40404df (has no name): ()  1x1+-1+-1  +276+220
        0x3ddbcf2 (has no name): ()  640x390+225+162  +277+186
           1 child:
           0x3ddbcf3 (has no name): ()  640x390+0+0  +277+186
              1 child:
              0x403d545 "plugin-container": ("plugin-container" "Plugin-container")  640x390+0+0  +277+186
                 2 children:
                 0x403d548 (has no name): ()  640x390+0+0  +277+186
                 0x403d546 (has no name): ()  1x1+-1+-1  +276+185
        0x3dac7f9 (has no name): ()  640x390+225+162  +277+186
           1 child:
           0x3dac7fa (has no name): ()  640x390+0+0  +277+186
              1 child:
              0x4039d8b "plugin-container": ("plugin-container" "Plugin-container")  640x390+0+0  +277+186
                 2 children:
                 0x4039d8e (has no name): ()  640x390+0+0  +277+186
                 0x4039d8c (has no name): ()  1x1+-1+-1  +276+185
        0x3c3f939 (has no name): ()  640x390+225+197  +277+221
           1 child:
           0x3c3f93a (has no name): ()  640x390+0+0  +277+221
              1 child:
              0x4011918 "plugin-container": ("plugin-container" "Plugin-container")  640x390+0+0  +277+221
                 2 children:
                 0x401191b (has no name): ()  640x390+0+0  +277+221
                 0x4011919 (has no name): ()  1x1+-1+-1  +276+220
        0x3c0d1dc (has no name): ()  1x1+0+97  +52+121
           1 child:
           0x3c0d1dd (has no name): ()  1x1+0+0  +52+121
              1 child:
              0x4002c1e "plugin-container": ("plugin-container" "Plugin-container")  1x1+0+0  +52+121
                 2 children:
                 0x4002c40 (has no name): ()  1x1+0+0  +52+121
                 0x4002c1f (has no name): ()  1x1+-1+-1  +51+120
     0x3c000bb (has no name): ()  1x1+-1+-1  +51+23

  Absolute upper-left X:  52
  Absolute upper-left Y:  24
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 1388
  Height: 876
  Depth: 24
  Visual: 0x23
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x20 (installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +52+24  -0+24  -0-0  +52-0
  -geometry 1388x876-0-0

  Bit gravity: NorthWestGravity
  Window gravity: NorthWestGravity
  Backing-store hint: NotUseful
  Backing-planes to be preserved: 0xffffffff
  Backing pixel: 0
  Save-unders: No

  Someone wants these events:
      KeyPress
      KeyRelease
      ButtonPress
      ButtonRelease
      EnterWindow
      LeaveWindow
      PointerMotion
      Exposure
      VisibilityChange
      StructureNotify
      FocusChange
      PropertyChange
  Do not propagate these events:
  Override redirection?: No

  Window manager hints:
      Client accepts input or input focus: Yes
      Initial state is Normal State
      Displayed on desktop 0
      Window type:
          Normal
      Window state:
          Maximized Vert
          Maximized Horz
      Process id: 4087 on host jb
      Frame extents: 0, 0, 0, 0

  Normal window size hints:
      Program supplied minimum size: 18 by 97
      Program supplied maximum size: 1073741824 by 1073741824
      Program supplied window gravity: NorthWestGravity
  No zoom window size hints defined

  No window shape defined
  No border shape defined

However, if I try capturing from the screen given the size and offset of the child window, then I risk losing data when another window floats ontop of it, I switch to another tab while recording, I resize the child window, or move the child window. Instead, I'd like to use ffmpeg to capture from specifically that child window.

Ideas? Tips? Maybe some other hacks to accomplish this? Thanks :)

Upvotes: 0

Views: 618

Answers (1)

Andrey Sidorov
Andrey Sidorov

Reputation: 25446

you should use composite extension, RedirectWindow request

Upvotes: 1

Related Questions