Recherche avancée

Médias (91)

Autres articles (65)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • MediaSPIP Core : La Configuration

    9 novembre 2010, par

    MediaSPIP Core fournit par défaut trois pages différentes de configuration (ces pages utilisent le plugin de configuration CFG pour fonctionner) : une page spécifique à la configuration générale du squelettes ; une page spécifique à la configuration de la page d’accueil du site ; une page spécifique à la configuration des secteurs ;
    Il fournit également une page supplémentaire qui n’apparait que lorsque certains plugins sont activés permettant de contrôler l’affichage et les fonctionnalités spécifiques (...)

  • 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 (11801)

  • Evolution #4080 : Raccourci puce : se débarasser de l’image

    28 septembre 2018, par cedric -

    Je note que la demande initiale simple était "ne plus avoir une image sur cette puce parce qu’on ne peut pas la personaliser" et qu’à la fin il s’agit de tout revoir le fonctionnement des raccourcis SPIP et donc qu’on ne fera rien :)

    Pour revenir au point de départ :

    1/ peut-être ça manque de documentation mais la puce est totalement personnalisable via le mes_options.php :

    $GLOBALS[’puce’] = ’’ ;
    $GLOBALS[’puce_rtl’] = ’’ ;
    $GLOBALS[’puce_prive’] = ’’ ;
    $GLOBALS[’puce_prive_rtl’] = ’’ ;
    

    2/ ça paraitrait moderne de passer à une puce unicode par défaut décorée en CSS avec un fallback texte pour les sites qui upgraderont sans avoir la CSS qui va bien

    
    

    avec les styles suivants :

    .spip-puce b display:none ;
    .spip-puce
    position : relative ;
    top : 1px ;
    display : inline-block ;
    font-style : normal ;
    font-weight : normal ;
    line-height : 1 ;
    -webkit-font-smoothing : antialiased ;
    -moz-osx-font-smoothing : grayscale ;

    .spip-puce:before
    content : "\2023" ;

    Avec puce à choisir parmi
    https://unicode-table.com/fr/2023/
    https://unicode-table.com/fr/25B8/
    https://unicode-table.com/fr/25B6/

    Du coup sans ces styles spécifiques, la puce est un simple tiret typographique, et avec les styles c’est un caractère qui s’affiche dans la couleur et taille de texte courante, et stylable

    2b/
    Voire si on veut faire une transition vraiment smoothly on garde le img actuel en fallback dans le span (au lieu du simple tiret), et il ne s’affichera plus que sur les anciens sites qui n’ont pas ajoutés la nouvelle CSS
    (et on prévient que dans une prochaine version cette puce image disparaitra complètement)

    3/ à partir du moment où on a un plugin qui permet de transformer ces puces en liste je pense que garder le comportement actuel par défaut dans SPIP est pertinent et le plus logique

  • ffmpeg :how to apply animation in multiple images that will me merged in a video template in android

    1er mars 2023, par Pavan Ghanate

    I am trying to merge number of selected images from gallery to a video template in order to make video status or short video in a android app, I am able to merge the selected images in the video using below cammand now i want to add animation

    


     ArrayList<string> cmd2 = new ArrayList&lt;>();&#xA;    cmd2.add("-y");&#xA;    cmd2.add("-i");&#xA;    if (video_temp_path!= null){&#xA;        cmd2.add(video_temp_path);&#xA;    }else {&#xA;        cmd2.add(Environment.getExternalStorageDirectory().getPath()&#xA;                &#x2B; "/Download/happy.mp4");&#xA;    }&#xA;&#xA;&#xA;    for (int no = 0; no &lt; paths.length; no&#x2B;&#x2B;) {&#xA;        cmd2.add("-i");&#xA;&#xA;        cmd2.add(paths[no]);&#xA;&#xA;    }&#xA;&#xA;    cmd2.add("-filter_complex");&#xA;&#xA;&#xA;&#xA;    cmd2.add("[0][1]overlay=x=100:y=200:enable=&#x27;between(t,3,8)&#x27;[v1];" &#x2B;&#xA;            "[v1][2]overlay=x=100:y=200:enable=&#x27;between(t,10,15)&#x27;[v2];" &#x2B;&#xA;            "[v2][3]overlay=x=100:y=200:enable=&#x27;gt(t,17)&#x27;[v3]");&#xA;    cmd2.add("-map");&#xA;    cmd2.add("[v3]");&#xA;    cmd2.add("-map");&#xA;    cmd2.add( "0:a");&#xA;    cmd2.add(Environment.getExternalStorageDirectory().getPath()&#xA;            &#x2B; "/Download/output.mp4");&#xA;</string>

    &#xA;

    but now i want to add fade in out animation to images so I am using this cammand generated by chatgpt but its giving me error

    &#xA;

      ArrayList<string> cmd2 = new ArrayList&lt;>();&#xA;   cmd2.add("-y");&#xA;   cmd2.add("-i");&#xA;&#xA;   if (video_temp_path != null) {&#xA;    cmd2.add(video_temp_path);&#xA;  } else {&#xA;    cmd2.add(Environment.getExternalStorageDirectory().getPath() &#x2B;&#xA;            "/Download/happy.mp4");&#xA;}&#xA;&#xA;for (int no = 0; no &lt; paths.length; no&#x2B;&#x2B;) {&#xA;    cmd2.add("-loop");&#xA;    cmd2.add("1"); // loop the image&#xA;&#xA;    cmd2.add("-t");&#xA;    cmd2.add("5"); // duration of the image&#xA;&#xA;    cmd2.add("-i");&#xA;    cmd2.add(paths[no]);&#xA;&#xA;    cmd2.add("-filter_complex");&#xA;    cmd2.add("[1:v]fade=in:st=0:d=1[tin];" &#x2B;&#xA;            "[1:v]fade=out:st=4:d=1[tout];" &#x2B;&#xA;            "[0:v][tin]overlay=x=100:y=200" &#x2B;&#xA;            "[v1];" &#x2B;&#xA;            "[v1][tout]overlay=x=100:y=200:enable=&#x27;between(t,10,15)&#x27;[v2];" &#x2B;&#xA;            "[v2][2:v]overlay=x=100:y=200:enable=&#x27;gt(t,17)&#x27;[v3]");&#xA;&#xA;    cmd2.add("-map");&#xA;    cmd2.add("[v3]");&#xA;    cmd2.add("-map");&#xA;    cmd2.add("0:a");&#xA;}&#xA;&#xA;cmd2.add(Environment.getExternalStorageDirectory().getPath() &#x2B;&#xA;        "/Download/output.mp4");&#xA;</string>

    &#xA;

    error is

    &#xA;

     Option map (set input stream mapping) cannot be applied to input url /storage/emulated/0/Pictures/temp/1677570327312.jpg -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.&#xA;

    &#xA;

    2023-03-01 12:50:50.707 5950-6326/com.android.mergevideo E/mobile-ffmpeg : Error parsing options for input file /storage/emulated/0/Pictures/temp/1677570327312.jpg.&#xA;2023-03-01 12:50:50.707 5950-6326/com.android.mergevideo E/mobile-ffmpeg : Error opening input files :&#xA;2023-03-01 12:50:50.707 5950-6326/com.android.mergevideo E/mobile-ffmpeg : Invalid argument

    &#xA;

  • why ffmpeg process successfully terminated with return code of 1 without play anything

    24 juillet 2023, par Exc

    `I tried replacing youtube_dl with yt_dlp and replaced some of the code, the code worked fine but when using the command, the bot doesn't play music but immediately ffmpeg process 15076 successfully terminated with return code of 1

    &#xA;

    Is there a problem with my code or the ffmpg option or ytdlp option that doesn't support the yt_dlp library ?`

    &#xA;

     self.YTDL_OPTIONS = {&#xA;        &#x27;format&#x27;: &#x27;bestaudio/best&#x27;,&#xA;        &#x27;outtmpl&#x27;: &#x27;F:/DISCORD BOT/Ex/music/%(extractor)s-%(id)s-%(title)s.%(ext)s&#x27;,&#xA;        &#x27;restrictfilenames&#x27;: True,&#xA;        &#x27;retry_max&#x27;: &#x27;auto&#x27;,&#xA;        &#x27;noplaylist&#x27;: True,&#xA;        &#x27;nocheckcertificate&#x27;: True,&#xA;        &#x27;ignoreerrors&#x27;: True,&#xA;        &#x27;logtostderr&#x27;: False,&#xA;        &#x27;quiet&#x27;: True,&#xA;        &#x27;no_warnings&#x27;: True,&#xA;        &#x27;default_search&#x27;: &#x27;auto&#x27;,&#xA;        &#x27;source_address&#x27;: &#x27;0.0.0.0&#x27;,&#xA;        &#x27;postprocessors&#x27;: [{&#xA;            &#x27;key&#x27;: &#x27;FFmpegExtractAudio&#x27;,&#xA;            &#x27;preferredcodec&#x27;: &#x27;mp3&#x27;,&#xA;            &#x27;preferredquality&#x27;: &#x27;192&#x27;,&#xA;        }],&#xA;        &#x27;youtube_api_key&#x27;: &#x27;api&#x27;&#xA;    }&#xA;self.FFMPEG_OPTIONS = {&#xA;         &#x27;before_options&#x27;: &#x27;-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5&#x27;,&#xA;         &#x27;options&#x27;: &#x27;-vn&#x27;,&#xA;         &#x27;executable&#x27;:r&#x27;F:\DISCORD BOT\Ex\ffmpeg\bin\ffmpeg.exe&#x27;&#xA;         }&#xA;&#xA;    &#xA;    @commands.hybrid_command(&#xA;        name="play",&#xA;        aliases=["p"],&#xA;        usage="",&#xA;        description="KARAUKENAN.",&#xA;         &#xA;    )&#xA;    @app_commands.describe(&#xA;        judul_lagu="link ato judul lagunya"&#xA;    )&#xA;    async def play(self, ctx, judul_lagu:str):&#xA;        await ctx.defer()&#xA;        voice_channel = ctx.author.voice&#xA;        if not voice_channel or not voice_channel.channel:&#xA;            await ctx.send("Join voice channel dulu gblk!")&#xA;            return&#xA;&#xA;        voice_channel = voice_channel.channel&#xA;        song = self.search_song(judul_lagu)&#xA;        if not song:&#xA;            await ctx.send("Lagnya tdk ditemukan, coba keword lain.")&#xA;            return&#xA;&#xA;        if not self.bot.voice_clients:&#xA;            voice_client = await voice_channel.connect()&#xA;        else:&#xA;            voice_client = self.bot.voice_clients[0]&#xA;            if voice_client.channel != voice_channel:&#xA;                await voice_client.move_to(voice_channel)&#xA;&#xA;        self.music_queue.append([song, voice_client])&#xA;        if not self.is_playing:&#xA;            await self.play_music(ctx)&#xA;    &#xA;    async def play_music(self, ctx):&#xA;        self.is_playing = True&#xA;        while len(self.music_queue) > 0:&#xA;            song = self.music_queue[0][0]&#xA;            voice_client = self.music_queue[0][1]&#xA;            await ctx.send(f"Playing {song[&#x27;title&#x27;]}")&#xA;&#xA;            voice_client.play(discord.FFmpegPCMAudio(song[&#x27;source&#x27;], **self.FFMPEG_OPTIONS), after=lambda e: self.play_next())&#xA;            voice_client.is_playing()&#xA;&#xA;            while voice_client.is_playing():&#xA;                await asyncio.sleep(1)&#xA;&#xA;            self.music_queue.pop(0)&#xA;            self.is_playing = False&#xA;&#xA;        await ctx.send("Queue is empty.")&#xA;        voice_client.stop()&#xA;&#xA;    def play_next(self):&#xA;        if len(self.music_queue) > 0:&#xA;            self.is_playing = False&#xA;&#xA;    def search_song(self, judul_lagu):&#xA;        ydl = yt_dlp.YoutubeDL(self.YTDL_OPTIONS)&#xA;        with ydl:&#xA;            try:&#xA;                info = ydl.extract_info(f"ytsearch:{judul_lagu}", download=False)[&#x27;entries&#x27;][0]&#xA;                return {&#x27;source&#x27;: info[&#x27;formats&#x27;][0][&#x27;url&#x27;], &#x27;title&#x27;: info[&#x27;title&#x27;]}&#xA;            except Exception:&#xA;                return None&#xA;&#xA;&#xA;

    &#xA;

    when i use /play the bot sucess serch song but immediately terminate does not play any music

    &#xA;

    2023-04-10 13:06:45 INFO     discord.voice_client Connecting to voice...&#xA;2023-04-10 13:06:45 INFO     discord.voice_client Starting voice handshake... (connection attempt 1)&#xA;2023-04-10 13:06:46 INFO     discord.voice_client Voice handshake complete. Endpoint found singapore11075.discord.media&#xA;2023-04-10 13:06:50 INFO     discord.player ffmpeg process 15076 successfully terminated with return code of 1.&#xA;

    &#xA;

    this image whe i use /play

    &#xA;