Recherche avancée

Médias (2)

Mot : - Tags -/kml

Autres articles (78)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Diogene : création de masques spécifiques de formulaires d’édition de contenus

    26 octobre 2010, par

    Diogene est un des plugins ? SPIP activé par défaut (extension) lors de l’initialisation de MediaSPIP.
    A quoi sert ce plugin
    Création de masques de formulaires
    Le plugin Diogène permet de créer des masques de formulaires spécifiques par secteur sur les trois objets spécifiques SPIP que sont : les articles ; les rubriques ; les sites
    Il permet ainsi de définir en fonction d’un secteur particulier, un masque de formulaire par objet, ajoutant ou enlevant ainsi des champs afin de rendre le formulaire (...)

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

Sur d’autres sites (12415)

  • How to access docker container from another container

    5 mars 2020, par M P

    Consider this solution

    Ubuntu 18.04 -
    Installed docker -
    Created openlitespeed container -
    Created ffmpeg container -

    In my host this command is ok :

    $ docker exec -it ffmpeg-container ffmpeg -version

    ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers

    but How to access in openlitespeed container to ffmpeg container with php code ?

    <?php
    $code='docker exec -it ffmpeg-container ffmpeg -version';
    echo exec($code);
  • FFMPEG : How to manually select video quality from mpd manifest ?

    18 juin 2022, par Deoxys

    I want to ask what command should I use to select video quality from mpd manifest ?

    



    mpd manifest link

    



    https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6.mpd


    



    Here, the mpd file :

    



    &lt;?xml version="1.0" encoding="utf-8"?>&#xA;<mpd xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediapresentationduration="PT7M59.240000S" minbuffertime="PT0S" maxsegmentduration="PT4S">&#xA;  <period duration="PT7M59.240000S">&#xA;    <adaptationset group="1" mimetype="audio/mp4" lang="en" contenttype="audio" minbandwidth="32000" maxbandwidth="64000">&#xA;<contentprotection schemeiduri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"></contentprotection><contentprotection schemeiduri="urn:mpeg:dash:mp4protection:2011" value="cenc"></contentprotection>      <role schemeiduri="urn:mpeg:dash:role:2011" value="main"></role>&#xA;      <representation bandwidth="32000" audiosamplingrate="22050" codecs="mp4a.40.2">&#xA;        <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></audiochannelconfiguration>&#xA;        <segmenttemplate timescale="10000000" initialization="kiko-season1-eps1-mobil-kabur-anv6-$RepresentationID$-init.mp4" media="kiko-season1-eps1-mobil-kabur-anv6-$RepresentationID$-$Time$.mp4">&#xA;          <segmenttimeline>&#xA;            <s t="0" d="36223129" r="1"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129" r="1"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129" r="1"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129" r="1"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129" r="1"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="3715193"></s>&#xA;          </segmenttimeline>&#xA;        </segmenttemplate>&#xA;      </representation>&#xA;      <representation bandwidth="64000" audiosamplingrate="22050" codecs="mp4a.40.2">&#xA;        <audiochannelconfiguration schemeiduri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></audiochannelconfiguration>&#xA;        <segmenttemplate timescale="10000000" initialization="kiko-season1-eps1-mobil-kabur-anv6-$RepresentationID$-init.mp4" media="kiko-season1-eps1-mobil-kabur-anv6-$RepresentationID$-$Time$.mp4">&#xA;          <segmenttimeline>&#xA;            <s t="0" d="36223129" r="1"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129" r="1"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129" r="1"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129" r="1"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758731"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129" r="1"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223130"></s>&#xA;            <s d="35758730"></s>&#xA;            <s d="36223129"></s>&#xA;            <s d="3715193"></s>&#xA;          </segmenttimeline>&#xA;        </segmenttemplate>&#xA;      </representation>&#xA;    </adaptationset>&#xA;    <adaptationset group="2" framerate="25" mimetype="video/mp4" startwithsap="1" contenttype="video" par="16:9" minbandwidth="150119" maxbandwidth="5002530" minwidth="256" maxwidth="1920" minheight="144" maxheight="1080">&#xA;<contentprotection schemeiduri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"></contentprotection><contentprotection schemeiduri="urn:mpeg:dash:mp4protection:2011" value="cenc"></contentprotection>      <role schemeiduri="urn:mpeg:dash:role:2011" value="main"></role>&#xA;      <segmenttemplate timescale="10000000" initialization="kiko-season1-eps1-mobil-kabur-anv6-$RepresentationID$-init.mp4" media="kiko-season1-eps1-mobil-kabur-anv6-$RepresentationID$-$Time$.mp4">&#xA;        <segmenttimeline>&#xA;          <s t="0" d="36000000" r="132"></s>&#xA;          <s d="4400000"></s>&#xA;        </segmenttimeline>&#xA;      </segmenttemplate>&#xA;      <representation bandwidth="150119" width="256" height="144" codecs="avc1.4d400c"></representation>&#xA;      <representation bandwidth="500565" width="640" height="360" codecs="avc1.4d401e"></representation>&#xA;      <representation bandwidth="1001193" width="854" height="480" codecs="avc1.4d401e"></representation>&#xA;      <representation bandwidth="2502286" width="1280" height="720" codecs="avc1.4d401f"></representation>&#xA;      <representation bandwidth="5002530" width="1920" height="1080" codecs="avc1.4d4028"></representation>&#xA;    </adaptationset>&#xA;  </period>&#xA;</mpd>&#xA;

    &#xA;&#xA;

    The video is not encrypted with DRM. When I tried to download with FFmpeg, success, but FFmpeg automatically select the worst quality (144p).

    &#xA;&#xA;

    FFmpeg command I use :

    &#xA;&#xA;

    ffmpeg -i https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6.mpd -c copy kiko1.mp4&#xA;

    &#xA;&#xA;

    Result from ffmpeg

    &#xA;&#xA;

    ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers&#xA;  built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)&#xA;  configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared&#xA;  libavutil      55. 78.100 / 55. 78.100&#xA;  libavcodec     57.107.100 / 57.107.100&#xA;  libavformat    57. 83.100 / 57. 83.100&#xA;  libavdevice    57. 10.100 / 57. 10.100&#xA;  libavfilter     6.107.100 /  6.107.100&#xA;  libavresample   3.  7.  0 /  3.  7.  0&#xA;  libswscale      4.  8.100 /  4.  8.100&#xA;  libswresample   2.  9.100 /  2.  9.100&#xA;  libpostproc    54.  7.100 / 54.  7.100&#xA;[dash @ 0x562ae2e98000] Opening &#x27;[URL]https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6-avc1_150119=5-init.mp4[/URL]&#x27; for reading [dash @ 0x562ae2e98000] Could not read complete fragment.&#xA;[dash @ 0x562ae2e98000] Opening &#x27;[URL]https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6-avc1_150119=5-0.mp4[/URL]&#x27; for reading&#xA;[dash @ 0x562ae2e98000] Opening &#x27;[URL]https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6-mp4a_32000_eng=6-init.mp4[/URL]&#x27; for reading [dash @ 0x562ae2e98000] Could not read complete fragment.&#xA;[dash @ 0x562ae2e98000] Opening &#x27;[URL]https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6-mp4a_32000_eng=6-0.mp4[/URL]&#x27; for reading&#xA;[aac @ 0x562ae32ced00] channel element 2.3 is not allocated&#xA;[h264 @ 0x562ae32cc500] top block unavailable for requested intra mode -1&#xA;[h264 @ 0x562ae32cc500] error while decoding MB 0 0, bytestream 38&#xA;[h264 @ 0x562ae32cc500] concealing 144 DC, 144 AC, 144 MV errors in I frame&#xA;Input #0, dash, from &#x27;[URL]https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6.mpd[/URL]&#x27;:&#xA;  Duration: 00:07:59.00, start: 0.000000, bitrate: 0 kb/s &#xA;Program 0&#xA;     Stream #0:0: Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 256x144 [SAR 1:1 DAR 16:9], 153 kb/s, 25 fps, 25 tbr, 10000k tbn, 50 tbc  &#xA;     Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 32 kb/s&#xA;Output #0, mp4, to &#x27;kiko1.mp4&#x27;: &#xA;   Metadata:   &#xA;      encoder         : Lavf57.83.100   &#xA;      Stream #0:0: Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 256x144 [SAR 1:1 DAR 16:9], q=2-31, 153 kb/s, 25 fps, 25 tbr, 10000k tbn, 10000k tbc&#xA;Stream mapping: &#xA;   Stream #0:0 -> #0:0 (copy)&#xA;Press [q] to stop, [?] for help&#xA;[dash @ 0x562ae2e98000] Opening &#x27;[URL]https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6-mp4a_32000_eng=6-36223129.mp4[/URL]&#x27; for reading&#xA;[dash @ 0x562ae2e98000] Opening &#x27;[URL]https://anevia115(dot)mncnow(dot)id/vod/eds/kiko-season1-eps1-mobil-kabur-anv6/_/sa_dash_vmx/kiko-season1-eps1-mobil-kabur-anv6-avc1_150119=5-36000000.mp4[/URL]&#x27; for reading&#xA;....&#xA;....&#xA;frame=11978 fps= 99 q=-1.0 Lsize=    8891kB time=00:07:59.08 bitrate= 152.0kbits/s speed=3.97x&#xA;video:8779kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.269990%&#xA;

    &#xA;&#xA;

    Tried youtube-dl & streamlink but failed.&#xA;So, I use FFmpeg because it success to download the video and audio. I have read FFmpeg documentation but I have no idea what command should I use.&#xA;What command should I use to select another quality ? (ex : audio 64 kbps, video : 720p)

    &#xA;&#xA;

    &#xA;

    Note : just change (dot) to .

    &#xA;

    &#xA;

  • MAINTAINERS : Don't mention Google+

    17 mars 2020, par Andreas Rheinhardt
    MAINTAINERS : Don't mention Google+
    

    It has been shut down in April 2019.

    Signed-off-by : Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
    Signed-off-by : Michael Niedermayer <michael@niedermayer.cc>

    • [DH] MAINTAINERS