
Recherche avancée
Médias (1)
-
The Great Big Beautiful Tomorrow
28 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Texte
Autres articles (28)
-
Librairies et binaires spécifiques au traitement vidéo et sonore
31 janvier 2010, parLes 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 2011MediaSPIP 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, parLe 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. ManukyanI am trying to stream a video using
createReadStream
and usingpipe(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 jd20I’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: 767The 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: 6674So, 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 jd20I’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: 767The 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: 6674So, 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.