Recherche avancée

Médias (0)

Mot : - Tags -/flash

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (78)

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

  • L’agrémenter visuellement

    10 avril 2011

    MediaSPIP est basé sur un système de thèmes et de squelettes. Les squelettes définissent le placement des informations dans la page, définissant un usage spécifique de la plateforme, et les thèmes l’habillage graphique général.
    Chacun peut proposer un nouveau thème graphique ou un squelette et le mettre à disposition de la communauté.

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

Sur d’autres sites (7679)

  • Next.js Youtube mp4 downloader downloads high quality video but muted

    4 avril 2023, par Stef-Lev

    I have created a next.js video downloader and I want to download videos of the highest quality. When I trigger the download I only get a muted mp4 file (in high quality) and a muted mp3 file. Here is the api file. How could I download the video, the audio and then merge them with ffmpeg correctly ?

    


    import ytdl from "ytdl-core";
import fs from "fs";
import { Server } from "socket.io";
import ffmpeg from "fluent-ffmpeg";

export default async function handler(req, res) {
  if (res.socket.server.io) {
    console.log("Socket is already running");
    res.end();
    return;
  }
  console.log("Socket is initializing");
  const io = new Server(res.socket.server);
  res.socket.server.io = io;

  io.on("connection", async (socket) => {
    console.log(socket.id, "socketID");

    const sendError = async (msg) => {
      socket.emit("showError", msg);
    };

    const sendProgress = async (msg) => {
      console.log(msg);
      socket.emit("showProgress", msg);
    };

    const sendComplete = async (msg) => {
      console.log(msg);
      socket.emit("showComplete", msg);
    };

    const downloadVideo = async (url) => {
      try {
        const videoInfo = await ytdl.getInfo(url);
        const outputPath = path.join(
          process.cwd(),
          "mp4s",
          `${videoInfo.videoDetails.title}.mp4`
        );
        const audioPath = path.join(
          process.cwd(),
          "mp4s",
          `${videoInfo.videoDetails.title}.mp3`
        );

        const videoFormat = ytdl.chooseFormat(videoInfo.formats, {
          quality: "highestvideo",
          filter: "videoonly",
        });
        const audioFormat = ytdl.chooseFormat(videoInfo.formats, {
          quality: "highestaudio",
          filter: "audioonly",
        });
        const videoStream = ytdl(url, { quality: videoFormat.itag });
        const audioStream = ytdl(url, { quality: audioFormat.itag });

        const videoOutput = fs.createWriteStream(outputPath);
        const audioOutput = fs.createWriteStream(audioPath);

        audioStream.pipe(audioOutput);
        videoStream.pipe(videoOutput);

        let downloadedBytes = 0;
        let totalBytes =
          videoFormat.contentLength || videoInfo.length_seconds * 1000000;

        videoOutput.on("data", (chunk) => {
          downloadedBytes += chunk.length;
          const progress = Math.round((downloadedBytes / totalBytes) * 100);
          sendProgress({ progress });
        });

        videoOutput.on("error", (err) => {
          console.error(err);
          sendError({
            status: "error",
            message: "An error occurred while writing the video file",
          });
        });

        audioOutput.on("error", (err) => {
          console.error(err);
          sendError({
            status: "error",
            message: "An error occurred while writing the audio file",
          });
        });

        videoOutput.on("finish", () => {
          audioOutput.on("finish", () => {
            if (fs.existsSync(outputPath) && fs.existsSync(audioPath)) {
              const outputFile = path.join(
                process.cwd(),
                "mp4s",
                `${videoInfo.videoDetails.title}-with-audio.mp4`
              );
              const command = ffmpeg()
                .input(outputPath)
                .input(audioPath)
                .outputOptions("-c:v copy")
                .outputOptions("-c:a aac")
                .outputOptions("-b:a 192k")
                .outputOptions("-strict -2")
                .output(outputFile)
                .on("end", () => {
                  fs.unlink(outputPath, () => {});
                  fs.unlink(audioPath, () => {});
                  sendComplete({
                    status: "success",
                  });
                })
                .on("error", (err) => {
                  console.error("ffmpeg error:", err.message);
                  sendError({
                    status: "error",
                    message:
                      "An error occurred while processing the audio and video files",
                  });
                });
              command.run();
            } else {
              console.error("Output or audio file not found");
              sendError({
                status: "error",
                message: "Output or audio file not found",
              });
            }
          });
        });
      } catch (error) {
        console.error(error);
        sendError({
          status: "error",
          message: "An error occurred while downloading the video",
        });
      }
    };
    socket.on("downloadVideo", downloadVideo);
  });
  res.end();
}


    


    I am also using socket.io to show the progress in the frontend, but for some reason I don't get the progress correctly. Is it possible to do that ?

    


  • How to prevent my users from installing ffmpeg themselves

    7 février 2018, par keys king

    I would like to develop a program for converting video formats based on the ffmpeg command line on mac. I should use c ++ or python. But now there is a problem that bothers me. I do not want my users to have to install the ffmpeg command themselves , before I use my program, so what should I do ? My question may be naive, I’m just a sophomore in college and I would be very grateful if you could help me.

    I should check whether there is ffmpeg in the program, and then use the command line to install it ? I hope my program can bring ffmpeg, rather than to install

    -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.

    Sorry, I did not say clearly. I hope my program can be the same as the normal mac program can be placed directly into the Application folder. And then you can open directly. I will use qt to draw the interface

  • Consume RTSP stream from users browser without converting on the server

    19 août 2018, par Kazanz

    I have thousands of IP cameras that need to be displayed to various users that are all outputing RTSP streams. Right now I have a server that uses ffpmeg to convert the stream to mpeg video that is then consumed and served over websockets via a node app.

    My problem is that these two processes take up a ridiculous amount of memory. About a half a GB for each camera.

    Is there any way to offload the conversion and reading of the stream to the client’s machine in their browser, or potentially out of it ?