Recherche avancée

Médias (1)

Mot : - Tags -/epub

Autres articles (28)

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

Sur d’autres sites (1989)

  • How can I get the final size after transcripting a video to stream it with fluent-ffmpeg ?

    5 avril 2018, par G. Manukyan

    I am trying to stream a video using createReadStream and using pipe(res) in node.js and it works fine if the file doesn’t need transcoding (mp4, webm).

    With mkv files I am using fluent-ffmpeg to transcode it on the fly, but the problem is that I can’t go back and forward in the html video player.

    download = function(file, req, res) {  

       const range = req.headers.range
       const parts = range.replace(/bytes=/, "").split("-")

       const start = parseInt(parts[0], 10);
       const end = parts[1] ? parseInt(parts[1], 10) : file.length - 1

       res.setHeader('Content-Type', 'video/webm')
       res.setHeader('Accept-Ranges', 'bytes');
       res.setHeader('Content-Length', 1 + end - start);
       res.setHeader('Content-Range', `bytes ${start}-${end}/${file.length}`);
       res.statusCode = 206;

       var stream = file.createReadStream({start, end})

       ffmpeg(stream)
       .videoCodec('libvpx')
       .audioCodec('libvorbis')
       .videoBitrate('512k')
       .format('webm')
       .on('start', () => {
           console.log('transcoding...')
       })
       .on('error', (err, stdout, stderr) => {
           console.log(err.message, err, stderr);
       })
       .on('progress', function(progress) {
           console.log(progress);
       })
       .on('end', function(filenames) {
           console.log("Finished transcoding.");          
       })
       .pipe(res);

    }

    I think that comes from the fact that we don’t know in advance the size of the final transcoded file so the range we send in the headers is wrong and somehow make the video player "limited".

    What can be a workaround to this problem ?

  • When compressing a set of images with libx264, why does frame rate affect final output size ?

    3 avril 2018, par jd20

    I’m using ffmpeg to encode a set of images as a short timelapse video, using libx264 codec. My first attempt, I encoded it at 30 FPS, using :

    ffmpeg -r 30 -pattern_type glob -i "*.jpg" -vcodec libx264 -crf 30 -pix_fmt yuv420p output.mp4

    With 60 frames, that gives me a 163 KB file that’s 2 seconds long. Then I realized I needed it to be slower, so I re-ran the same command, but changed -r to 2. Now I have a file that’s 30 seconds long, but the size jumped to 891 KB ! The video quality looks perceptually the same.

    How do I encode at a slower frame rate, without the final file size ballooning ?


    Notes : Some theories I had, and things I checked. First, to make sure ffmpeg wasn’t duplicating frames in the longer verison, I check the I/P/B counts. The 30 FPS file had :

    [libx264 @ 0x7f9b26001c00] frame I:1     Avg QP:30.67  size: 44649
    [libx264 @ 0x7f9b26001c00] frame P:15    Avg QP:31.19  size:  5471
    [libx264 @ 0x7f9b26001c00] frame B:44    Avg QP:31.45  size:   767

    The 2 FPS file had :

    [libx264 @ 0x7fcd32842200] frame I:1     Avg QP:21.29  size: 90138
    [libx264 @ 0x7fcd32842200] frame P:15    Avg QP:22.48  size: 33686
    [libx264 @ 0x7fcd32842200] frame B:44    Avg QP:26.29  size:  6674

    So, the I/P/B counts are identical, but the QP is much lower for the 2 FPS file. To offset, I tried increasing -crf for the 2 FPS file, to get about the same target size, but that just gave me a very blurry video (had to go to crf=40). I tried messing with -minrate, -maxrate, -bt, none helped. I’m guessing there is some x264 codec setting which is frame rate dependent, but I’m at a loss trying to figure out which one (from what I understand, constant bitrate is affected by frame rate but CRF should not be, but maybe I’m misunderstanding it.

  • When compressing a set of images with libx264, why does frame rate affect final output size ?

    3 avril 2018, par jd20

    I’m using ffmpeg to encode a set of images as a short timelapse video, using libx264 codec. My first attempt, I encoded it at 30 FPS, using :

    ffmpeg -r 30 -pattern_type glob -i "*.jpg" -vcodec libx264 -crf 30 -pix_fmt yuv420p output.mp4

    With 60 frames, that gives me a 163 KB file that’s 2 seconds long. Then I realized I needed it to be slower, so I re-ran the same command, but changed -r to 2. Now I have a file that’s 30 seconds long, but the size jumped to 891 KB ! The video quality looks perceptually the same.

    How do I encode at a slower frame rate, without the final file size ballooning ?


    Notes : Some theories I had, and things I checked. First, to make sure ffmpeg wasn’t duplicating frames in the longer verison, I check the I/P/B counts. The 30 FPS file had :

    [libx264 @ 0x7f9b26001c00] frame I:1     Avg QP:30.67  size: 44649
    [libx264 @ 0x7f9b26001c00] frame P:15    Avg QP:31.19  size:  5471
    [libx264 @ 0x7f9b26001c00] frame B:44    Avg QP:31.45  size:   767

    The 2 FPS file had :

    [libx264 @ 0x7fcd32842200] frame I:1     Avg QP:21.29  size: 90138
    [libx264 @ 0x7fcd32842200] frame P:15    Avg QP:22.48  size: 33686
    [libx264 @ 0x7fcd32842200] frame B:44    Avg QP:26.29  size:  6674

    So, the I/P/B counts are identical, but the QP is much lower for the 2 FPS file. To offset, I tried increasing -crf for the 2 FPS file, to get about the same target size, but that just gave me a very blurry video (had to go to crf=40). I tried messing with -minrate, -maxrate, -bt, none helped. I’m guessing there is some x264 codec setting which is frame rate dependent, but I’m at a loss trying to figure out which one (from what I understand, constant bitrate is affected by frame rate but CRF should not be, but maybe I’m misunderstanding it.