Recherche avancée

Médias (91)

Autres articles (44)

  • Gestion générale des documents

    13 mai 2011, par

    MédiaSPIP ne modifie jamais le document original mis en ligne.
    Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
    Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)

  • Initialisation de MediaSPIP (préconfiguration)

    20 février 2010, par

    Lors de l’installation de MediaSPIP, celui-ci est préconfiguré pour les usages les plus fréquents.
    Cette préconfiguration est réalisée par un plugin activé par défaut et non désactivable appelé MediaSPIP Init.
    Ce plugin sert à préconfigurer de manière correcte chaque instance de MediaSPIP. Il doit donc être placé dans le dossier plugins-dist/ du site ou de la ferme pour être installé par défaut avant de pouvoir utiliser le site.
    Dans un premier temps il active ou désactive des options de SPIP qui ne le (...)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

Sur d’autres sites (6780)

  • failed to set frame number in opencv in cpp

    28 février 2018, par Madhu Nadendla

    I am trying to set frame position of opened videofile using OpenCV in C++ but it returns 0.

    solution 1

    bool success = capture.set(CV_CAP_PROP_POS_FRAMES, noFrame);

    double frameRate = capture.get(CV_CAP_PROP_FPS);
  • Ffmpeg output stream closed

    29 novembre 2023, par excalibur

    There is one problem in my code that uses ffmpeg to convert webm videos to mp4 and set duration to 10 seconds, it works well but, sometimes returns "output Stream closed" error. What can be a reason of this problem, and how can i solve it ?

    


    My code :

    


    async convertWebmVideoToMp4(buffer: any) {
    try {
        return new Promise((resolve, reject) => {
            const videoMp4Buffer = Buffer.from(buffer);

            const readable = Readable.from(videoMp4Buffer);

            const outputBuffer = [];

            const outputStream = new Writable({
                write(chunk, encoding, callback) {
                    outputBuffer.push(chunk);
                    callback();
                },
            });

            const ffmpegProcess = ffmpeg()
                .input(readable)
                .outputFormat('mp4')
                .videoCodec('libx264')
                .audioCodec('aac')
                .duration(10)
                .outputOptions([
                    '-movflags frag_keyframe+empty_moov',
                    '-preset ultrafast',
                    '-c:a aac',
                    '-r 30',
                    '-tune fastdecode',
                ])
                .on('end', () => {
                    outputStream.end();
                    const finalOutputBuffer = Buffer.concat(outputBuffer);
                    resolve(finalOutputBuffer);
                })
                .on('error', (err, stdout, stderr) => {
                    console.error(err);
                    reject(err);
                });

            outputStream.on('error', err => {
                this.logger.error(err);
            });

            ffmpegProcess.pipe(outputStream, { end: true });
        });
    } catch (error) {
        throw error;
    }
}


    


    My code should return the buffer of video that type is mp4 and length is 10 seconds, but it returns "output stream closed" error.

    


  • How to stop perl buffering ffmpeg output

    4 février 2017, par Sebastian King

    I am trying to have a Perl program process the output of an ffmpeg encode, however my test program only seems to receive the output of ffmpeg in periodic chunks, thus I am assuming there is some sort of buffering going on. How can I make it process it in real-time ?

    My test program (the tr command is there because I thought maybe ffmpeg’s carriage returns were causing perl to see one big long line or something) :

    #!/usr/bin/perl

    $i = "test.mkv"; # big file, long encode time
    $o = "test.mp4";

    open(F, "-|", "ffmpeg -y -i '$i' '$o' 2>&1 | tr '\r' '\n'")
           or die "oh no";

    while(<f>) {
           print "A12345: $_"; # some random text so i know the output was processed in perl
    }
    </f>

    Everything works fine when I replace the ffmpeg command with this script :

    #!/bin/bash

    echo "hello";

    for i in `seq 1 10`; do
           sleep 1;
           echo "hello $i";
    done

    echo "bye";

    When using the above script I see the output each second as it happens. With ffmpeg it is some 5-10 seconds or so until it outputs and will output sometimes 100 lines each output.

    I have tried using the program unbuffer ahead of ffmpeg in the command call but it seems to have no effect. Is it perhaps the 2>&amp;1 that might be buffering ?
    Any help is much appreciated.

    If you are unfamiliar with ffmpeg’s output, it outputs a bunch of file information and stuff to STDOUT and then during encoding it outputs lines like

    frame=  332 fps= 93 q=28.0 size=     528kB time=00:00:13.33 bitrate= 324.2kbits/s speed=3.75x

    which begin with carriage returns instead of new lines (hence tr) on STDERR (hence 2>&amp;1).