Recherche avancée

Médias (39)

Mot : - Tags -/audio

Autres articles (88)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • La file d’attente de SPIPmotion

    28 novembre 2010, par

    Une file d’attente stockée dans la base de donnée
    Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
    Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...)

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

Sur d’autres sites (9071)

  • How to take screenshots of streamers using the Twitch API

    10 décembre 2020, par oo92

    My goal is to create a dataset of gameplays on Twitch using the API. How I want to do it is this :

    


      

    1. Get a list of live streams using the API.
    2. 


    3. Use streamlink and ffmpeg on Python to take the screenshots through the Stream source
    4. 


    


    To get the streams, I have the following code thanks to a SO user :

    


    from twitch import TwitchClient&#xA;&#xA;client = TwitchClient(client_id=&#x27;<my client="client">&#x27;)&#xA;streams = client.streams.get_live_streams(limit=100)&#xA;&#xA;print(streams)&#xA;</my>

    &#xA;

    The output is this. Its a lot larger, I just made it shorter... :

    &#xA;

    [{&#x27;id&#x27;: 40889579422, &#x27;game&#x27;: &#x27;Among Us&#x27;, &#x27;broadcast_platform&#x27;: &#x27;live&#x27;, &#x27;community_id&#x27;: &#x27;&#x27;, &#x27;community_ids&#x27;: [], &#x27;viewers&#x27;: 74594, &#x27;video_height&#x27;: 1080, &#x27;average_fps&#x27;: 60, &#x27;delay&#x27;: 0, &#x27;created_at&#x27;: datetime.datetime(2020, 12, 9, 23, 53, 34), &#x27;is_playlist&#x27;: False, &#x27;stream_type&#x27;: &#x27;live&#x27;, &#x27;preview&#x27;: {&#x27;small&#x27;: &#x27;https://static-cdn.jtvnw.net/previews-ttv/live_user_sykkuno-80x45.jpg&#x27;, &#x27;medium&#x27;: &#x27;https://static-cdn.jtvnw.net/previews-ttv/live_user_sykkuno-320x180.jpg&#x27;, &#x27;large&#x27;: &#x27;https://static-cdn.jtvnw.net/previews-ttv/live_user_sykkuno-640x360.jpg&#x27;, &#x27;template&#x27;: &#x27;https://static-cdn.jtvnw.net/previews-ttv/live_user_sykkuno-{width}x{height}.jpg&#x27;}, &#x27;channel&#x27;: {&#x27;mature&#x27;: False, &#x27;status&#x27;: &#x27;amongus at 4 !!&#x27;, &#x27;broadcaster_language&#x27;: &#x27;en&#x27;, &#x27;broadcaster_software&#x27;: &#x27;&#x27;, &#x27;display_name&#x27;: &#x27;Sykkuno&#x27;, &#x27;game&#x27;: &#x27;Among Us&#x27;, &#x27;language&#x27;: &#x27;en&#x27;, &#x27;id&#x27;: 26154978, &#x27;name&#x27;: &#x27;sykkuno&#x27;, &#x27;created_at&#x27;: datetime.datetime(2011, 11, 15, 1, 29, 29, 140794), &#x27;updated_at&#x27;: datetime.datetime(2020, 12, 10, 0, 35, 50, 916363), &#x27;partner&#x27;: True, &#x27;logo&#x27;: &#x27;https://static-cdn.jtvnw.net/jtv_user_pictures/sykkuno-profile_image-6ab1e70e07e29e9b-300x300.jpeg&#x27;, &#x27;video_banner&#x27;: &#x27;https://static-cdn.jtvnw.net/jtv_user_pictures/4b654ce5-58dc-4fa6-b77c-7250bb2d5269-channel_offline_image-1920x1080.png&#x27;, &#x27;profile_banner&#x27;: &#x27;https://static-cdn.jtvnw.net/jtv_user_pictures/1caee146-3323-4d45-9907-96c20c224d3e-profile_banner-480.png&#x27;, &#x27;profile_banner_background_color&#x27;: &#x27;&#x27;, &#x27;url&#x27;: &#x27;https://www.twitch.tv/sykkuno&#x27;, &#x27;views&#x27;: 23590965, &#x27;followers&#x27;: 1928724, &#x27;broadcaster_type&#x27;: &#x27;&#x27;, &#x27;description&#x27;: &#x27;Hi ! &#x27;, &#x27;private_video&#x27;: False, &#x27;privacy_options_enabled&#x27;: False}}, ... &#xA;

    &#xA;

    First, I want to know how I can iterate through the JSON to get the channel name using the id. I tried to do it on my own but it said that it isn't subscriptable.

    &#xA;

    Second, I have the following code that tries to use ffmpeg to get a screenshot of the stream through its source :

    &#xA;

    import streamlink, os&#xA;&#xA;# This code connects to the streamer&#x27;s source&#xA;# Get the Twitch API to work so you can add the streamer&#x27;s name at the end of the link&#xA;username = &#x27;Sykkuno&#x27;&#xA;streams = streamlink.streams(&#x27;http://twitch.tv/&#x27; &#x2B; username)&#xA;&#xA;# Stream source&#xA;stream = streams["best"].url&#xA;&#xA;# Directory where the screenshots will be saved&#xA;dir_path = os.getcwd() &#x2B; &#x27;/&#x27; &#x2B; username&#xA;&#xA;# number of streamers&#xA;streamers = 1&#xA;&#xA;os.system(&#x27;ffmpeg -i &#x27; &#x2B; stream &#x2B;&#x27; -r 0.5 -f image2 ${dir}/output_%09d.jpg&#x27;)&#xA;

    &#xA;

    But that is throwing the following error :

    &#xA;

    ffmpeg version 4.1.3-0ppa1~18.04 Copyright (c) 2000-2019 the FFmpeg developers&#xA;  built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)&#xA;  configuration: --prefix=/usr --extra-version=&#x27;0ppa1~18.04&#x27; --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-nonfree --enable-libfdk-aac --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared&#xA;  libavutil      56. 22.100 / 56. 22.100&#xA;  libavcodec     58. 35.100 / 58. 35.100&#xA;  libavformat    58. 20.100 / 58. 20.100&#xA;  libavdevice    58.  5.100 / 58.  5.100&#xA;  libavfilter     7. 40.101 /  7. 40.101&#xA;  libavresample   4.  0.  0 /  4.  0.  0&#xA;  libswscale      5.  3.100 /  5.  3.100&#xA;  libswresample   3.  3.100 /  3.  3.100&#xA;  libpostproc    55.  3.100 / 55.  3.100&#xA;[hls,applehttp @ 0x557212854940] Opening &#x27;https://video-edge-c2a360.yto01.abs.hls.ttvnw.net/v1/segment/CuAErHgNDEVK3cqjkRZLcz4El99YD2ZSy9tgtjc3ZTrPuN4584-GY3DKYO3MFCBt9M3v8_7IfHAlLvHeUn2wq4d-VC7u4Zv2-k1Bee9IPmIXbFQLZFKrYiT98OTzFMDaElsEZ9Sr4MXz6FoAC1yXhhZ0MYahZVnZa1Tuqnn217nN_rN8wr7kdScBIir_Uo1s2C_I8_54mi2uzdgxB9AYj0a0kG2UtdPkUVA6Qc7XIZ0nUhEeObEf80N0uW9ZU6WHpO3V6G9RD0VkmwUexDWk9MaLy1NJuvLSzRaMfOmKxhrzn3UDoY4CrQN11KOnHYCiCOfvhZmMKzSqtiA8YP0Q9iS03eZZhPQ3WxBHWhd6VeZ0btNeeoudGX73EBIj4ujZnKWKfPiN8K_HLj5FZWqQ5m_4Q1llQlnSAfmhzXR9PHAkz8nxRVcFR-tFokGzFEfkZGHngPNz9boLmo4KHx6404rocPUcXbTHkYsWXZwFC356AhfrNn6x0JYHGfcDpRsEFebLQljEpCyhnNOHFEf9b7Ipeiy521cCupzoEz1uMrzW77h9FJwn0GwvY3jp2KwRXJMvArYwiUHccBmfW7ZDLO9vH7eJGUnAzoy586KMSPLVeLxWMWRDfKkAcI8vYXOIuxNb_MZKm2O_dcoFrDDta5TZn-MLjFquT47P9NbXxlTTJfimlYyMG17SPoW3KJVtAJmjoj0GZ1ehftLJWz1Qgd8zmg40u4g8fz867eCHW_Tiv65yd6qJZD-_bD3G916fm3KeA9bPyhalTD99CWhQL7f0apCfX_6IiQElgPT6kOrFI-ISEG4GdhIpFi4ubzSx29pm7H4aDIXx6BAI5ziHVMPbrg.ts&#x27; for reading&#xA;[hls,applehttp @ 0x557212854940] Opening &#x27;https://video-edge-c2a360.yto01.abs.hls.ttvnw.net/v1/segment/CuIECWLarz2I5hNCtGLSTDXbCIgahI91KOHXVmPHddzZediyiVbcicZpGakO99CJp1cK_6OnmOKBzZ3sn3KogNyPVRqSy32IpanlyPPUTz23TojfR5DTmJa3zampOzVMfETvvPEpj58-kGhQeQQGtK1zLV2h465RElCLkmc7SeWbXEZ5j6IQ38OVFZ0vdcMHVTNPtJaY7509bE196-9-5YYFiET_-kdkS2X6_lhVQBZrq45PBxApTzeLkDx9ZtGQx78dLr_tZepww_uVnJTwxI_TA3tU8z5_w8ml6rh0GK1W6lTlvuDkPKAwIDLvG736MtbPGz9cFPoRAFQxD3QSwAM-bO1grvWlNsOUDUYLXLNjuejmz8xmRpeE0pqJYxUboRZpxrPXTi52HcX8lpGT4Lx2z6hJcoi9npQttK58HDSHQ3cYH3rlNsYV_RlZ3F-u-fZSn8Em67-vAYeXAMaBe9xxv0Zu2n1TrdPICMyGmk-VgLK788IeDhxqM441GONGLxo6AF8RE5_OawTf9n_MVzImsX4LMn0oN8e8w6mjk7YDuNdA4mEl99Erg8xMdX6Q3fDYTdStaC-zQwXgMctfGpIsUpp91BtRBPMynFCxZ8fZB7NvGFNZTYWDvCZjisiwzs0N1pDdDM_Fkj3i46_Ou105z348PLHRA28Dt1qgn_NjzwRNoaowFx7PxQ-X2zRpAhwNcqaTOHYh5NYZHToVE16WiOe9HzVs_I_3Wqu44bypEsGrhxYhgXSGfvO757iTbErZHmkidsBF2BET5j3JeIifr4fJooalAKc_5uiSPMCGSTtV9hIQX5mQWJudg9UsMRp1AWVrnBoMQPAhy1UwBDtAOrBs.ts&#x27; for reading&#xA;Input #0, hls,applehttp, from &#x27;https://video-weaver.yto01.hls.ttvnw.net/v1/playlist/CvADco9ZO_szpL7RVLVI3U6zl4IMo2uaUBvZTWAyEOKETN-SxI3m3hLLxpmCfz06rlyCGCPimEbk28kKPSbVYtMThiZFRtLxnrdpLr5DWBQwbpIStPQwMetU4Z04Mkm3nEWplL8hpn69Cmd_eWSdI1yHubK_sRL-n1ml5akAEWWGkS0OgVRQTTsYv4RpkbeWc8wrr3DsDBDfyrxciGSZevnStZOLwg-tNuNu3VNugLigNG1HMsNdxoJGO6wLyO-6FL5EQidOiSw2THSibAvADAWMVOxNX2z39d-nJwbVprbWFnox_lDlh-y88uhjj_MpU6OwkXP9vgrBDEmKjtRbYsIN5N94-8pDFEB3yIYk10vUiuod1yfqztVCqWo5m9r48uINP1CD-Bwgybo6K7Oko-TUjMj43GqAu0mmPtkgPFO69LpQQMifZTn_XbVQ5UUfoCwyl-ljObfRE51aCvZP_dOTsUyqi_JRE8h-C3306aW1ISXwCs3YpnjDxJv6yKyWTktBvsN5NWMVzJg-_-MAtTmoy-w2ppbbOozLzyrGF4zfCetaHLmHtbsKe1Ed1nndJg9b6T7v-87ExrI0eQwRjH3gmBTgqu_peS5oQGBaDOe4QSGMNFgf8lQfuqvFH-miXgpk8RytdorzT7wB05iX7c3bhBIQ3FvvjNIal3IgvyxKatZs4BoMW_P_CuyZOUJs2_Yr.m3u8&#x27;:&#xA;  Duration: N/A, start: 60.000000, bitrate: N/A&#xA;  Program 0 &#xA;    Metadata:&#xA;      variant_bitrate : 0&#xA;    Stream #0:0: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp&#xA;    Metadata:&#xA;      variant_bitrate : 0&#xA;    Stream #0:1: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, unknown/bt709/unknown), 1920x1080, 29.97 tbr, 90k tbn, 2k tbc&#xA;    Metadata:&#xA;      variant_bitrate : 0&#xA;    Stream #0:2: Data: timed_id3 (ID3  / 0x20334449)&#xA;    Metadata:&#xA;      variant_bitrate : 0&#xA;Stream mapping:&#xA;  Stream #0:1 -> #0:0 (h264 (native) -> mjpeg (native))&#xA;Press [q] to stop, [?] for help&#xA;[swscaler @ 0x557213e262c0] deprecated pixel format used, make sure you did set range correctly&#xA;Output #0, image2, to &#x27;/output_%09d.jpg&#x27;:&#xA;  Metadata:&#xA;    encoder         : Lavf58.20.100&#xA;    Stream #0:0: Video: mjpeg, yuvj420p(pc), 1920x1080, q=2-31, 200 kb/s, 0.50 fps, 0.50 tbn, 0.50 tbc&#xA;    Metadata:&#xA;      variant_bitrate : 0&#xA;      encoder         : Lavc58.35.100 mjpeg&#xA;    Side data:&#xA;      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1&#xA;[image2 @ 0x557213012040] Could not open file : /output_000000001.jpg&#xA;av_interleaved_write_frame(): Input/output error&#xA;frame=    1 fps=0.0 q=7.5 Lsize=N/A time=00:00:02.00 bitrate=N/A speed=27.7x    &#xA;video:46kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown&#xA;Conversion failed!&#xA;

    &#xA;

  • ffmpeg takes screenshots all at once

    19 décembre 2020, par oo92

    I am trying to use ffmpeg to grab screenshots of twitch streams. This is my command :

    &#xA;

    ffmpeg -i https://stream-link.m3u8 &#xA;-ss 30 &#xA;-frames:v 10 &#xA;-r 1&#xA;-f &#xA;image2 &#xA;/home/me/Desktop/images/image-dataset/my-dataset/World-of-Warcraft/filename.jpg&amp;&#xA;

    &#xA;

    My goal is to take 1 screenshot per second for a total of 10 screenshots. I've added the &amp; at the end of the filename.jpg to take these screenshots concurrently. However, the screenshots I get are all the same thing. No difference. The exact spitting moment in all 10 images. My take is that ffmpeg is not listening to -frames:v 10 and instead takes 10 screenshots all at once.

    &#xA;

    I tried to run it sequentially and the same problem happened. So the issue isn't concurrency..

    &#xA;

    Is there a way I can fix this ?

    &#xA;

    Output :

    &#xA;

    ffmpeg version 4.1.3-0ppa1~18.04 Copyright (c) 2000-2019 the FFmpeg developers&#xA;  built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)&#xA;  configuration: --prefix=/usr --extra-version=&#x27;0ppa1~18.04&#x27; --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-nonfree --enable-libfdk-aac --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared&#xA;  libavutil      56. 22.100 / 56. 22.100&#xA;  libavcodec     58. 35.100 / 58. 35.100&#xA;  libavformat    58. 20.100 / 58. 20.100&#xA;  libavdevice    58.  5.100 / 58.  5.100&#xA;  libavfilter     7. 40.101 /  7. 40.101&#xA;  libavresample   4.  0.  0 /  4.  0.  0&#xA;  libswscale      5.  3.100 /  5.  3.100&#xA;  libswresample   3.  3.100 /  3.  3.100&#xA;  libpostproc    55.  3.100 / 55.  3.100&#xA;[https @ 0x560f4b435740] Opening &#x27;https://video-edge-c2b56c.yto01.abs.hls.ttvnw.net/v1/segment/CvEEnTLMdXdKmicT1KsEeYg1j5_ppzV6USTh15nprTzVGZJwL0MnMggHmPmKVCVuec2AugqeIOO45aJMEiH7dUQH1yME6GtL5yH3YDONOR-lj-un-kd99iQtu_DePSfgU47MbqXvI3iw1JKfhgAZVMPQYv_OrwIvXlYdFBTpRQZpFUPVa8dlISmsaT_ypAGJwZYEfcmhN9Ar-yLcPyhTEt4NsP5wzshGwq3IgwY6givcSiKeHRAQ6RzyyYO2ZmnnWXavHM1McEmCbpMk55UU9-NXmtfMPE7Q0jOrkHfPqD8qr4t3-tzRUbNhO7PXa6DgsQRAYICiRxZ0aq5vGIHZD75mOVcl2t9AVNS6R2z5KpvjT24rryxb5mEvebzlq_QMHw83GJtbXv4eCmUnxVObI3idGbYbYkInccc07Yv6oOlUYg804gA6abt_jLFP9jC0tiBjEJIwwb0NJAeuX1YE-b-nL2-qlDWeHY_ZtOvZFCcaeiL-3j2FXIW-mn90bccZMHy1vb1V2tFJEOs5C7YjJ57jh4exm01PGp9ErfFDz--oGc5ZZgvLas3nWz6Imox6yYt0NQ7rZtXyA_6PWtuJBXcqGF7Q5OT4-Eg_m20lc2XuK-hzEZIWU_Pofm33-mXvtjNtXg_e-fkJzIUr4VDNx59cJpbEhS8DhWkqKZgAvQ39rahnpXEkRwt6Se8LH8X4zUU_Fx0k4ApDSGoJGPOJIWlnd8jp_c_8ELQB3lsqx58ppCkiqWtEIZqnkERMNdVJMOPfiJO-wFcStxw214rGr1UgPn-23LlBDOTU7dUnPgN2AYHnL7eggyTliBxGxizGcTjtjRIQpNzpVE-1SqRZ9wgremNhGhoMwxLy-8hlWMju1_Jt.ts&#x27; for reading&#xA;[https @ 0x55a8b4055d80] Opening &#x27;https://video-weaver.yto01.hls.ttvnw.net/v1/playlist/CvoDrRxumiLM_XBX6zGlLKqZTlxcWMGRJwMy5c0gn038EHoSxU9uBxeTnSk7l8iZ3NDmmtNp2hexUJYQbXh06ClRvm8Vz41PPd2N-k-5GKNIse6MrFrNloxt7p9nEXdXx-8Dw2TofURJX0PloMSiGci_hCnrDJ38BdWg_78f8WFYjZrm5TYnVSDgZw37cFG8FeBJJV2PxF7gEGltrKs7MQ5kbDApHrRFSrYVkbvACCuxbSKZyRB7I6NmKrGVwBZfGLqh9vMXw0_jJAU21qPB9ku459OibJS4JDBTVt4l2MlASp8dhcbTICmLnEBBOIDe7RciSSpqYhq4Hil8TMunMRFc2UdDJS3GjXtw0BApLZMxOf-EXhHJf5f6-ALKEW7FRPsO6JCYQGpspLq2snUKuWqj9UBcLHnGjjY5cUHjvui81aalyz5fcDZK-pxUFhCZucpOxCDDYhfSLABqmM3eIentP8hlcwZg0ydy419Tj2lqI08ug9PUFBlMJWWcuwck5uIGIOshQVNEDIXJt_PJKao5dSgMGZzsIEUPi6Rlf2yUk7z-adjtADJjOzBzNV6QKtS00BiFTvbbYjiLydJffAEgeerVOG0_tkHZopfYmpJsp43Sr-hXTAk2cYSMIN__NqO7qAJzTF1rWXkeAo3wuWPz2mICJOSdq6SfSL0SEKb7mHVzjUerNSPqt7ZHWBYaDAeIk7sXJ_-6ZP1wyQ.m3u8&#x27; for reading&#xA;[hls,applehttp @ 0x5559d4ab0940] Opening &#x27;https://video-edge-c2ab34.yto01.abs.hls.ttvnw.net/v1/segment/CtwE4wYV6Jd9ji9SF4DQupaPzeu0nawqExYayXT0VS3D-AgoiiuciSxoAUXEKj1TsevSSJHWs3AdkMaTZs_rYrXkKhvA8xgq_Ojp7MmrYrgDZi_vZSfoIWBLdpNN8RN8ISUtPOXWpRM8hZvgQOI00EKSlvcZoJ44OoZfvVQaN16IkjiP1K7TdrbiG_W43yYo8W3wrprTrI-gSK0yQdDYK58ROKuXwsWra6zJp1DTJLTV8L4u3ClJoDlBaoYSMEwnEVs_p7gBpNw9rn66mqtsGn_vCMBfoqrsUfCEem7cFvC3ph1iqfubbIc5LSkRdHekoYHDualvn-ScmkCBLMXn6U4SeFdSRrElMz2mgJM0t7DA6PEzz_SEh1harsM19_Z9REoIwWr1tzHWFU4WgTWrDbylsV2i11rBqAHWlk5_V8fP4CIFhiWyfxp8G_j1nmy1z-tC8Ttln6KkMFcGlvWR6tsPr4hUtPvrY6m05FMYfsmvDJVJhW8fFAppcVfPyGFMqQ6GRPo0CMrENqkIENTvMjQJt2GEyw8GOECucYWIbuhCOLLW0dyz-iJlVNYvObeGue18U79sneEAkjoxJuxDI61r5hOMwf3HXpSIUpk2sOzfjcded4KbvMjgIQxK9M-2qnmTkyfV756rGaT_9SrugKiZUdh_vOy9lDwFPN2GYq6P6Vcy4HKpM0ZCR2AMTe3PFXreDraCzfrmzwRULBG9AiNxs-JhYJ3_w-OSBhzbINJng-PwFnL9Dsm87NIYvc_CRUWT5jkJHws8BpzSJtZCXcZ3XgYGDe49balTzhB8VBIQIFWcbgO26YM0po0CxgZLiBoMoN25nK5P9U3FecXL.ts&#x27; for reading&#xA;[https @ 0x5602e5468a40] Opening &#x27;https://video-weaver.yto01.hls.ttvnw.net/v1/playlist/Cv0DvhMhaY8nQyvgCVb8Knpnq4LS_QdntEu9nstdrurt6Vtc57dIoii04-Kau7quO62wCXKso-x4719ws7inztepZcc7sWrfbDuDCqL_D41hxTa1fJnZp8bdtEPU7dKIk7coJvUw7foVkVkoA6KkZF5BTSpzOL-9BAWdsIFAZ82dC9LziZCno-7j4_77jbCfSOdZdliNsHjwJkbeal9sp-JJB7sesAvRhT8Jdb6-6m_I1kOawK_NxzS4NBP7SlXD5wSNnSD_Y9TvInwhqC1Q09EqcpYP3JmDZwVTX0ld7vzcW2jsiLA48EOv62ji2Q99PdosWX23ZTH335v1AdQ0iX2nX4G0rNMdGJ5dYzAUezfiH0gFaIiQJmBo1WlFh45BrOqlB4VMQuhDZ47hJTHDOv2qcn9PmvO6N6ENj5A5FJuRbvjVfe7mUrNjaKfb5za7qmQ1usdRhxxl7srRF_Y1fnMLfIMuQw1gMRQAkISYP1Ism4pv4blEu-5td3C2JteGadUaczx8ZLSnWTJQwTJ_o8PzzYaVW900EU0kZuiQ6RgdpJmc3UYrLQ-OUxoudkt4GgjuoSHl8qCiP8nIwSvXnbGg1CH_mCBv_kiuWygbLrY9YVGz3wS67Dn7D6hNJ1tKmK4FP2I5UKasBX4qvqdGAnMhKKqbsITunYuSqgeGNxoSEEuS_9Sp0pxjnKpSOikkMZQaDL8_ZLSngkCEdWFBsg.m3u8&#x27; for reading&#xA;[https @ 0x561509d623c0] Opening &#x27;https://video-edge-c2b644.yto01.abs.hls.ttvnw.net/v1/segment/Cu8ENRC9AI5iVzpgoEk2vmbOSFnED42oE5UOg4w4bYv_9bGEfbiubVy80d6REOQe0pV8xCdDMNxUGEpzMh_utuxCuvoCDIA5GwCPBI-wNINQ0yaERpzyMLzLzI8X5Qw6ps2MO_G5FeX08aPup3-ngBd-yGSZDzuQgBvMoxGI3ANZ-VEy-EmHZx5P7MbpYQUZ7jXO5ZzMZH5dcc2fCtU8Fhn3rudz2Z17a7PISmdN7IqGpWIgk2XZ7k0RG4Xq71wNZzfiKu78MAs-DkdBa0L3fBvIqFNS47tEU7YJ257Dk4K4tHnoMmVprTpleM5HdkBs9b6KA9n8YOfMSi3SLLaA49fixyoYlAGPu5lXSDflXKc4ffChFnPOUHz0Pcb-hHwiYy7KJtMG_ItInI_LZt3Q-qiKOnO_PFTkBjKUjYoZyRvvD8yb2gd8BbwaF7xpOG206QO_nNASoWyqDk7B4fyyARVUD84pPuo3E06FjYDeioH2FhGU0Yyd8MXhWTawa5KKgA0TqoP9Dt_TRz9xHuPFMJWBo39GuDGqofa0yCriDsPZQJg4evm49d-1yAd4NePMmHuC3mY76ojx9Tc4zW3tSo1c-8FdGoy20X4DK911JgMZZcAjj3fbudnk1Gpg52qixw2PTo_81xj6dO6r0EOddK9o-BDDQ9u-MoRVtodGOmdtjNlurC4nXYjyJxomkqgBSh3RrYcc0ZotEYPbBN6oW2HjOLCMtkajuvov_Z78wnO_0-VTn6Z4QIJHhzhFdwpRv7sBrwCQoZJf12lg9mTyDvn-zvmYpEqlpSx2zUAZJf1RY1nHVpSjsWgKb47sVZHPnpMSEHa5MFbY5k0uJLxysEuJjCQaDEvCUfXIcwtNL3l9JA.ts&#x27; for reading&#xA;    Last message repeated 1 times&#xA;[https @ 0x55ce2ebdf1c0] Opening &#x27;https://video-edge-c2a4ec.yto01.abs.hls.ttvnw.net/v1/segment/CtUEspzXywhKD--is2mZ6lL0j5XqcvMtesaiCc06h1S2IcnmlUxRP1Rg9qT-wcqbftcpAr5DqtE0o-qFAr-bxrl8TRjAbNT-2qzZ7BJLAXQ-Q6Pl5Otv1haFvbdYN7H7Dok0SFJoE7rKXIwXyTy_KIIp7AsBdvlLN2vxG-mc-v1SynWjaXQ-ehgiG_5Tde_dVQo9wWBA44SuM7yGh-eQwl4KoM7R6XrwdZ2-xnsw-9cVsZvZNpcBAIJecAUqHcSkNsjTy3UGtN2lJHM-Ryfy9oT4Q-fOnuWj98DqkWIVVGvM3pHdN6RXWpc7GG-zCbuE-4EohTGfgCwvWeWPps4HDpOuJjwOYTRuBe6SnN6TT-nT-c5-QaZHhnKulixMLjzDQQD-MJGYKjFhv7DwfWL183RYOh20PirZnmMxxfbDmZC8PFHGOKqZ5K-1Fnsm6PyHtNOutlB6-kENTuXIEpYMrD30AV2LKFctHb3a_HY3lkAPqCbeYCtP2GZn6sV9cnPNZqN1YReu0BPvcVvMxM2tLo-iYl2dVksTho1QfIHZY7HYhYfUXk5Z_lw6M3XSgCFwC853tfbEIdPF2grF9FsJJzxhiIwl83rxsRAKRSNa2ikYYKzwOyQ0O4i-gcCXhAe-OrO9ZM8kd5OcVAe8XMWwRdEwYg0qTrerebQzoSm2Xy88cL0unGDZhZWRWxLjxNWAfLOYPT5Kp2QKK44YkwdKJxWgXTAXiNe2u89StyfyeFxHHdVrh77W-jLHKtOJs_TqtYVavu8-i_ltjstw_Q64kckKMFXCKBlSEhCCynQIIIrDLZki-ratekOHGgwhQO0qQG1pCWiaesQ.ts&#x27; for reading&#xA;[https @ 0x5602e4b9e1c0] Opening &#x27;https://video-edge-c2b1f4.yto01.abs.hls.ttvnw.net/v1/segment/CsMEmSWiHUi9qiWeeVziTCwieY_8ABpoaUI2uCB_Y48jHDMEB9OH_mmlfnR9-gHHPyF6dZCdtj4xqgCrgu3Rx4GtZ5UWEPd1VPv-WBUPL-YxskwN7ZpwwiJ-OT_8A5ty6K3s57s0piPK97044lYfE_sKJtelKHix26WOr6qcbkt2voyPWRH_jok7eQuG-y2xfJOmIu5-1TqIaG0IepiqVvfDAaAReHOu_jId0roBGse2q6vcWMrB4MX6TCH3foLxm_1XcQnD4G4mwRN1BdSbhdOKkOv93kf8u-KYS1wCTb_vz05EBmINqZbtOYgkWd0NRuRyMwVg8pnI7qMQZzO-NZuxmAIRR1aEZvaciughFgcGgJzczkqQ8lo_5m8MMzojjuUbPvwUAOynjmpKBPTpry2Fp1O4R-vPQJUqrPvIRMwTFevQVg_mcqAVSoH2uKprkatLWJs_Km9WBR3pDkcGK8J_foVe0Sk-2N4X-IUzBRpKt6RZltl_SF5hzX2ciZoMQdlZN0srlcZg8oiW5B8ou0liBPD_fLoVxj0PG9cj5j9cEWxkDdwx54u0hE0fW-HKk5CXcIuXpD93iruqdLyG6tcPyp247S1rJ0XSq0GwEmAqZSY5s-YIGu5o2HZuQmL214HgnCN1plLZqZ4zdFJHSW9t61C3_tM_-IiFrQ1_BIltiqYsPTW_EFmaNvty9FvHQFx0XdGbBq1bv9pp6Bj_EtT0qukTSkEH8EBDhJGYFYWDfvG7Tn2-zW2HXIIarIgR7xRscE4fEhCVgyfim5444ACROhoPPx_rGgwlXw1up2iUzAYgbaw.ts&#x27; for reading&#xA;[https @ 0x5602e4b3b9c0] Opening &#x27;https://video-edge-c2b1f4.yto01.abs.hls.ttvnw.net/v1/segment/CvIEWgSaqH8uzWG7t10EwAuefWhmLnNnXtN7Pw6-8eiisUARX4pH-v1I3oLUhOukV3svmhCp1XxQN-UkZx8_m6sjxa3ntRmA6ImIDlbBEVuxZ4lGSMlw4G-cuC44L9xlgCjMSTZcEZa6WYCBRToWx6g2AaA2u3Gf8rZ0JpFmWAee8X0K2s9OH1CcQvfR1RofszXRu4aQSd-v6cniMyIpPpjAZixHLQf_Adyf9Iuvws8ybtiV2llhT6x8dRvvh6S5n2XzlsxC9sihjOnNc_dhav4jlSeHHUJPqh36n0Ea-asPjzNBOCJrnNxLcNgItgeI6qVs9iD8shU50RlLoBNtgNycRy_ZgQ6vBR0k9hApi02qb1BKFOhIsWGvCi7NSknqnr3vhObWvl-fIGWKRNAsU7uc9aZet2btaUb900j2Vaau-77AlbvnyAqpL0Di2KR9ybHDNpUZsVzZh-reW3uKu-pAkIEKkzI5rDP7-H9QaK73nnB3XuSK_H-x_WF7qrcgAd_0XTqcrnEtPLDzD_2H4aZxdglqDQyxanhq3cFXf-qa0ux3ZilLQMBkzjZlFsNOT8ms9kfpC7HG7B_h7AIiDnu8EoIDKBQlxfzYG6ruQACGZoVFE3MiYEqgnpFzKsAWx1jujCV_h5Jogv4kxnrvzDtzwxWXsyrwo3gUTeTrEu62Mge6T9GRGE8Ny7q7L8Ng5d0FDAM1mSDFsuwaleGQDndIMa3J6TODcfI4gL1Tu1aEUSen1gWSRcUy1uQyQQ9zJSmc7Uaw8uMLyP3BzadJm51c3MoNTzLBsvktjhd3B2KHbWY1lXEh2AHA16VGWXpq7CD0ELMSEN1fF4x7RWpFxubjbxVNVv4aDCwwPCpEeEggW8Rfpw.ts&#x27; for reading&#xA;[hls,applehttp @ 0x5559d4ab0940] Opening &#x27;https://video-edge-c2ab34.yto01.abs.hls.ttvnw.net/v1/segment/Ct4EMOLp6yFfEv2tgPtzLuzFmDFWtPkvqlBMyma5AlNsAFNWM3-m0d5Wm_DmdvMETEeVjPcGk1XEOcnfkHTFnGKsPn9rmqNNyWmXQp8jH1k5LGjiHTYVO8pa-6CuCMb16fGy9Fp1Xm0nXqLe4ZL0Fs6EV1-U2UfVyOqNFjcvwoAiE9cQyBUxmj9h1Tlo5kHsVd1TxtYRrHZs3sQepHkwLIDVSThuy-RKU-9oARCTfOP6USEgDpxkbWjtB-DGTUorX8x95mlCLwDMkmkM2-m9pUYdeP-PslZV1-IJPOVv4-G97PsV-TqQy1szQh_k9jiQzp_Bu8wB5RrVqdpMqli5YRMoqOmGCQo0i41g8y1Y-JZVF3JmK7G2SJ7MgdLEFaEaUBNz4XW6aGV1kL16E3PMRKqaYKoS21vwQP0E808fYr_0KrUhpQzzxPHKMKNmhX63S3O80FcH3GVmzlm0dXdVSEXV1TepsZG5NHqR7xgQt_WsjV21EuWCzGTpbrqMfCIH0nrlyowYpZm1ew3qREq1SfKPt4TophGYJRHjMD7B5loycfp2XjCyDmOX6cTc8RK7lQg1F6uukU_aW_Z8hbBuVbY8sqroms8ajmZETP3uo9VG6JFoJaNxDfMtplI10JMFHbBp0VZdRtaxxaPCQ3BBmWgl8vLckHjcY44JE_PDALwIHkQqecZo2GQoz2NhymilntSt_VFMm3Ib6yF_fujjwtafU7Xh5Cf9MBnk-IYHg2WZYLESPVB2Ia8jhkqFiHgYR0YLLLl_mflwBh6mFzSozfT4mw4_FK_esvspE1Zq80CEEhDxl0J0i39gKAbxRh87tVrkGgy0aNClJH41Wuni7yE.ts&#x27; for reading&#xA;[https @ 0x560f4b3d29c0] Opening &#x27;https://video-edge-c2b56c.yto01.abs.hls.ttvnw.net/v1/segment/CsUEh-QaugK4bHVvi-wL8bzgE5-MsFiYcWoTXcwI-gzFEPycSDGrrqCPSAyov1gQsy2KYKm6Odcenh_UHBDJgG0dfHGOB9izlOatI3dONn14Z5BzKoZ84JntuWvM6ZfbaCRHZQFvHDJLwUAB_RZweqDHLnCwZr52Ma--xNhWaPoHfBBz_fGb23iSRFigxMjPEe-48lpQaF-XD9UPwjNx9Jkn6d0xNto7yCkLnPHVAMc08rI6ciMMFvU3Ul2p64VBhCzQhmweVuMmymRsw92BCEk3gAUYL7i_cYbJk1ws9kI6OHJlrZJmSgELoM7Zr6HKTxyWRsS0CfPqEUz0ZNgkxULIj9pjcPmuTZOWPtRhRGl1T0xZzo-OMcTOaVLV88rpiSVugoBVD8gBLCOxfAp0vBrS4_4daWeS_9RpmkKnwwfJk2yr6vvty2lEMKRE7oTDqy_ldgPequXbA89hX29SX8rxqUQr8OTtS89J5nhgPVQ3U6kcXsAMY1wGfZWMK2x2OO7drkKby3W2enhmMTcSzki7h2gJGVVSsfhs0OH2brSM0GCsYyJXMog_6bdP_CnusgyE2_aDW6sWCp-EZuKxSsLnTJohcNzlSqAxmR-xEMZwESiH_kUs1G-4rWZYgn2-fDAcRx8sSUkcmXKHlf-cU4WRa6KMi6XWi14ag_u4QeovJH5CB5kLnLmW0SyERfvwYlNOrsx5pD4AV_Rs3ENQU0S3pLkF0yhP8yZRwwhaAgcmfZQd2r0q_idRWFNl91pV_mJjp9tXgoYSEIWei-BAQVPqD4MP5qlkY4IaDGIUgwHWb2hkYmELMw.ts&#x27; for reading&#xA;http://twitch.tv/fleeceking&#xA;Input #0, hls,applehttp, from &#x27;https://video-weaver.yto01.hls.ttvnw.net/v1/playlist/CuwDB7kg-rOx72I_T4TigQrbopLHvPc81zIoRat4x_gQcFkNXwclpj4t85zVFcLvU1InuO74I__WzB0KJjTt-5Zz0-tYb4sjEKTP_KvAbYVJQlEdWoYLqI8qiQatuZ1xR452s0-SNKWZNElN-lQmsf6v0woji7tmMrTcNCbD5lkeUGbZGHREtJyY5POK7fjEQ7sBTXxdU3zZSOTXemXHa0OMMzkOJ4NDnebAbpS9VIwG5Rmp8YFwGgwnA3qzF3dOulpeMHcdfUzuaiv96ySbnCoC3tdDWx3J7f862vMQ1O6yUbMiIa6n3id0xUr6oU63zM2QvxHYJAGZPvaXHEjwV4W8QX3db5RHHfPDVUOyQm8MKVsPlpt9nGhZ_4fPggOfBtJhuFS1apLRduVVu2w3jcoKbtubgwCUKBMQ5TS4cjQs52Ii83tPtZRVrmThN6MPlLlmwh_1CUS0qxZBlrpxLjGJjTfJJGTXLlR3DeO4J-5jNQq4yH3gzbKpmG1GwlQA9ulbBm2oexGUw03UCLjsroh32vyZbM7yDux9_w0v0FoXp8oo-beCssfLdS4OPkMe1lb40k42bDjB-FhwuI5ssd9GmXu1cjNen9GzbQI0HegaxOpZy54FZa3K1HB0TZbWsKIZ06F9rUlDbEF5Dt5xEhC2FzGsH16e1iZMLqrjwH3KGgy31QJgMBmysrogh4A.m3u8&#x27;:&#xA;  Duration: N/A, start: 60.000000, bitrate: N/A&#xA;  Program 0 &#xA;    Metadata:&#xA;      variant_bitrate : 0&#xA;    Stream #0:0: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp&#xA;    Metadata:&#xA;      variant_bitrate : 0&#xA;    Stream #0:1: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, unknown/bt709/unknown), 1920x1080, 29.97 tbr, 90k tbn, 2k tbc&#xA;    Metadata:&#xA;      variant_bitrate : 0&#xA;    Stream #0:2: Data: timed_id3 (ID3  / 0x20334449)&#xA;    Metadata:&#xA;      variant_bitrate : 0&#xA;Stream mapping:&#xA;  Stream #0:1 -> #0:0 (h264 (native) -> mjpeg (native))&#xA;Press [q] to stop, [?] for help&#xA;ffmpeg version 4.1.3-0ppa1~18.04 Copyright (c) 2000-2019 the FFmpeg developers&#xA;  built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)&#xA;  configuration: --prefix=/usr --extra-version=&#x27;0ppa1~18.04&#x27; --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-nonfree --enable-libfdk-aac --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared&#xA;  libavutil      56. 22.100 / 56. 22.100&#xA;  libavcodec     58. 35.100 / 58. 35.100&#xA;  libavformat    58. 20.100 / 58. 20.100&#xA;  libavdevice    58.  5.100 / 58.  5.100&#xA;  libavfilter     7. 40.101 /  7. 40.101&#xA;  libavresample   4.  0.  0 /  4.  0.  0&#xA;  libswscale      5.  3.100 /  5.  3.100&#xA;  libswresample   3.  3.100 /  3.  3.100&#xA;  libpostproc    55.  3.100 / 55.  3.100&#xA;[swscaler @ 0x55ce30ae93c0] deprecated pixel format used, make sure you did set range correctly&#xA;[swscaler @ 0x5559d60827c0] deprecated pixel format used, make sure you did set range correctly&#xA;Output #0, image2, to &#x27;/home/onur/Desktop/stream-hatchet/streamhatchet-logorec/logorec-dataset/Hearthstone/39909606413_1608336776_%03d.jpg&#x27;:&#xA;  Metadata:&#xA;    encoder         : Lavf58.20.100&#xA;    Stream #0:0: Video: mjpeg, yuvj420p(pc), 1920x1080, q=2-31, 200 kb/s, 0.50 fps, 0.50 tbn, 0.50 tbc&#xA;    Metadata:&#xA;      variant_bitrate : 0&#xA;      encoder         : Lavc58.35.100 mjpeg&#xA;    Side data:&#xA;      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1&#xA;frame=   10 fps=0.7 q=15.9 Lsize=N/A time=00:00:20.00 bitrate=N/A dup=10 drop=1 speed=1.36x    &#xA;video:1108kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown&#xA;[hls,applehttp @ 0x55cf64902940] Opening &#x27;https://video-edge-c2b1ac.yto01.abs.hls.ttvnw.net/v1/segment/CuwEUt6AwX7y0HJIK0gOgU5pOMXzfQyF3Pc26fGLIUKOngj0g1IFk_XeZucFgCMpYYYDlwf7lEN_XzEnaUN5-9qXva6W4DHtPAlRgWK73aytjJWh82d4qhfMVdqwiwdtHkNBU1WhEeVbWtaAkTcMbXMeghf8WFdcGmHXs2ZGgexZxMS7VVxS39WETlXWLDd7MFxXIu-9upX2NRiu4CXW-XKK4OIMJ86lFy1VARNMG9JUPMGFCZsoNOh5dNe8uFNAnBub1KPP30z3va-IrmhDBi49Ab7pcYhhnXkLUoSwETFq_ZdTHbPLLxR21kXxR6KrWEPrHFPH4xW-zfiNGDmzNS9s91mSDj4UiqhwU00jThtmSBjOlfJzXeKuE80GfnfBneYpsMpSmPQj8mN_xQ771-aQBPlnL3XUdMFk-pVvjaiFUPOnqRiLsU6wuKldwSPhEntkmufP8VgtFYZOWDDlD4-s0tgHC8tu5eKf9zaQLIe_lmKv6lOgwaO2XJsqERijJQ1wOwq9otQYF4kBRp_I-yaJS3azB0JDqFrEZvRAQqP9xtiEzkeJWBvFrwsneuKdMNMX8IXqSA1pM0zyJ_kd4IfZMdl5-4Hs7bzLgyqPlbphh2bkOQ7OnIXt1Hx7P4MkucOvFcWVA0jf89BGMGzrGKqjmIRuLtyM1wRVxWFXj3EakEIIx3yQoqCrd_WBAN-V5Xn4gvRn1MKyn_xQCFrpw4kO7eIYRFzO63askrPWo3GqyMPR5CYq0x8KuydUVlI19BzUCGiWoAlQhqLWAjG34EtIwlWhTaDRWVzUnmsG2S5XYFGCDWyCnAIZaRih3iwSEF7dzzIbAkAaukPxE1UWqNIaDFdi5FCo6z74AhwmPQ.ts&#x27; for reading&#xA;[https @ 0x5602e545fac0] Opening &#x27;https://video-weaver.yto01.hls.ttvnw.net/v1/playlist/Cv0DvhMhaY8nQyvgCVb8Knpnq4LS_QdntEu9nstdrurt6Vtc57dIoii04-Kau7quO62wCXKso-x4719ws7inztepZcc7sWrfbDuDCqL_D41hxTa1fJnZp8bdtEPU7dKIk7coJvUw7foVkVkoA6KkZF5BTSpzOL-9BAWdsIFAZ82dC9LziZCno-7j4_77jbCfSOdZdliNsHjwJkbeal9sp-JJB7sesAvRhT8Jdb6-6m_I1kOawK_NxzS4NBP7SlXD5wSNnSD_Y9TvInwhqC1Q09EqcpYP3JmDZwVTX0ld7vzcW2jsiLA48EOv62ji2Q99PdosWX23ZTH335v1AdQ0iX2nX4G0rNMdGJ5dYzAUezfiH0gFaIiQJmBo1WlFh45BrOqlB4VMQuhDZ47hJTHDOv2qcn9PmvO6N6ENj5A5FJuRbvjVfe7mUrNjaKfb5za7qmQ1usdRhxxl7srRF_Y1fnMLfIMuQw1gMRQAkISYP1Ism4pv4blEu-5td3C2JteGadUaczx8ZLSnWTJQwTJ_o8PzzYaVW900EU0kZuiQ6RgdpJmc3UYrLQ-OUxoudkt4GgjuoSHl8qCiP8nIwSvXnbGg1CH_mCBv_kiuWygbLrY9YVGz3wS67Dn7D6hNJ1tKmK4FP2I5UKasBX4qvqdGAnMhKKqbsITunYuSqgeGNxoSEEuS_9Sp0pxjnKpSOikkMZQaDL8_ZLSngkCEdWFBsg.m3u8&#x27; for reading&#xA;frame=    0 fps=0.0 q=0.0 size=N/A time=00:00:00.00 bitrate=N/A speed=   0x  &#xA;

    &#xA;

  • FFMPEG build on Windows using MSVC - make fails

    28 août 2024, par Maya Sela

    I am trying to build FFMPEG on Windows with MSVC. I am following this guide.
    &#xA;I have managed to setup the environment in order to configure successfully, but make doesn't work.
    &#xA;From VS2013 x64 Native Tools Command Prompt I run

    &#xA;

    msys2_shell.cmd -use-full-path&#xA;

    &#xA;

    and from msys2_shell.cmd I go to the ffmpeg folder and run

    &#xA;

    mingw32-make&#xA;

    &#xA;

    which outputs :

    &#xA;

    awk: cmd. line:1:                                                                                                        ^ syntax error&#xA;awk: cmd. line:1: /including/ { sub(/^.*file: */, ""); gsub(/\/, "/"); if (!match($0, / /)) print "libavdevice/alldevices.o:", $0 }&#xA;awk: cmd. line:1:                                                                                                           ^ unterminated string&#xA;ffbuild/common.mak:67: recipe for target &#x27;libavdevice/alldevices.o&#x27; failed&#xA;mingw32-make: *** [libavdevice/alldevices.o] Error 1&#xA;

    &#xA;

    Some more info :

    &#xA;

    $ mingw32-make --version&#xA;GNU Make 3.82.90&#xA;Built for i686-pc-mingw32&#xA;Copyright (C) 1988-2012 Free Software Foundation, Inc.&#xA;License GPLv3&#x2B;: GNU GPL version 3 or later /gnu.org/licenses/gpl.html>&#xA;This is free software: you are free to change and redistribute it.&#xA;There is NO WARRANTY, to the extent permitted by law.&#xA;

    &#xA;

    FFMPEG snapshot version N-100459-ga7f9b3b
    &#xA;The Makefile :

    &#xA;

    MAIN_MAKEFILE=1&#xA;include ffbuild/config.mak&#xA;&#xA;vpath %.c    $(SRC_PATH)&#xA;vpath %.cpp  $(SRC_PATH)&#xA;vpath %.h    $(SRC_PATH)&#xA;vpath %.inc  $(SRC_PATH)&#xA;vpath %.m    $(SRC_PATH)&#xA;vpath %.S    $(SRC_PATH)&#xA;vpath %.asm  $(SRC_PATH)&#xA;vpath %.rc   $(SRC_PATH)&#xA;vpath %.v    $(SRC_PATH)&#xA;vpath %.texi $(SRC_PATH)&#xA;vpath %.cu   $(SRC_PATH)&#xA;vpath %.ptx  $(SRC_PATH)&#xA;vpath %/fate_config.sh.template $(SRC_PATH)&#xA;&#xA;TESTTOOLS   = audiogen videogen rotozoom tiny_psnr tiny_ssim base64 audiomatch&#xA;HOSTPROGS  := $(TESTTOOLS:%=tests/%) doc/print_options&#xA;&#xA;# $(FFLIBS-yes) needs to be in linking order&#xA;FFLIBS-$(CONFIG_AVDEVICE)   &#x2B;= avdevice&#xA;FFLIBS-$(CONFIG_AVFILTER)   &#x2B;= avfilter&#xA;FFLIBS-$(CONFIG_AVFORMAT)   &#x2B;= avformat&#xA;FFLIBS-$(CONFIG_AVCODEC)    &#x2B;= avcodec&#xA;FFLIBS-$(CONFIG_AVRESAMPLE) &#x2B;= avresample&#xA;FFLIBS-$(CONFIG_POSTPROC)   &#x2B;= postproc&#xA;FFLIBS-$(CONFIG_SWRESAMPLE) &#x2B;= swresample&#xA;FFLIBS-$(CONFIG_SWSCALE)    &#x2B;= swscale&#xA;&#xA;FFLIBS := avutil&#xA;&#xA;DATA_FILES := $(wildcard $(SRC_PATH)/presets/*.ffpreset) $(SRC_PATH)/doc/ffprobe.xsd&#xA;&#xA;SKIPHEADERS = compat/w32pthreads.h&#xA;&#xA;# first so "all" becomes default target&#xA;all: all-yes&#xA;&#xA;include $(SRC_PATH)/tools/Makefile&#xA;include $(SRC_PATH)/ffbuild/common.mak&#xA;&#xA;FF_EXTRALIBS := $(FFEXTRALIBS)&#xA;FF_DEP_LIBS  := $(DEP_LIBS)&#xA;FF_STATIC_DEP_LIBS := $(STATIC_DEP_LIBS)&#xA;&#xA;$(TOOLS): %$(EXESUF): %.o&#xA;    $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(EXTRALIBS-$(*F)) $(EXTRALIBS) $(ELIBS)&#xA;&#xA;target_dec_%_fuzzer$(EXESUF): target_dec_%_fuzzer.o $(FF_DEP_LIBS)&#xA;    $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)&#xA;&#xA;tools/target_bsf_%_fuzzer$(EXESUF): tools/target_bsf_%_fuzzer.o $(FF_DEP_LIBS)&#xA;    $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)&#xA;&#xA;target_dem_%_fuzzer$(EXESUF): target_dem_%_fuzzer.o $(FF_DEP_LIBS)&#xA;    $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)&#xA;&#xA;tools/target_dem_fuzzer$(EXESUF): tools/target_dem_fuzzer.o $(FF_DEP_LIBS)&#xA;    $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)&#xA;&#xA;tools/target_io_dem_fuzzer$(EXESUF): tools/target_io_dem_fuzzer.o $(FF_DEP_LIBS)&#xA;    $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)&#xA;&#xA;&#xA;tools/enum_options$(EXESUF): ELIBS = $(FF_EXTRALIBS)&#xA;tools/enum_options$(EXESUF): $(FF_DEP_LIBS)&#xA;tools/sofa2wavs$(EXESUF): ELIBS = $(FF_EXTRALIBS)&#xA;tools/uncoded_frame$(EXESUF): $(FF_DEP_LIBS)&#xA;tools/uncoded_frame$(EXESUF): ELIBS = $(FF_EXTRALIBS)&#xA;tools/target_dec_%_fuzzer$(EXESUF): $(FF_DEP_LIBS)&#xA;tools/target_dem_%_fuzzer$(EXESUF): $(FF_DEP_LIBS)&#xA;&#xA;CONFIGURABLE_COMPONENTS =                                           \&#xA;    $(wildcard $(FFLIBS:%=$(SRC_PATH)/lib%/all*.c))                 \&#xA;    $(SRC_PATH)/libavcodec/bitstream_filters.c                      \&#xA;    $(SRC_PATH)/libavcodec/parsers.c                                \&#xA;    $(SRC_PATH)/libavformat/protocols.c                             \&#xA;&#xA;config.h: ffbuild/.config&#xA;ffbuild/.config: $(CONFIGURABLE_COMPONENTS)&#xA;    @-tput bold 2>/dev/null&#xA;    @-printf &#x27;\nWARNING: $(?) newer than config.h, rerun configure\n\n&#x27;&#xA;    @-tput sgr0 2>/dev/null&#xA;&#xA;SUBDIR_VARS := CLEANFILES FFLIBS HOSTPROGS TESTPROGS TOOLS               \&#xA;               HEADERS ARCH_HEADERS BUILT_HEADERS SKIPHEADERS            \&#xA;               ARMV5TE-OBJS ARMV6-OBJS ARMV8-OBJS VFP-OBJS NEON-OBJS     \&#xA;               ALTIVEC-OBJS VSX-OBJS MMX-OBJS X86ASM-OBJS                \&#xA;               MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSP-OBJS MSA-OBJS         \&#xA;               MMI-OBJS OBJS SLIBOBJS HOSTOBJS TESTOBJS&#xA;&#xA;define RESET&#xA;$(1) :=&#xA;$(1)-yes :=&#xA;endef&#xA;&#xA;define DOSUBDIR&#xA;$(foreach V,$(SUBDIR_VARS),$(eval $(call RESET,$(V))))&#xA;SUBDIR := $(1)/&#xA;include $(SRC_PATH)/$(1)/Makefile&#xA;-include $(SRC_PATH)/$(1)/$(ARCH)/Makefile&#xA;-include $(SRC_PATH)/$(1)/$(INTRINSICS)/Makefile&#xA;include $(SRC_PATH)/ffbuild/library.mak&#xA;endef&#xA;&#xA;$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))&#xA;&#xA;include $(SRC_PATH)/fftools/Makefile&#xA;include $(SRC_PATH)/doc/Makefile&#xA;include $(SRC_PATH)/doc/examples/Makefile&#xA;&#xA;libavcodec/utils.o libavformat/utils.o libavdevice/avdevice.o libavfilter/avfilter.o libavutil/utils.o libpostproc/postprocess.o libswresample/swresample.o libswscale/utils.o : libavutil/ffversion.h&#xA;&#xA;$(PROGS): %$(PROGSSUF)$(EXESUF): %$(PROGSSUF)_g$(EXESUF)&#xA;ifeq ($(STRIPTYPE),direct)&#xA;    $(STRIP) -o $@ $&lt;&#xA;else&#xA;    $(CP) $&lt; $@&#xA;    $(STRIP) $@&#xA;endif&#xA;&#xA;%$(PROGSSUF)_g$(EXESUF): $(FF_DEP_LIBS)&#xA;    $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS)&#xA;&#xA;VERSION_SH  = $(SRC_PATH)/ffbuild/version.sh&#xA;GIT_LOG     = $(SRC_PATH)/.git/logs/HEAD&#xA;&#xA;.version: $(wildcard $(GIT_LOG)) $(VERSION_SH) ffbuild/config.mak&#xA;.version: M=@&#xA;&#xA;libavutil/ffversion.h .version:&#xA;    $(M)$(VERSION_SH) $(SRC_PATH) libavutil/ffversion.h $(EXTRA_VERSION)&#xA;    $(Q)touch .version&#xA;&#xA;# force version.sh to run whenever version might have changed&#xA;-include .version&#xA;&#xA;install: install-libs install-headers&#xA;&#xA;install-libs: install-libs-yes&#xA;&#xA;install-data: $(DATA_FILES)&#xA;    $(Q)mkdir -p "$(DATADIR)"&#xA;    $(INSTALL) -m 644 $(DATA_FILES) "$(DATADIR)"&#xA;&#xA;uninstall: uninstall-data uninstall-headers uninstall-libs uninstall-pkgconfig&#xA;&#xA;uninstall-data:&#xA;    $(RM) -r "$(DATADIR)"&#xA;&#xA;clean::&#xA;    $(RM) $(CLEANSUFFIXES)&#xA;    $(RM) $(addprefix compat/,$(CLEANSUFFIXES)) $(addprefix compat/*/,$(CLEANSUFFIXES)) $(addprefix compat/*/*/,$(CLEANSUFFIXES))&#xA;    $(RM) -r coverage-html&#xA;    $(RM) -rf coverage.info coverage.info.in lcov&#xA;&#xA;distclean:: clean&#xA;    $(RM) .version avversion.h config.asm config.h mapfile  \&#xA;        ffbuild/.config ffbuild/config.* libavutil/avconfig.h \&#xA;        version.h libavutil/ffversion.h libavcodec/codec_names.h \&#xA;        libavcodec/bsf_list.c libavformat/protocol_list.c \&#xA;        libavcodec/codec_list.c libavcodec/parser_list.c \&#xA;        libavfilter/filter_list.c libavdevice/indev_list.c libavdevice/outdev_list.c \&#xA;        libavformat/muxer_list.c libavformat/demuxer_list.c&#xA;ifeq ($(SRC_LINK),src)&#xA;    $(RM) src&#xA;endif&#xA;    $(RM) -rf doc/examples/pc-uninstalled&#xA;&#xA;config:&#xA;    $(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION)&#xA;&#xA;build: all alltools examples testprogs&#xA;check: all alltools examples testprogs fate&#xA;&#xA;include $(SRC_PATH)/tests/Makefile&#xA;&#xA;$(sort $(OUTDIRS)):&#xA;    $(Q)mkdir -p $@&#xA;&#xA;# Dummy rule to stop make trying to rebuild removed or renamed headers&#xA;%.h:&#xA;    @:&#xA;&#xA;# Disable suffix rules.  Most of the builtin rules are suffix rules,&#xA;# so this saves some time on slow systems.&#xA;.SUFFIXES:&#xA;&#xA;.PHONY: all all-yes alltools build check config testprogs&#xA;.PHONY: *clean install* uninstall*&#xA;

    &#xA;

    Any suggestions ?
    &#xA;Thanks !

    &#xA;

    EDIT
    &#xA;Tried starting with x64 Native Tools Command Prompt for VS 2019 and got the same result.

    &#xA;

    EDIT #2 (because this is too long for a comment)

    &#xA;

    $ mingw32-make Q=&#xA;mkdir -p libavutil/&#xA;mkdir -p libswscale/&#xA;mkdir -p libswresample/&#xA;mkdir -p libavcodec/&#xA;mkdir -p libavformat/&#xA;mkdir -p libavfilter/&#xA;mkdir -p libavdevice/&#xA;awk: cmd. line:1: /including/ { sub(/^.*file: */, ""); gsub(/\/, "/"); if (!match($0, / /)) print "libavdevice/alldevices.o:", $0 }&#xA;awk: cmd. line:1:                                                                                                        ^ syntax error&#xA;awk: cmd. line:1: /including/ { sub(/^.*file: */, ""); gsub(/\/, "/"); if (!match($0, / /)) print "libavdevice/alldevices.o:", $0 }&#xA;awk: cmd. line:1:                                                                                                           ^ unterminated string&#xA;ffbuild/common.mak:67: recipe for target &#x27;libavdevice/alldevices.o&#x27; failed&#xA;mingw32-make: *** [libavdevice/alldevices.o] Error 1&#xA;

    &#xA;

    ffbuild/common.mak is :

    &#xA;

    #&#xA;# common bits used by all libraries&#xA;#&#xA;&#xA;DEFAULT_X86ASMD=.dbg&#xA;&#xA;ifeq ($(DBG),1)&#xA;X86ASMD=$(DEFAULT_X86ASMD)&#xA;else&#xA;X86ASMD=&#xA;endif&#xA;&#xA;ifndef SUBDIR&#xA;&#xA;ifndef V&#xA;Q      = @&#xA;ECHO   = printf "$(1)\t%s\n" $(2)&#xA;BRIEF  = CC CXX OBJCC HOSTCC HOSTLD AS X86ASM AR LD STRIP CP WINDRES NVCC&#xA;SILENT = DEPCC DEPHOSTCC DEPAS DEPX86ASM RANLIB RM&#xA;&#xA;MSG    = $@&#xA;M      = @$(call ECHO,$(TAG),$@);&#xA;$(foreach VAR,$(BRIEF), \&#xA;    $(eval override $(VAR) = @$$(call ECHO,$(VAR),$$(MSG)); $($(VAR))))&#xA;$(foreach VAR,$(SILENT),$(eval override $(VAR) = @$($(VAR))))&#xA;$(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_DIR)/%=%)); $(INSTALL))&#xA;endif&#xA;&#xA;ALLFFLIBS = avcodec avdevice avfilter avformat avresample avutil postproc swscale swresample&#xA;&#xA;# NASM requires -I path terminated with /&#xA;IFLAGS     := -I. -I$(SRC_LINK)/&#xA;CPPFLAGS   := $(IFLAGS) $(CPPFLAGS)&#xA;CFLAGS     &#x2B;= $(ECFLAGS)&#xA;CCFLAGS     = $(CPPFLAGS) $(CFLAGS)&#xA;OBJCFLAGS  &#x2B;= $(EOBJCFLAGS)&#xA;OBJCCFLAGS  = $(CPPFLAGS) $(CFLAGS) $(OBJCFLAGS)&#xA;ASFLAGS    := $(CPPFLAGS) $(ASFLAGS)&#xA;CXXFLAGS   := $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS)&#xA;X86ASMFLAGS &#x2B;= $(IFLAGS:%=%/) -I$( -Pconfig.asm&#xA;&#xA;HOSTCCFLAGS = $(IFLAGS) $(HOSTCPPFLAGS) $(HOSTCFLAGS)&#xA;LDFLAGS    := $(ALLFFLIBS:%=$(LD_PATH)lib%) $(LDFLAGS)&#xA;&#xA;define COMPILE&#xA;       $(call $(1)DEP,$(1))&#xA;       $($(1)) $($(1)FLAGS) $($(2)) $($(1)_DEPFLAGS) $($(1)_C) $($(1)_O) $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$&lt;)&#xA;endef&#xA;&#xA;COMPILE_C = $(call COMPILE,CC)&#xA;COMPILE_CXX = $(call COMPILE,CXX)&#xA;COMPILE_S = $(call COMPILE,AS)&#xA;COMPILE_M = $(call COMPILE,OBJCC)&#xA;COMPILE_X86ASM = $(call COMPILE,X86ASM)&#xA;COMPILE_HOSTC = $(call COMPILE,HOSTCC)&#xA;COMPILE_NVCC = $(call COMPILE,NVCC)&#xA;COMPILE_MMI = $(call COMPILE,CC,MMIFLAGS)&#xA;COMPILE_MSA = $(call COMPILE,CC,MSAFLAGS)&#xA;&#xA;%_mmi.o: %_mmi.c&#xA;    $(COMPILE_MMI)&#xA;&#xA;%_msa.o: %_msa.c&#xA;    $(COMPILE_MSA)&#xA;&#xA;%.o: %.c&#xA;    $(COMPILE_C)&#xA;&#xA;%.o: %.cpp&#xA;    $(COMPILE_CXX)&#xA;&#xA;%.o: %.m&#xA;    $(COMPILE_M)&#xA;&#xA;%.s: %.c&#xA;    $(CC) $(CCFLAGS) -S -o $@ $&lt;&#xA;&#xA;%.o: %.S&#xA;    $(COMPILE_S)&#xA;&#xA;%_host.o: %.c&#xA;    $(COMPILE_HOSTC)&#xA;&#xA;%$(DEFAULT_X86ASMD).asm: %.asm&#xA;    $(DEPX86ASM) $(X86ASMFLAGS) -M -o $@ $&lt; > $(@:.asm=.d)&#xA;    $(X86ASM) $(X86ASMFLAGS) -e $&lt; | sed &#x27;/^%/d;/^$$/d;&#x27; > $@&#xA;&#xA;%.o: %.asm&#xA;    $(COMPILE_X86ASM)&#xA;    -$(if $(ASMSTRIPFLAGS), $(STRIP) $(ASMSTRIPFLAGS) $@)&#xA;&#xA;%.o: %.rc&#xA;    $(WINDRES) $(IFLAGS) --preprocessor "$(DEPWINDRES) -E -xc-header -DRC_INVOKED $(CC_DEPFLAGS)" -o $@ $&lt;&#xA;&#xA;%.i: %.c&#xA;    $(CC) $(CCFLAGS) $(CC_E) $&lt;&#xA;&#xA;%.h.c:&#xA;    $(Q)echo &#x27;#include "$*.h"&#x27; >$@&#xA;&#xA;%.ptx: %.cu $(SRC_PATH)/compat/cuda/cuda_runtime.h&#xA;    $(COMPILE_NVCC)&#xA;&#xA;%.ptx.c: %.ptx&#xA;    $(Q)sh $(SRC_PATH)/compat/cuda/ptx2c.sh $@ $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$&lt;)&#xA;&#xA;%.c %.h %.pc %.ver %.version: TAG = GEN&#xA;&#xA;# Dummy rule to stop make trying to rebuild removed or renamed headers&#xA;%.h:&#xA;    @:&#xA;&#xA;# Disable suffix rules.  Most of the builtin rules are suffix rules,&#xA;# so this saves some time on slow systems.&#xA;.SUFFIXES:&#xA;&#xA;# Do not delete intermediate files from chains of implicit rules&#xA;$(OBJS):&#xA;endif&#xA;&#xA;include $(SRC_PATH)/ffbuild/arch.mak&#xA;&#xA;OBJS      &#x2B;= $(OBJS-yes)&#xA;SLIBOBJS  &#x2B;= $(SLIBOBJS-yes)&#xA;FFLIBS    := $($(NAME)_FFLIBS) $(FFLIBS-yes) $(FFLIBS)&#xA;TESTPROGS &#x2B;= $(TESTPROGS-yes)&#xA;&#xA;LDLIBS       = $(FFLIBS:%=%$(BUILDSUF))&#xA;FFEXTRALIBS := $(LDLIBS:%=$(LD_LIB)) $(foreach lib,EXTRALIBS-$(NAME) $(FFLIBS:%=EXTRALIBS-%),$($(lib))) $(EXTRALIBS)&#xA;&#xA;OBJS      := $(sort $(OBJS:%=$(SUBDIR)%))&#xA;SLIBOBJS  := $(sort $(SLIBOBJS:%=$(SUBDIR)%))&#xA;TESTOBJS  := $(TESTOBJS:%=$(SUBDIR)tests/%) $(TESTPROGS:%=$(SUBDIR)tests/%.o)&#xA;TESTPROGS := $(TESTPROGS:%=$(SUBDIR)tests/%$(EXESUF))&#xA;HOSTOBJS  := $(HOSTPROGS:%=$(SUBDIR)%.o)&#xA;HOSTPROGS := $(HOSTPROGS:%=$(SUBDIR)%$(HOSTEXESUF))&#xA;TOOLS     &#x2B;= $(TOOLS-yes)&#xA;TOOLOBJS  := $(TOOLS:%=tools/%.o)&#xA;TOOLS     := $(TOOLS:%=tools/%$(EXESUF))&#xA;HEADERS   &#x2B;= $(HEADERS-yes)&#xA;&#xA;PATH_LIBNAME = $(foreach NAME,$(1),lib$(NAME)/$($(2)LIBNAME))&#xA;DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib),$(CONFIG_SHARED:yes=S)))&#xA;STATIC_DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib)))&#xA;&#xA;SRC_DIR    := $(SRC_PATH)/lib$(NAME)&#xA;ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)/$(ARCH)/*.h))&#xA;SKIPHEADERS &#x2B;= $(ARCH_HEADERS:%=$(ARCH)/%) $(SKIPHEADERS-)&#xA;SKIPHEADERS := $(SKIPHEADERS:%=$(SUBDIR)%)&#xA;HOBJS        = $(filter-out $(SKIPHEADERS:.h=.h.o),$(ALLHEADERS:.h=.h.o))&#xA;PTXOBJS      = $(filter %.ptx.o,$(OBJS))&#xA;$(HOBJS):     CCFLAGS &#x2B;= $(CFLAGS_HEADERS)&#xA;checkheaders: $(HOBJS)&#xA;.SECONDARY:   $(HOBJS:.o=.c) $(PTXOBJS:.o=.c) $(PTXOBJS:.o=)&#xA;&#xA;alltools: $(TOOLS)&#xA;&#xA;$(HOSTOBJS): %.o: %.c&#xA;    $(COMPILE_HOSTC)&#xA;&#xA;$(HOSTPROGS): %$(HOSTEXESUF): %.o&#xA;    $(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $^ $(HOSTEXTRALIBS)&#xA;&#xA;$(OBJS):     | $(sort $(dir $(OBJS)))&#xA;$(HOBJS):    | $(sort $(dir $(HOBJS)))&#xA;$(HOSTOBJS): | $(sort $(dir $(HOSTOBJS)))&#xA;$(SLIBOBJS): | $(sort $(dir $(SLIBOBJS)))&#xA;$(TESTOBJS): | $(sort $(dir $(TESTOBJS)))&#xA;$(TOOLOBJS): | tools&#xA;&#xA;OUTDIRS := $(OUTDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(TESTOBJS))&#xA;&#xA;CLEANSUFFIXES     = *.d *.gcda *.gcno *.h.c *.ho *.map *.o *.pc *.ptx *.ptx.c *.ver *.version *$(DEFAULT_X86ASMD).asm *~ *.ilk *.pdb&#xA;LIBSUFFIXES       = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a&#xA;&#xA;define RULES&#xA;clean::&#xA;    $(RM) $(HOSTPROGS) $(TESTPROGS) $(TOOLS)&#xA;endef&#xA;&#xA;$(eval $(RULES))&#xA;&#xA;-include $(wildcard $(OBJS:.o=.d) $(HOSTOBJS:.o=.d) $(TESTOBJS:.o=.d) $(HOBJS:.o=.d) $(SLIBOBJS:.o=.d)) $(OBJS:.o=$(DEFAULT_X86ASMD).d)&#xA;

    &#xA;