Recherche avancée

Médias (1)

Mot : - Tags -/école

Autres articles (49)

  • Personnaliser les catégories

    21 juin 2013, par

    Formulaire de création d’une catégorie
    Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
    Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire.
    Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
    Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)

  • Contribute to a better visual interface

    13 avril 2011

    MediaSPIP is based on a system of themes and templates. Templates define the placement of information on the page, and can be adapted to a wide range of uses. Themes define the overall graphic appearance of the site.
    Anyone can submit a new graphic theme or template and make it available to the MediaSPIP community.

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

Sur d’autres sites (7492)

  • ffmpeg : video to images with pts in filename

    12 février 2016, par ntg

    I am trying to extract images of exact times (say every second) from a mp4 video of an experiment. There are a lot of methods to do that using ffmpeg out there, but surprisingly enough the time accuracy is off.

    To measure accuracy, I have first time-stamped the video using pts, e.g. :

    -vf "[in] scale=640:-2 , drawtext=fontcolor=white:fontsize=22:fontfile='times.ttf':timecode='22\:10\:55\:00:text='03/12/15__':r=23.976023976:x=0:y=0 [out]"

    And as a result I got a millisecond precision time-stamp on the video. I checked the video and it seems the time-stamps are very accurate. I then tried all the methods I could find out there including :

    -Using -ss [timestamp] to go to an exact time and -vframes 1 to get the first frame at that time : this method is extremely slow since it involves calling ffmpeg once for each second of the video. Furthermore, seems to work fine for the first minutes, but then gets out of sync.

    -Using fps=1 and using out_%05d.jpg as the output. This was probably the most inaccurate, as it went off by whole seconds, plus it never got exactly the 0th millisecond.

    -Using a fast fps, and then selecting only the ones I need, e.g. -vf "fps=10, framestep=10, select=not(mod(n\,40))" was promising for the first minutes, but also became inaccurate after that.

    -I tried writing the pts/date as metadata, but (do not know how to /cannot) write to the metadata of a .jpg from ffmpeg...

    The problem is that after some time, if we are using out_%05d.jpg, the numbers get completely out of sinc, while the -ss gets inaccurate, and takes forever.

    Ideally there should be a way to write the %pts or the date as part of the filename... Does anyone know a method to extract images from an .mp4 file with millisecond precision, preferably using ffmpeg (or its library ? I am using python and getting desperate...)

    [Edit : as explained in the comment by Mulvya, the pts is calculated by using the fps of the video, ffmpeg can give it to you. In my case some of the videos have 30 and others 24*(100/1001) fps. Bellow is an example, which was produced by :

    args = ['ffmpeg',
    '-i',
    'c:\\Temp\\scr_cam.mp4',
    '-y',
    '-vf',
    "[in] drawtext=fontcolor=black:fontsize=22:fontfile='times.ttf':timecode='17\\:00\\:29\\:00':text='09/02/16__':r=30.0:x=0:y=0, drawtext=fontcolor=black:fontsize=22:fontfile='times.ttf':timecode='00\\:00\\:00\\:00':text='':r=30.0 :x=0:y=30, drawtext=fontcolor=black:fontsize=22:fontfile='times.ttf':text='n\\: %{n}   pts\\:%{pts}':r=30.0:x=0:y=60 [out]",
    '-c:a',
    'copy',
    '-metadata',
    'creation_time=2016-02-09T17:00:29',
    '-preset',
    'ultrafast',
    '-threads',
    '3',
    'c:\\Temp\\stamped_scr_cam.mp4']
    subprocess.call(args)

    In it we see that indeed pts = n/30 (n is the frame no). I have tried many combinations of the params of the commands I talk in the beginning, so listing all my efforts would take too much space. As we see, the drawtext seems to be very accurate, so it does not seem to be a problem of incorrect fps.

    sample of drawtext

    To get the fps I am using :

    def get_frame_rate_and_duration(filename):
       if not os.path.exists(filename):
           sys.stderr.write("ERROR: filename %r was not found!" % (filename,))
           return -1
       args = ["ffprobe",filename,"-v","0","-select_streams","v","-print_format","flat"]
       args.extend(["-show_entries","stream=r_frame_rate"])
       args.extend(["-show_entries","format=duration"])
       out = subprocess.check_output(args).split("\n")
       rate = out[0].split('=')[1].strip()[1:-1].split('/')
       duration = pd.Timedelta("{0} sec".format(out[1].split('=')[1].strip()[1:-1]))
       if len(rate)==1:
           rate = float(rate[0])
       if len(rate)==2:
           rate =  float(rate[0])/float(rate[1])
       else:
           rate = -1
       return rate, duration
  • Translating Return To Ringworld

    17 août 2016, par Multimedia Mike — Game Hacking

    As indicated in my previous post, the Translator has expressed interest in applying his hobby towards another DOS adventure game from the mid 1990s : Return to Ringworld (henceforth R2RW) by Tsunami Media. This represents significantly more work than the previous outing, Phantasmagoria.


    Return to Ringworld Title Screen
    Return to Ringworld Title Screen

    I have been largely successful thus far in crafting translation tools. I have pushed the fruits of these labors to a Github repository named improved-spoon (named using Github’s random name generator because I wanted something more interesting than ‘game-hacking-tools’).

    Further, I have recorded everything I have learned about the game’s resource format (named RLB) at the XentaxWiki.

    New Challenges
    The previous project mostly involved scribbling subtitle text on an endless series of video files by leveraging a separate software library which took care of rendering fonts. In contrast, R2RW has at least 30k words of English text contained in various blocks which require translation. Further, the game encodes its own fonts (9 of them) which stubbornly refuse to be useful for rendering text in nearly any other language.

    Thus, the immediate 2 challenges are :

    1. Translating volumes of text to Spanish
    2. Expanding the fonts to represent Spanish characters

    Normally, “figuring out the file format data structures involved” is on the list as well. Thankfully, understanding the formats is not a huge challenge since the folks at the ScummVM project already did all the heavy lifting of reverse engineering the file formats.

    The Pitch
    Here was the plan :

    • Create a tool that can dump out the interesting data from the game’s master resource file.
    • Create a tool that can perform the elaborate file copy described in the previous post. The new file should be bit for bit compatible with the original file.
    • Modify the rewriting tool to repack some modified strings into the new resource file.
    • Unpack the fonts and figure out a way to add new characters.
    • Repack the new fonts into the resource file.
    • Repack message strings with Spanish characters.

    Showing The Work : Modifying Strings
    First, I created the tool to unpack blocks of message string resources. I elected to dump the strings to disk as JSON data since it’s easy to write and read JSON using Python, and it’s quick to check if any mistakes have crept in.

    The next step is to find a string to focus on. So I started the game and looked for the first string I could trigger :


    Return to Ringworld: Original text

    This shows up in the JSON string dump as :

      
        "Spanish" : " !0205Your quarters on the Lance of Truth are spartan, in accord with your mercenary lifestyle.",
        "English" : " !0205Your quarters on the Lance of Truth are spartan, in accord with your mercenary lifestyle."
      ,
    

    As you can see, many of the strings are encoded with an ID key as part of the string which should probably be left unmodified. I changed the Spanish string :

      
        "Spanish" : " !0205Hey, is this thing on ?",
        "English" : " !0205Your quarters on the Lance of Truth are spartan, in accord with your mercenary lifestyle."
      ,
    

    And then I wrote the repacking tool to substitute this message block for the original one. Look ! The engine liked it !


    Return to Ringworld: Modified text

    Little steps, little steps.

    Showing The Work : Modifying Fonts
    The next little step is to find a place to put the new characters. First, a problem definition : The immediate goal is to translate the game into Spanish. The current fonts encoded in the game resource only support 128 characters, corresponding to 7-bit ASCII. In order to properly express Spanish, 16 new characters are required : á, é, í, ó, ú, ü, ñ (each in upper and lower case for a total of 14 characters) as well as the inverted punctuation symbols : ¿, ¡.

    Again, ScummVM already documents (via code) the font coding format. So I quickly determined that each of the 9 fonts is comprised of 128 individual bitmaps with either 1 or 2 bits per pixel. I wrote a tool to unpack each character into an individual portable grey map (PGM) image. These can be edited with graphics editors or with text editors since they are just text files.

    Where to put the 16 new Spanish characters ? ASCII characters 1-31 are non-printable, so my first theory was that these characters would be empty and could be repurposed. However, after dumping and inspecting, I learned that they represent the same set of characters as seen in DOS Code Page 437. So that’s a no-go (so I assumed ; I didn’t check if any existing strings leveraged those characters).

    My next plan was hope that I could extend the font beyond index 127 and use positions 128-143. This worked superbly. This is the new example string :

      
        "Spanish" : " !0205¿Ves esto ? ¡La puntuacion se hace girar !",
        "English" : " !0205Your quarters on the Lance of Truth are spartan, in accord with your mercenary lifestyle."
      ,
    

    Fortunately, JSON understands UTF-8 and after mapping the 16 necessary characters down to the numeric range of 128-143, I repacked the new fonts and the new string :


    Return to Ringworld: Espanol
    Translation : “See this ? The punctuation is rotated !”

    Another victory. Notice that there are no diacritics in this string. None are required for this translation (according to Google Translate). But adding the diacritics to the 14 characters isn’t my department. My tool does help by prepopulating [aeiounAEIOUN] into the right positions to make editing easier for the Translator. But the tool does make the effort to rotate the punctuation since that is easy to automate.

    Next Steps and Residual Weirdness
    There is another method for storing ASCII text inside the R2RW resource called strip resources. These store conversation scripts. There are plenty of fields in the data structures that I don’t fully understand. So, following the lessons I learned from my previous translation outing, I was determined to modify as little as possible. This means copying over most of the original data structures intact, but changing the field representing the relative offset that points to the corresponding string. This works well since the strings are invariably stored NULL-terminated in a concatenated manner.

    I wanted to document for the record that the format that R2RW uses has some weirdness in they way it handles residual bytes in a resource. The variant of the resource format that R2RW uses requires every block to be aligned on a 16-byte boundary. If there is space between the logical end of the resource and the start of the next resource, there are random bytes in that space. This leads me to believe that these bytes were originally recorded from stale/uninitialized memory. This frustrates me because when I write the initial file copy tool which unpacks and repacks each block, I want the new file to be identical to the original. However, these apparent nonsense bytes at the end thwart that effort.

    But leaving those bytes as 0 produces an acceptable resource file.

    Text On Static Images
    There is one last resource type we are working on translating. There are various bits of text that are rendered as images. For example, from the intro :


    Return to Ringworld: Static text

    It’s possible to locate and extract the exact image that is overlaid on this scene, though without the colors :


    Original static text

    The palettes are stored in a separate resource type. So it seems the challenge is to figure out the palette in use for these frames and render a transparent image that uses the same palette, then repack the new text-image into the new resource file.

    The post Translating Return To Ringworld first appeared on Breaking Eggs And Making Omelettes.

  • Record Webcam as single JPG files [on hold]

    2 décembre 2016, par clic

    I have to record a Windows Directshow Webcam video stream (UHD, 30fps, yuyv422) as single JPG images. Performance is important, so preferably by using NVIDIA GPU acceleration via CUDA or something..

    What is the most simple but powerful solution, without having to buy proprietary software ?

    I had a look at ffmpeg, by recording as MJPEG and then using something like jpegtran to get the JPGs. I tried :

    ffmpeg -f dshow -video_size 1920x1080 -framerate 50 -vcodec mjpeg -i video="XI100DUSB-HDMI Video" out.avi

    But it results in an I/O error saying ’Could not set video options’. Maybe because of the yuyv422 pixel format of my Magewell USB dongles..

    Or is ffmpeg able to record as single JPGs directly somehow ?

    If someone has any other idea/solution besides ffmpeg, please let me know too ! Thanks !

    EDIT :

    I was now able to save JPGs directly, using webcamimg%04d.jpg instead of out.avi. But it’s always claiming about full real-time buffer. Raising the rtbufsize parameter doesn’t really help..

    ffmpeg console output :

    ffmpeg version 3.2 Copyright (c) 2000-2016 the FFmpeg developers
     built with gcc 5.4.0 (GCC)
     configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --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-li
    bopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --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-decklink --enable-zlib
     libavutil      55. 34.100 / 55. 34.100
     libavcodec     57. 64.100 / 57. 64.100
     libavformat    57. 56.100 / 57. 56.100
     libavdevice    57.  1.100 / 57.  1.100
     libavfilter     6. 65.100 /  6. 65.100
     libswscale      4.  2.100 /  4.  2.100
     libswresample   2.  3.100 /  2.  3.100
     libpostproc    54.  1.100 / 54.  1.100
    [dshow @ 0000000001c628a0] Could not set video options
    video=XI100DUSB-HDMI Video: I/O error

    Output of : ffmpeg -list_options true -f dshow -i video="XI100DUSB-HDMI Video"

    [dshow @ 00000000004d71e0] DirectShow video device options (from video devices)
    [dshow @ 00000000004d71e0]  Pin "Capture" (alternative pin name "0")
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1920x1080 fps=15 max s=1920x1080 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1920x1080 fps=15 max s=1920x1080 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=640x360 fps=15 max s=640x360 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=640x360 fps=15 max s=640x360 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=640x480 fps=15 max s=640x480 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=640x480 fps=15 max s=640x480 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=720x480 fps=15 max s=720x480 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=720x480 fps=15 max s=720x480 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=720x576 fps=15 max s=720x576 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=720x576 fps=15 max s=720x576 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=768x576 fps=15 max s=768x576 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=768x576 fps=15 max s=768x576 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=800x600 fps=15 max s=800x600 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=800x600 fps=15 max s=800x600 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=856x480 fps=15 max s=856x480 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=856x480 fps=15 max s=856x480 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=960x540 fps=15 max s=960x540 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=960x540 fps=15 max s=960x540 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1024x576 fps=15 max s=1024x576 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1024x576 fps=15 max s=1024x576 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1024x768 fps=15 max s=1024x768 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1024x768 fps=15 max s=1024x768 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1280x720 fps=15 max s=1280x720 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1280x720 fps=15 max s=1280x720 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1280x800 fps=15 max s=1280x800 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1280x800 fps=15 max s=1280x800 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1280x960 fps=15 max s=1280x960 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1280x960 fps=15 max s=1280x960 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1280x1024 fps=15 max s=1280x1024 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1280x1024 fps=15 max s=1280x1024 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1368x768 fps=15 max s=1368x768 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1368x768 fps=15 max s=1368x768 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1440x900 fps=15 max s=1440x900 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1440x900 fps=15 max s=1440x900 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1600x1200 fps=15 max s=1600x1200 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1600x1200 fps=15 max s=1600x1200 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1680x1050 fps=15 max s=1680x1050 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1680x1050 fps=15 max s=1680x1050 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1920x1200 fps=15 max s=1920x1200 fps=59.9999
    [dshow @ 00000000004d71e0]   pixel_format=yuyv422  min s=1920x1200 fps=15 max s=1920x1200 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1920x1080 fps=15 max s=1920x1080 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1920x1080 fps=15 max s=1920x1080 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=640x360 fps=15 max s=640x360 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=640x360 fps=15 max s=640x360 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=640x480 fps=15 max s=640x480 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=640x480 fps=15 max s=640x480 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=720x480 fps=15 max s=720x480 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=720x480 fps=15 max s=720x480 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=720x576 fps=15 max s=720x576 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=720x576 fps=15 max s=720x576 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=768x576 fps=15 max s=768x576 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=768x576 fps=15 max s=768x576 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=800x600 fps=15 max s=800x600 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=800x600 fps=15 max s=800x600 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=856x480 fps=15 max s=856x480 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=856x480 fps=15 max s=856x480 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=960x540 fps=15 max s=960x540 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=960x540 fps=15 max s=960x540 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1024x576 fps=15 max s=1024x576 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1024x576 fps=15 max s=1024x576 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1024x768 fps=15 max s=1024x768 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1024x768 fps=15 max s=1024x768 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1280x720 fps=15 max s=1280x720 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1280x720 fps=15 max s=1280x720 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1280x800 fps=15 max s=1280x800 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1280x800 fps=15 max s=1280x800 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1280x960 fps=15 max s=1280x960 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1280x960 fps=15 max s=1280x960 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1280x1024 fps=15 max s=1280x1024 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1280x1024 fps=15 max s=1280x1024 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1368x768 fps=15 max s=1368x768 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1368x768 fps=15 max s=1368x768 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1440x900 fps=15 max s=1440x900 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1440x900 fps=15 max s=1440x900 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1600x1200 fps=15 max s=1600x1200 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1600x1200 fps=15 max s=1600x1200 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1680x1050 fps=15 max s=1680x1050 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1680x1050 fps=15 max s=1680x1050 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1920x1200 fps=15 max s=1920x1200 fps=59.9999
    [dshow @ 00000000004d71e0]   unknown compression type 0xE436EB7D  min s=1920x1200 fps=15 max s=1920x1200 fps=59.9999
    video=XI100DUSB-HDMI Video: Immediate exit requested