Recherche avancée

Médias (0)

Mot : - Tags -/images

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (68)

Sur d’autres sites (11700)

  • Pointers returned by xlib don't match any existing window IDs

    1er septembre 2022, par Kroltan

    I'm using some X11 bindings to query some window information and later pass it to FFmpeg. FFmpeg expects a "window ID" given in hexadecimal notation.

    


    This notation seems somewhat standard, as it is returned by programs like xwininfo or wmctrl. I haven't found much information about it, but it seems to just be the hexadecimal representation of the window pointer ? If I take the ID string given by these programs and give it to FFmpeg, it is able to capture the window correctly :

    


    $ xwininfo

xwininfo: Please select the window about which you
          would like information by clicking the
          mouse in that window.

xwininfo: Window id: 0x2800014 "Desktop — Plasma"

$ ffmpeg -f x11grab -window_id 0x2800014 -i :0+0,0 -f apng -vframes 1 out.png
# works fine


    


    However, if I try listing all the windows in code :

    


    var root = Window.None;
var parent = Window.None;
Xlib.XQueryTree(_display, Xlib.XDefaultRootWindow(_display), ref root, ref parent, out var children);

var ids = children
    .Select(ptr => $"0x{(ulong) ptr:x}")
    .ToArray();


    


    I don't see 0x2800014 in the results (even disregardingleading zeroes), and if I try running FFmpeg on one of those results, it fails terribly :

    


    $ ffmpeg -f x11grab -window_id 0x4400003 -i :0+0,0 -f apng -vframes 1

# snipped for brevity

Trailing option(s) found in the command: may be ignored.
[x11grab @ 0x55b811a8da40] Cannot get the image data event_error: response_type:0 error_code:8 sequence:10 resource_id:167772160 minor_code:4 major_code:130.
[x11grab @ 0x55b811a8da40] Continuing without shared memory.
[x11grab @ 0x55b811a8da40] Cannot get the image data event_error: response_type:0 error_code:8 sequence:11 resource_id:71303171 minor_code:0 major_code:73.
Input #0, x11grab, from ':0+0,0':
  Duration: N/A, bitrate: 38361 kb/s
  Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 200x200, 38361 kb/s, 29.97 fps, 1000k tbr, 1000k tbn
At least one output file must be specified


    


    So I must conclude my guess that they are hex pointers is incorrect, or that the Window type is not the pointer itself, but then the question stands, how can I get the actual window IDs so I can pass them to FFmpeg ?

    


  • ffmpeg save video in segments, time does not match

    22 août 2022, par Yohann

    I use ffmpeg to save the rtsp live stream to the local, specify the fragment size of 2 seconds and use the current time to name the video file

    


    But the length of the returned video is not equal to 2 seconds and the interval between file names is not 2 seconds

    


    I have tried several command line arguments

    


    ffmpeg -i rtsp://192.168.18.119/live/test -f segment -strftime 1 -segment_time 2 -segment_atclocktime 1 -reset_timestamps 1 -an -vcodec copy ./%Y-%m-%d-%H.%M.%S.mp4

# execute result
2022-08-22-17.20.16.mp4  duration:00:03
2022-08-22-17.20.17.mp4  duration:00:03
2022-08-22-17.20.18.mp4  duration:00:07
2022-08-22-17.20.19.mp4  duration:00:03
2022-08-22-17.20.20.mp4  duration:00:03
# file names are not time aligned


    


    ffmpeg -i rtsp://192.168.18.119/live/test -f segment -strftime 1 -segment_time 2 -reset_timestamps 1 -an -vcodec copy ./%Y-%m-%d-%H.%M.%S.mp4

# execute result
2022-08-22-17.42.36.mp4 duration:00:03
2022-08-22-17.42.37.mp4 duration:00:03
2022-08-22-17.42.41.mD4 duration:00:03
2022-08-22-17.42.44.mp4 duration:00:03
2022-08-22-17.42.48.mp4 duration:00:03
2022-08-22-17.42.51.mp4 duration:00:03
# file names are not time aligned


    


    Expect to generate video

    


    2022-08-22-17.50.00.mp4 时长:00:02
2022-08-22-17.50.02.mp4 时长:00:02
2022-08-22-17.50.04.mD4 时长:00:02
2022-08-22-17.50.06.mp4 时长:00:02
2022-08-22-17.50.08.mp4 时长:00:02
2022-08-22-17.50.10.mp4 时长:00:02
...


    


  • difference overlay filter ffmpeg like photoshop/affinity photo

    14 janvier, par Owen Quinlan

    In photoshop and affinity photo there is a nice overlay filter that basically subtracts the overlaying layer from the one bellow to make a "difference map"

    


    Example :
Base image :
Screenshot Mario Kart 1

    


    Overlaying image :
Screenshot Mario Kart 2

    


    Resulting output :
Diff from two screenshots

    


    This is an example diff of overlaying a PNG with a JpegXL(I think) compressed image and then brightened :
Diff generated from image compression

    


    Location of filter in photoshop :
Photoshop screenshot

    


    Is there anyway to accomplish this with a filter in ffmpeg for an entire video ?