Recherche avancée

Médias (91)

Autres articles (50)

  • Qu’est ce qu’un éditorial

    21 juin 2013, par

    Ecrivez votre de point de vue dans un article. Celui-ci sera rangé dans une rubrique prévue à cet effet.
    Un éditorial est un article de type texte uniquement. Il a pour objectif de ranger les points de vue dans une rubrique dédiée. Un seul éditorial est placé à la une en page d’accueil. Pour consulter les précédents, consultez la rubrique dédiée.
    Vous pouvez personnaliser le formulaire de création d’un éditorial.
    Formulaire de création d’un éditorial Dans le cas d’un document de type éditorial, les (...)

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

  • Contribute to translation

    13 avril 2011

    You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
    To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
    MediaSPIP is currently available in French and English (...)

Sur d’autres sites (8390)

  • Paste one video to another on top layer

    9 octobre 2012, par LLAlive

    I have over 100+ videos and i need to paste one 5 sec avi video on top layer of every video (something like watermark or animated logo). It can be performed with Adobe Premiere, but its too long and stupid. Where i can find good framework to work with video to perform this (any language) ? Or any other method to do it ? Maybe 'ffmpeg' can help ? Any help, links, documentations would be great.

  • Resources for learning Metal for Video Editing [on hold]

    28 septembre 2019, par Andrew Sawyer

    I am trying to build a video editing system in Swift for my iOS app. I assume that Metal would be the best system for this as it is extremely powerful. I am unsure where to start learning about Metal because most resources are related to game development.

    In V1 of my app I have used AVFoundation and an AVMutableComposition. However, in this version I need something more complex where I am able to do more effects, layering, etc.

    Is Metal the best way to do this or would another method (FFMpeg, Open GL, etc.) be better ?
    If so, what are the best resources to learn how to use Metal for this application ?

    Thank You !

  • Inconsistent crop and overflay ffmpeg result with drawImage canvas

    21 juin 2022, par yuno saga

    i try to encode the video block frame to specific pattern order, then in front-end it decode back to normal. I test it in back-end by decode back with same function, it back to normal. but in front-end with canvas the order of block not in right position. if you look into front-end function. it have same pattern. i try to check output from for generate, it equal to for in backend overlay builder command.
    
whats wrong with this ?

    


    ffmpeg config

    


    const { spawn } = require('child_process');

function hflip(width) {
    const sizeBlock = 16;
    let filterCommands = '';
    const length = Math.floor(width / sizeBlock);

    for (let i=0; i < length; i++) { 
        filterCommands += `[0]crop=${sizeBlock}:480:${(i*sizeBlock)}:0[c${i}];`;
    }
    
    for (let i=0; i < length; i++) {
        if (i == 0) filterCommands += '[0]';
        if (i != 0) filterCommands += `[o${i}]`;
    
        filterCommands += `[c${i}]overlay=x=${(width - sizeBlock)-(i*sizeBlock)}:y=0`;
    
        if (i != (length - 1)) filterCommands += `[o${i+1}];`;
    }

    return filterCommands;
}

const crops = spawn('ffmpeg', [
    '-i',
    'C:/Software Development/project/blackpink.mp4',
    '-filter_complex',
    hflip(854),
    '-c:a',
    'copy',
    '-c:v',
    'libx264',
    '-crf',
    '30',
    '-preset',
    'ultrafast',
    '-pix_fmt',
    'yuv420p',
    'C:/Software Development/project/hflip.mp4',
    '-y'
], {
    cwd: 'C:/Software Development/ffmpeg'
})


    


    front-end

    


    

    

    &#xA;&#xA;    &#xA;    &#xA;        <button>play</button>&#xA;        <code class="echappe-js">&lt;script&gt;&amp;#xA;            const canvas = document.createElement(&amp;#x27;canvas&amp;#x27;);&amp;#xA;            document.body.appendChild(canvas)&amp;#xA;            const context = canvas.getContext(&amp;#x27;2d&amp;#x27;);&amp;#xA;            const video = document.createElement(&amp;#x27;video&amp;#x27;);&amp;#xA;            video.src = &amp;#x27;https://drive.google.com/uc?export=download&amp;amp;id=1Z0aFg_N3kP0SUO_xOFB0UBjTRH6_mSmb&amp;amp;confirm=t&amp;#x27;&amp;#xA;&amp;#xA;&amp;#xA;            function hflip(video) {&amp;#xA;                const widthBlock = 16;&amp;#xA;                const heightBlock = 480;&amp;#xA;                const length = Math.floor(video.videoWidth / widthBlock);&amp;#xA;&amp;#xA;                for (let i=0; i &lt; length; i&amp;#x2B;&amp;#x2B;) {&amp;#xA;                    console.log({&amp;#xA;                        cX: (i*widthBlock),&amp;#xA;                        oX: (video.videoWidth - widthBlock) - (i*widthBlock)&amp;#xA;                    });&amp;#xA;&amp;#xA;                    context.drawImage(video, (i*widthBlock), 0, widthBlock, heightBlock,  (video.videoWidth - widthBlock) - (i*widthBlock), 0, widthBlock, heightBlock)&amp;#xA;                }&amp;#xA;            }&amp;#xA;&amp;#xA;            video.onloadedmetadata = () =&gt; {&amp;#xA;                context.canvas.width = video.videoWidth;&amp;#xA;                context.canvas.height = video.videoHeight;&amp;#xA;            }&amp;#xA;&amp;#xA;            video.onplay = () =&gt; {&amp;#xA;                const updateCanvas = () =&gt; {&amp;#xA;                    hflip(video);            &amp;#xA;&amp;#xA;                    video.requestVideoFrameCallback(updateCanvas);&amp;#xA;                }&amp;#xA;&amp;#xA;                updateCanvas();&amp;#xA;            }&amp;#xA;&amp;#xA;            function play() { video.play() }&amp;#xA;        &lt;/script&gt;&#xA;    &#xA;

    &#xD;&#xA;

    &#xD;&#xA;

    &#xD;&#xA;&#xA;