Recherche avancée

Médias (91)

Autres articles (50)

  • Installation en mode ferme

    4 février 2011, par

    Le mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
    C’est la méthode que nous utilisons sur cette même plateforme.
    L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
    Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...)

  • 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 (...)

  • Configuration spécifique d’Apache

    4 février 2011, par

    Modules spécifiques
    Pour la configuration d’Apache, il est conseillé d’activer certains modules non spécifiques à MediaSPIP, mais permettant d’améliorer les performances : mod_deflate et mod_headers pour compresser automatiquement via Apache les pages. Cf ce tutoriel ; mode_expires pour gérer correctement l’expiration des hits. Cf ce tutoriel ;
    Il est également conseillé d’ajouter la prise en charge par apache du mime-type pour les fichiers WebM comme indiqué dans ce tutoriel.
    Création d’un (...)

Sur d’autres sites (8936)

  • poor resolution in video out put from ffmpeg

    27 janvier 2019, par Clinton Winant

    I make animation of png or jpg frames output from a fluid flow simulation code. An example image looks like :
    Pairing Vortices - png file

    The ffmpeg command I use is

    ffmpeg  -f image2 -r 20 -i img%04d.png -vcodec mpeg4 animate.avi

    The resulting video is very poor as can be seen in the screen capture of a single frame of the output file animate.avi :

    screenshot of single frame of ffmpeg produce file animate.avi

    There are elongated shaded areas on either side of the yellow streaks, and the ffmpeg produced frame is much grainier than the original .png.

    I understand that there has to be massive compression in the production of the video, and I assume the problem lies there, where the compression id poor for the kind of images I am trying to animate. How could I use ffmpeg to produce a video with quality comparable to the original images I have ?

    PS I am using Debian Buster, the png images have a resolution of 100 dpi.

  • Promise chaining and resolution

    23 janvier 2019, par Shourya Sharma

    I am trying to convert videos one by one with the help of promises. i am using ffmpeg for conversion and multer for uploading multiple files.

    multer uploads multiple files at once after which i have to chain the conversions one by one. as of now it just converts the 1st file.

    i thought chaining of promises ..like in an array should work but i am confused if i can define new promises in an array as ffmpeg also returns a promise

    My router :

    const router = require('express').Router();
    const multer = require('multer');
    const ffmpeg = require('ffmpeg');

    let str;
    const storage = multer.diskStorage({
     destination: (req, file, cb) => {
       cb(null, './uploads');
     },
     filename: (req, file, cb) => {
       str = file.originalname.replace(/\.[^/.]+$/, "");
       str = str.replace(/[^a-z0-9+]+/gi, '_') + '.' + file.originalname.replace(/^.*\./, '');
       cb(null, str);
     }
    });

    const upload = multer({ storage: storage }).array('files', 12);

    router.post('/upload', (req, res, next) => {
     // req.files is an array of files
     // req.body will contain the text fields, if there were any
     function uploadFile() {
       return new Promise((resolve, reject) => {
         upload(req, res, (err) => {
           if (err) {
             res.send(err) // Pass errors to Express.
             reject(`Error: Something went wrong!`);
           } else if (req.files == undefined) {
             res.send(`No File selected.`);
             resolve();
           } else if (!err && req.files.length > 0) {
             res.status(201).send(`${req.files.length} File(s): ${req.files} uploaded successfully.`);
             console.log('uploaded');
             resolve();
           }
         });
       });
     }

     uploadFile().then(() => {
       try {
         var process = new ffmpeg('./uploads/' + str);
         process.then(function (video) {
           console.log('The video is ready to be processed');
           video.addCommand('-hide_banner', '');
           video.addCommand('-y', '');
           video.addCommand('-c:a', 'aac');
           video.addCommand('-ar', '48000');
           video.addCommand('-c:v', 'h264');
           video.addCommand('-profile:v', 'main');
           video.addCommand('-crf', '20');
           video.addCommand('-sc_threshold', '0');
           video.addCommand('-g', '50');
           video.addCommand('-keyint_min', '50');
           video.addCommand('-hls_time', '4');
           video.addCommand('-hls_playlist_type', 'vod');
           video.addCommand('-vf', 'scale=-2:720');
           video.addCommand('-b:v', '1400k');
           video.addCommand('-maxrate', '1498k');
           video.addCommand('-bufsize', '2100k');
           video.addCommand('-b:a', '128k');
           video.save('./converted/' + str, function (error, file) {
             if (!error)
               console.log('Video file: ' + file);
           });
           }, function (err) {
             console.log('Error: ' + err);
           });
       } catch (e) {
         console.log(e.code);
         console.log(e.msg);
       }
     }).catch((err) => {
       console.log(Error, err);
     });
    });

    module.exports = router;
  • Dynamic video resolution

    4 janvier 2019, par Chen Yang

    I use ffmpeg to encode my mobile phone’s screenshot to a video. when my phone is vertical the screenshot’s resolution is 478 * 850.When horizontal the resolution is 850 * 478. Encoder could handle these image to encoded video frame, and i could play this video by ffplay correctly, i means if resolution change from 478 * 850 => 850 * 478 and it still could display full phone screen. enter image description here enter image description here
    But if i play this video with any other players, it only could play harf of phone screen when frame resolution change from 478 * 850 => 850 => 478.
    enter image description here
    Do you guys know any video format could handle this situation?