Recherche avancée

Médias (29)

Mot : - Tags -/Musique

Autres articles (84)

  • Mediabox : ouvrir les images dans l’espace maximal pour l’utilisateur

    8 février 2011, par

    La visualisation des images est restreinte par la largeur accordée par le design du site (dépendant du thème utilisé). Elles sont donc visibles sous un format réduit. Afin de profiter de l’ensemble de la place disponible sur l’écran de l’utilisateur, il est possible d’ajouter une fonctionnalité d’affichage de l’image dans une boite multimedia apparaissant au dessus du reste du contenu.
    Pour ce faire il est nécessaire d’installer le plugin "Mediabox".
    Configuration de la boite multimédia
    Dès (...)

  • 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

  • D’autres logiciels intéressants

    12 avril 2011, par

    On ne revendique pas d’être les seuls à faire ce que l’on fait ... et on ne revendique surtout pas d’être les meilleurs non plus ... Ce que l’on fait, on essaie juste de le faire bien, et de mieux en mieux...
    La liste suivante correspond à des logiciels qui tendent peu ou prou à faire comme MediaSPIP ou que MediaSPIP tente peu ou prou à faire pareil, peu importe ...
    On ne les connais pas, on ne les a pas essayé, mais vous pouvez peut être y jeter un coup d’oeil.
    Videopress
    Site Internet : (...)

Sur d’autres sites (3480)

  • Video Editing using HTML, CSS and Javascript [closed]

    9 février 2018, par Shrujan Shetty

    I need to edit a video using HTML5 and Javascript only. No flash or ffmpeg. I need to add title boards, background audio, (transitions, bumpers), borders etc.

    I have tried popcorn.js but it uses CSS only and does not actually edit the video. I have even experimented with ffmpeg. FFmpeg gets the job done but takes a lot of time.

  • Ffmpeg compression cron cutting video to 1 second

    6 août 2022, par BlackThorn

    I have a cron setup to take locally uploaded videos, create a screengrab, compress the video and upload to online storage. I am using ffmpeg with php and have tried a few different ways but though it does compress the file size I keep getting a saved file of just the first second of the video. I tried delaying the process in case it just didn't have enough time to do the video and that was the cause but it didn't seem to do much. Here are some of the examples of the code I've tried all together (commented out as tried each but you can see the different ways) :

    


    try {
    // compress video if needed
    $bitrate = "5000k";
    // $command = "ffmpeg -i ".($temp_dir."/".$folder."/".$sub_file)." -b:v $bitrate -bufsize $bitrate ".$temp_dir."/".$folder."/edit-".$sub_file;
    // $command = "ffmpeg -i $temp_video -qscale 0 ".$temp_dir."/".$folder."/edit-".$sub_file;
    $command = "ffmpeg -i ".($temp_dir."/".$folder."/".$sub_file)." -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 ".$temp_dir."/".$folder."/edit-".$sub_file;
    //system($command);
    $output=null;
    $retval=null;
    exec($command, $output, $retval);
    $temp_video = $temp_dir."/".$folder."/edit-".$sub_file."";
} catch (Exception $e) {
    // log output
}


    


    Is there a known issue with this or something I'm missing ?

    


    Thanks

    


  • Cannot find a matching stream for unlabeled input pad 0 on filter Parsed_split_0

    26 mars 2023, par VenoM

    So I'm using ytdl-core & ffmpeg to convert some videos from YouTube to MP4 and then manipulate them in a way or take screenshots. But the issue I'm facing is - some videos are downloaded and are completely playable, but others are corrupt.

    


    This is the error I get when I try to take screenshot of the corrupted video :

    


    


    Error : ffmpeg exited with code 1 : Cannot find a matching stream for unlabeled input pad 0 on filter Parsed_split_0

    


    


    And obviously, error is there because the video is corrupted, but WHY is that the case ?

    


    Here's my code (read TL ;DR below) :

    


      router.post("/screenshot", async (req, res) => {
  const urlToScreenshot = req.body.url;
  const timestamp = parseInt(req.body.t, 10);
  const YouTubeURL = `https://youtube.com/watch?v=${urlToScreenshot}`;
  const filename = uuidv4();

  const videoPath = `${filePath}/${filename}.mp4`;

  const downloadStartTime = timestamp - 3;
  const downloadEndTime = timestamp + 3;

  const videoStream = ytdl(YouTubeURL, {
    quality: "highest",
  });

  const ffmpegCommand = ffmpeg(videoStream)
    .setStartTime(downloadStartTime)
    .duration(downloadEndTime - downloadStartTime)
    .outputOptions("-c:v", "libx264")
    .outputOptions("-c:a", "copy")
    .outputOptions("-b:v", "10M")
    .outputOptions("-filter:v", "scale=1920:1080")
    .outputOptions("-q:v", "1")
    .outputOptions("-reconnect", "1") // enable reconnection attempts
    .outputOptions("-ignore_io_errors", "1") // ignore input/output errors
    .on("end", async () => {
      console.log("Video downloaded successfully: " + videoPath);

      const screenshotPath = `${filePath}/${filename}.png`;
      ffmpeg(videoPath)
        .screenshots({
          count: 1,
          timemarks: ["1"],
          folder: filePath,
          filename: `${filename}.png`,
        })
        .on("end", async () => {
          console.log(`Screenshot saved successfully: ${screenshotPath}`);
          try {
            const cloudinaryResult = await cloudinary.uploader.upload(
              screenshotPath
            );
            const screenshotUrl = cloudinaryResult.secure_url;
            console.log(`Screenshot uploaded to Cloudinary: ${screenshotUrl}`);
            // await unlink(videoPath);
            console.log(`Video file deleted: ${videoPath}`);
            // await unlink(screenshotPath);
            console.log(`Screenshot file deleted: ${screenshotPath}`);
            res.status(200).json({ screenshotUrl });
          } catch (err) {
            console.error(
              "An error occurred while uploading the screenshot to Cloudinary:",
              err
            );
            // await unlink(videoPath);
            // await unlink(screenshotPath);
            res.status(500).send("Internal Server Error");
          }
        })
        .on("error", async (err) => {
          console.error("An error occurred while taking the screenshot:", err);
          // await unlink(videoPath);
          // await unlink(screenshotPath);
          res.status(500).send("Internal Server Error");
        });
    })
    .on("error", async (err) => {
      console.error("An error occurred while downloading the video:", err);
      await unlink(videoPath); // delete the file on error
      res.status(500).send("Internal Server Error");
    })
    .save(videoPath);

  // console.log(ffmpegCommand);
});


    


    Code Summary : Basically I'm passing the videoID and timestamp (because I want to download a certain section of the video, not the whole video), it downloads the video, then takes a screenshot of the video at a certain timestamp (i.e 1st second) and sends the screenshot to Cloudinary (a cloud file storage).

    


    This works fine for 50% of the videos I've tried, but doesn't for other videos.

    


    Here's a picture of a corrupt video and a working video.

    


    enter image description here

    


    Working Video

    


    Corrupt Video

    


    Some help would be greatly appreciated !