Recherche avancée

Médias (91)

Autres articles (112)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Activation de l’inscription des visiteurs

    12 avril 2011, par

    Il est également possible d’activer l’inscription des visiteurs ce qui permettra à tout un chacun d’ouvrir soit même un compte sur le canal en question dans le cadre de projets ouverts par exemple.
    Pour ce faire, il suffit d’aller dans l’espace de configuration du site en choisissant le sous menus "Gestion des utilisateurs". Le premier formulaire visible correspond à cette fonctionnalité.
    Par défaut, MediaSPIP a créé lors de son initialisation un élément de menu dans le menu du haut de la page menant (...)

  • Qu’est ce qu’un masque de formulaire

    13 juin 2013, par

    Un masque de formulaire consiste en la personnalisation du formulaire de mise en ligne des médias, rubriques, actualités, éditoriaux et liens vers des sites.
    Chaque formulaire de publication d’objet peut donc être personnalisé.
    Pour accéder à la personnalisation des champs de formulaires, il est nécessaire d’aller dans l’administration de votre MediaSPIP puis de sélectionner "Configuration des masques de formulaires".
    Sélectionnez ensuite le formulaire à modifier en cliquant sur sont type d’objet. (...)

Sur d’autres sites (15191)

  • Revision 32737 : habillage par defaut de Zpip utilise les conventions documentees

    8 novembre 2009, par cedric@… — Log

    habillage par defaut de Zpip utilise les conventions documentees

  • How to properly abort av_seek_frame on FFmpeg ?

    5 mars 2021, par SuRGeoNix

    Normally, you wouldn't care aborting av_seek_frame as it would be really fast on a local file. However, in my case I use a custom AVIOContext for torrent streaming with custom read/seek functions and I'm not able to abort a single seek request !

    


    I've already tried interrupt callbacks (they will not be called at all), some timeouts (rw_timeout/timeout etc.) but by checking FFmpeg's code didn't find anything at all. My last chance was to try to return on read/seek functions an error (I've tried AVERROR_EXIT) which causes even more problems (memory leaks).

    


    The main issue is with Matroska formats that they need to resync (level-1) and they are trying to scan the whole file.

    


    Unfortunately, I'm using C# .NET with FFmpeg.Autogen bindings which means that I don't have low-level access to play around. My workaround is to re-open the whole format context in case on seek abort (to ensure that the player will continues to play at least)

    


    Hope you have a tip for me !

    


    (By the way for some http/hls web formats interrupt callbacks are supported)

    


  • Impossible to redirect video stream after conversion (mkv to mp4)

    17 décembre 2019, par elgrusko

    I’m currently realising a school project which aims a streaming video website (like Netflix) using torrent-stream (with the magnet link). I am using NodeJS for the stream part.

    My problem is : I can’t redirect the stream to the HTML 5 player while i’m trying to stream and converting (with ffmpeg) video at the same time. I think it’s because I just can’t know what’s will be the final size of the converted file.
    In browser’s console I have this message : net::ERR_CONTENT_LENGTH_MISMATCH 200 (OK)

    I tried to put this in the header : Transfer-Encoding: chunked instead of Content-Length
    I specify that the stream (before conversion) works perfectly

    This is my code :

    getTorrentFile.then(function (file) {
                   res.setHeader('Content-Type', 'video/mp4');
                   res.setHeader('Content-Length', file.length);
                   const ranges = parseRange(file.length, '15' /* variable à comprendre */, { combine: true });
                   console.log(ranges);
                   if (ranges === -1) {
                       // 416 Requested Range Not Satisfiable
                       console.log('416')
                       res.statusCode = 416;
                       return res.end();
                   } else if (ranges === -2 || ranges.type !== 'bytes' || ranges.length > 1) {
                       // 200 OK requested range malformed or multiple ranges requested, stream ent'ire video
                       if (req.method !== 'GET') return res.end();
                       console.log('200')
                       stream = file.createReadStream()
                       ffmpeg(stream)
                       .videoCodec('libx264')
                       .audioCodec('aac')
                       .output(res)
                       .output('./video/' + film + '_s' + season + '_e' + episode + '.mp4')
                       .outputFormat('mp4')
                       .outputOptions('-movflags frag_keyframe+empty_moov')
                       .on('error', function(err) {
                           console.log('An error occurred: ' + err.message);
                       })
                       .on('progress', function(progress) {
                           console.log('Processing: ' + progress.targetSize + 'kb done');
                         })
                       .on('end', function() {
                           console.log('Processing finished !');
                       })
                       .addOutputOption('-acodec')
                       .run()

    Sorry if i’m not really clear, ask me some questions if you need more informations :)

    Thanks for your help, bye :)