Recherche avancée

Médias (1)

Mot : - Tags -/artwork

Autres articles (65)

  • Ajouter notes et légendes aux images

    7 février 2011, par

    Pour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
    Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
    Modification lors de l’ajout d’un média
    Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Contribute to documentation

    13 avril 2011

    Documentation is vital to the development of improved technical capabilities.
    MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
    To contribute, register to the project users’ mailing (...)

Sur d’autres sites (9202)

  • Video concatenation with ffmpeg and Java [closed]

    24 avril 2024, par Marco Antonio Manjarrez Fernan

    I have this code that automatically makes a couple of videos using ffmpeg. The result is 2 or 3 .mp4 files that consist of an audio and a still image. I want to concatenate these files automatically by using ffmpeg concat demuxer, but when the concatenation finishes the videos do concatenate, but the images are hyperimposed on top of one another. So instead of having 12 seconds of a cat image and 10 seconds of a skyscraper, I get 22 seconds of a cat image, and when I skip forward in the video the image changes to the skyscraper and doesnt change back.

    


    Every single tutorial I see has the same command work in the intended way, and trying it directly in the command line does not help either. Since all the images are made automatically, they have the same codec, and I also keep their aspect ratios the same.

    


    I tried using this function on Java, which like I said, does concatenate the videos, but by "prioritizing" one of the images. The audios retain their length and are placed in order, which in my opinion makes the issue even weirder

    


     public static void concatenateVideos(){
        String[] listCommand = {
                "cmd", "/c", "(for", "%i", "in", "(C:\\myPath*.mp4)", "do", "@echo", "file", "'%i')", ">", "C:\\myPath\\list.txt"
        };
        commandLine(listCommand);

        String[] ffmpegCommand = {"ffmpeg", "-safe", "0", "-f", "concat", "-i", "C:\\myPath\\list.txt", "-c", "copy", "C:\\myPath\\openAIVideo.mp4"};
        commandLine(ffmpegCommand);
   }   


    


  • Discord audio playing issue

    24 avril 2022, par ItsNaif.

    Explanation

    


    I have this code that plays youtube video audio in voice channels.

    


    When it joins the channel I get an error that says "ffmpeg not found". I ran the terminal command "npm i ffmpeg-static" and it worked fine but after a couple of minutes I get a long error and the music stops playing.

    


    This is my code :

    


    client.on("ready", async () => {

  for (const channelId of Channels) {
    joinChannel(channelId);

    await new Promise(res => setTimeout(()=>res(2), 500))
  }
  
  function joinChannel(channelId) {
    client.channels.fetch(channelId).then(channel => {

      const VoiceConnection = joinVoiceChannel({
        channelId: channel.id,
        guildId: channel.guild.id,
        adapterCreator: channel.guild.voiceAdapterCreator
      });
      const resource = createAudioResource(ytdl("https://youtu.be/0J2gdL87fVs", {
          filter: "audioonly"
      }), {
        inlineVolume: true
      });
      resource.volume.setVolume(0.2);
      const player = createAudioPlayer()
      VoiceConnection.subscribe(player);
      player.play(resource);
      player.on("idle", () => {
        try {
          player.stop()
        }catch (e) {}
        try {
          VoiceConnection.destory()
        }catch (e) {}
        joinChannel(channelId)
      })
    }).catch(console.error)
  }
})


    


  • Converting MSB padding to LSB padding

    23 novembre 2020, par Oier Lauzirika Zarrabeitia

    I am using FFmpeg and Vulkan for a video related project. The problem is that FFmpeg uses MSB padding for the 9, 10 and 12bit formats, whilst Vulkan accepts LSB padded pixel formats.

    


    I am using the following code to convert from one another, but the performance is terrible (1 second per frame), which cannot be accepted for video playback.

    


    if(paddingBits > 0) {
    //As padding bits are set to 0, using CPU words for the shifting should not affect the result
    assert(dstBuffers[plane].size() % sizeof(size_t) == 0);
    for(size_t i = 0; i < dstBuffers[plane].size(); i += sizeof(size_t)) {
        reinterpret_cast(dstBuffers[plane][i]) <<= paddingBits;
    }
}


    


    Note that this code will be executed 1-4 times per frame (once per plane) and dstBuffers[plane].size() will be in the order of a couple of MegaBytes. dstBuffers[plane]'s data has an alignment greater than size_t's, so I am not performing unaligned read/writes. Using a smaller type such as uint16_t makes it perform worse.

    


    My question is if there is any standard function (or inside the FFmpeg library) which implements the same behavior in a fancy way so that the performance is not a concern. If not, is there a more efficient way to implement it ?

    


    Edit :dstBuffers[plane] stores std::byte-s and although is not of type std::vector, (it is a custom class) it is contiguous.