Recherche avancée

Médias (0)

Mot : - Tags -/objet éditorial

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

Autres articles (64)

  • Encodage et transformation en formats lisibles sur Internet

    10 avril 2011

    MediaSPIP transforme et ré-encode les documents mis en ligne afin de les rendre lisibles sur Internet et automatiquement utilisables sans intervention du créateur de contenu.
    Les vidéos sont automatiquement encodées dans les formats supportés par HTML5 : MP4, Ogv et WebM. La version "MP4" est également utilisée pour le lecteur flash de secours nécessaire aux anciens navigateurs.
    Les documents audios sont également ré-encodés dans les deux formats utilisables par HTML5 :MP3 et Ogg. La version "MP3" (...)

  • Submit bugs and patches

    13 avril 2011

    Unfortunately a software is never perfect.
    If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
    If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
    You may also (...)

  • 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

Sur d’autres sites (10571)

  • High Definition Compatible Digital (HDCD) decoder filter, using libhdcd

    26 août 2016, par Burt P
    High Definition Compatible Digital (HDCD) decoder filter, using libhdcd
    

    Signed-off-by : Burt P <pburt0@gmail.com>
    Signed-off-by : Diego Biurrun <diego@biurrun.de>
    Signed-off-by : Luca Barbato <lu_zero@gentoo.org>

    • [DBH] Changelog
    • [DBH] configure
    • [DBH] doc/filters.texi
    • [DBH] doc/general.texi
    • [DBH] libavfilter/Makefile
    • [DBH] libavfilter/af_hdcd.c
    • [DBH] libavfilter/allfilters.c
    • [DBH] libavfilter/version.h
  • Downloader downloads high quality video but muted

    5 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 ?

    &#xA;

    import ytdl from "ytdl-core";&#xA;import fs from "fs";&#xA;import { Server } from "socket.io";&#xA;import ffmpeg from "fluent-ffmpeg";&#xA;&#xA;export default async function handler(req, res) {&#xA;  if (res.socket.server.io) {&#xA;    console.log("Socket is already running");&#xA;    res.end();&#xA;    return;&#xA;  }&#xA;  console.log("Socket is initializing");&#xA;  const io = new Server(res.socket.server);&#xA;  res.socket.server.io = io;&#xA;&#xA;  io.on("connection", async (socket) => {&#xA;    console.log(socket.id, "socketID");&#xA;&#xA;    const sendError = async (msg) => {&#xA;      socket.emit("showError", msg);&#xA;    };&#xA;&#xA;    const sendProgress = async (msg) => {&#xA;      console.log(msg);&#xA;      socket.emit("showProgress", msg);&#xA;    };&#xA;&#xA;    const sendComplete = async (msg) => {&#xA;      console.log(msg);&#xA;      socket.emit("showComplete", msg);&#xA;    };&#xA;&#xA;    const downloadVideo = async (url) => {&#xA;      try {&#xA;        const videoInfo = await ytdl.getInfo(url);&#xA;        const outputPath = path.join(&#xA;          process.cwd(),&#xA;          "mp4s",&#xA;          `${videoInfo.videoDetails.title}.mp4`&#xA;        );&#xA;        const audioPath = path.join(&#xA;          process.cwd(),&#xA;          "mp4s",&#xA;          `${videoInfo.videoDetails.title}.mp3`&#xA;        );&#xA;&#xA;        const videoFormat = ytdl.chooseFormat(videoInfo.formats, {&#xA;          quality: "highestvideo",&#xA;          filter: "videoonly",&#xA;        });&#xA;        const audioFormat = ytdl.chooseFormat(videoInfo.formats, {&#xA;          quality: "highestaudio",&#xA;          filter: "audioonly",&#xA;        });&#xA;        const videoStream = ytdl(url, { quality: videoFormat.itag });&#xA;        const audioStream = ytdl(url, { quality: audioFormat.itag });&#xA;&#xA;        const videoOutput = fs.createWriteStream(outputPath);&#xA;        const audioOutput = fs.createWriteStream(audioPath);&#xA;&#xA;        audioStream.pipe(audioOutput);&#xA;        videoStream.pipe(videoOutput);&#xA;&#xA;        let downloadedBytes = 0;&#xA;        let totalBytes =&#xA;          videoFormat.contentLength || videoInfo.length_seconds * 1000000;&#xA;&#xA;        videoOutput.on("data", (chunk) => {&#xA;          downloadedBytes &#x2B;= chunk.length;&#xA;          const progress = Math.round((downloadedBytes / totalBytes) * 100);&#xA;          sendProgress({ progress });&#xA;        });&#xA;&#xA;        videoOutput.on("error", (err) => {&#xA;          console.error(err);&#xA;          sendError({&#xA;            status: "error",&#xA;            message: "An error occurred while writing the video file",&#xA;          });&#xA;        });&#xA;&#xA;        audioOutput.on("error", (err) => {&#xA;          console.error(err);&#xA;          sendError({&#xA;            status: "error",&#xA;            message: "An error occurred while writing the audio file",&#xA;          });&#xA;        });&#xA;&#xA;        videoOutput.on("finish", () => {&#xA;          audioOutput.on("finish", () => {&#xA;            if (fs.existsSync(outputPath) &amp;&amp; fs.existsSync(audioPath)) {&#xA;              const outputFile = path.join(&#xA;                process.cwd(),&#xA;                "mp4s",&#xA;                `${videoInfo.videoDetails.title}-with-audio.mp4`&#xA;              );&#xA;              const command = ffmpeg()&#xA;                .input(outputPath)&#xA;                .input(audioPath)&#xA;                .outputOptions("-c:v copy")&#xA;                .outputOptions("-c:a aac")&#xA;                .outputOptions("-b:a 192k")&#xA;                .outputOptions("-strict -2")&#xA;                .output(outputFile)&#xA;                .on("end", () => {&#xA;                  fs.unlink(outputPath, () => {});&#xA;                  fs.unlink(audioPath, () => {});&#xA;                  sendComplete({&#xA;                    status: "success",&#xA;                  });&#xA;                })&#xA;                .on("error", (err) => {&#xA;                  console.error("ffmpeg error:", err.message);&#xA;                  sendError({&#xA;                    status: "error",&#xA;                    message:&#xA;                      "An error occurred while processing the audio and video files",&#xA;                  });&#xA;                });&#xA;              command.run();&#xA;            } else {&#xA;              console.error("Output or audio file not found");&#xA;              sendError({&#xA;                status: "error",&#xA;                message: "Output or audio file not found",&#xA;              });&#xA;            }&#xA;          });&#xA;        });&#xA;      } catch (error) {&#xA;        console.error(error);&#xA;        sendError({&#xA;          status: "error",&#xA;          message: "An error occurred while downloading the video",&#xA;        });&#xA;      }&#xA;    };&#xA;    socket.on("downloadVideo", downloadVideo);&#xA;  });&#xA;  res.end();&#xA;}&#xA;

    &#xA;

    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 ?

    &#xA;

  • ffmpeg send video to ffserver without reencode, CPU usage still very high.How ?

    3 septembre 2019, par Wayne Chen

    I’m using ffmpeg to send H.264 video to ffserver. Command looks like this :

    ffmpeg -re -stream_loop -1 -i test.mp4 -c copy http://localhost:8090/feed1.ffm

    I thought with -c copy option, the CPU usage of ffmpeg should be very low, but it actually used 99% of CPU.Please help cutdown the usage of CPU.
    Thanks

    ----------------------

    ffserver.conf :

    <feed>
    File /tmp/feed1.ffm
    FileMaxSize 5M
    ACL allow 127.0.0.1
    ACL allow 192.168.1.250
    </feed>

    <stream>
    Feed feed1.ffm
    Format rtp
    VideoCodec libx264
    VideoFrameRate 25
    VideoBufferSize 80000
    VideoSize 1920x1080
    PreRoll 15
    NoDefaults
    NoAudio
    </stream>

    ffserver log:

    ffserver -d -f /etc/ffserver.conf
    ffserver version 3.3.9 Copyright (c) 2000-2018 the FFmpeg developers
     built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.11) 20160609
     configuration: --enable-gpl --enable-nonfree --enable-pthreads --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-version3 --enable-ffplay --enable-ffserver --enable-shared
     libavutil      55. 58.100 / 55. 58.100
     libavcodec     57. 89.100 / 57. 89.100
     libavformat    57. 71.100 / 57. 71.100
     libavdevice    57.  6.100 / 57.  6.100
     libavfilter     6. 82.100 /  6. 82.100
     libswscale      4.  6.100 /  4.  6.100
     libswresample   2.  7.100 /  2.  7.100
     libpostproc    54.  5.100 / 54.  5.100
    Tue Sep  3 09:45:38 2019 Codecs do not match for stream 0
    Tue Sep  3 09:45:38 2019 [ffm @ 0x1072d80]Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    Tue Sep  3 09:45:38 2019 Codecs do not match for stream 0
    Tue Sep  3 09:45:38 2019 [ffm @ 0x10695e0]Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
    Tue Sep  3 09:45:38 2019 FFserver started.
    Tue Sep  3 09:45:39 2019 192.168.1.240 - - [] " " 200 0
    Tue Sep  3 09:45:39 2019 192.168.1.240 - - [] " " 200 0
    Tue Sep  3 09:45:39 2019 192.168.1.240:0 - - "PLAY test2-rtsp/streamid=0 RTP/TCP"
    Tue Sep  3 09:45:39 2019 192.168.1.240:0 - - "PLAY test1-rtsp/streamid=0 RTP/TCP"
    Tue Sep  3 09:45:39 2019 192.168.1.240:0 - - "PLAY test2-rtsp/streamid=0 RTP/TCP"
    Tue Sep  3 09:45:39 2019 192.168.1.240:0 - - "PLAY test1-rtsp/streamid=0 RTP/TCP"

    FFmpeg log:

    wayne@ubuntu:~$ ffmpeg -re -stream_loop -1 -i test_main.mp4 -c copy http://localhost:8090/feed1.ffm &amp; ffmpeg -re -stream_loop -1 -i test_minor.mp4
    4 -c copy http://localsudffmpeg -re -stream_loop -1 -i test_main.mp4 -c copy http://localhost:8090/feed1.ffm &amp; ffmpm
    ffmpeg version 3.3.9 Copyright (c) 2000-2018 the FFmpeg developers
     built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.11) 20160609
     configuration: --enable-gpl --enable-nonfree --enable-pthreads --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-version3 --enable-ffplay --enable-ffserver --enable-shared
     libavutil      55. 58.100 / 55. 58.100
     libavcodec     57. 89.100 / 57. 89.100
     libavformat    57. 71.100 / 57. 71.100
     libavdevice    57.  6.100 / 57.  6.100
     libavfilter     6. 82.100 /  6. 82.100
     libswscale      4.  6.100 /  4.  6.100
     libswresample   2.  7.100 /  2.  7.100
     libpostproc    54.  5.100 / 54.  5.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test_main.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       encoder         : Lavf56.40.101
     Duration: 00:00:51.60, start: 0.000000, bitrate: 987 kb/s
       Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 985 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
       Metadata:
         handler_name    : VideoHandler
    [tcp @ 0x19ca600] Connection to tcp://localhost:8090 failed (Connection refused), trying next address
    [tcp @ 0x19d58a0] Connection to tcp://localhost:8090 failed (Connection refused), trying next address
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
    Press [q] to stop, [?] for help
    [libx264 @ 0x19d67c0] VBV bufsize set but maxrate unspecified, ignored
    [libx264 @ 0x19d67c0] using SAR=1/1
    [libx264 @ 0x19d67c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x19d67c0] profile Progressive High, level 4.0, 4:2:0, 8-bit
    Output #0, ffm, to 'http://localhost:8090/feed1.ffm':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       creation_time   : now
       encoder         : Lavf57.71.100
       Stream #0:0(eng): Video: h264 (libx264), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 1000k tbn, 25 tbc (default)
       Metadata:
         handler_name    : VideoHandler
         encoder         : Lavc57.89.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 655360000 vbv_delay: -1
    frame=   13 fps=0.0 q=0.0 size=       4kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   26 fps= 26 q=0.0 size=       4kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   38 fps= 25 q=0.0 size=       4kB time=00:00:00.00 bitrate=N/A speed=   0x    
    frame=   43 fps= 18 q=28.0 size=       4kB time=-00:00:00.03 bitrate=N/A speed=N/A    
    frame=   55 fps= 19 q=28.0 size=      16kB time=00:00:00.44 bitrate= 297.9kbits/s speed=0.151x    
    frame=   59 fps= 17 q=28.0 size=      44kB time=00:00:00.60 bitrate= 600.7kbits/s speed=0.171x