
Recherche avancée
Médias (2)
-
Core Media Video
4 avril 2013, par
Mis à jour : Juin 2013
Langue : français
Type : Video
-
Video d’abeille en portrait
14 mai 2011, par
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (63)
-
Le plugin : Podcasts.
14 juillet 2010, parLe problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
Types de fichiers supportés dans les flux
Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...) -
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...) -
Menus personnalisés
14 novembre 2010, parMediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
Menus créés à l’initialisation du site
Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)
Sur d’autres sites (5822)
-
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.
-
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 ?
-
lavfi/nlmeans : move final weighted averaging out of nlmeans_plane
6 mai 2018, par Clément Bœschlavfi/nlmeans : move final weighted averaging out of nlmeans_plane
This helps figuring out where the filter is slow :
70.53% ffmpeg_g ffmpeg_g [.] nlmeans_slice
25.73% ffmpeg_g ffmpeg_g [.] compute_safe_ssd_integral_image_c
1.74% ffmpeg_g ffmpeg_g [.] compute_unsafe_ssd_integral_image
0.82% ffmpeg_g ffmpeg_g [.] ff_mjpeg_decode_sos
0.51% ffmpeg_g [unknown] [k] 0xffffffff91800a80
0.24% ffmpeg_g ffmpeg_g [.] weight_averages(Tested with a large image that takes several seconds to process)
Since this function is irrelevant speed wise, the file's TODO is
updated.