Recherche avancée

Médias (91)

Autres articles (69)

  • Gestion générale des documents

    13 mai 2011, par

    MédiaSPIP ne modifie jamais le document original mis en ligne.
    Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
    Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • 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 (...)

Sur d’autres sites (11117)

  • Issue playing output mp4 transcoded with ffmpeg wasm on mobile

    14 mars 2023, par heroicsatsuma

    I'm capturing a video of a canvas using MediaRecorder :

    


    (async () => {
    const stream = recordingCanvasCtx.canvas.captureStream();
    const chunks = [];
    videoRecorder.ondataavailable = e => chunks.push(e.data);
    videoRecorder.onstop = async () => {
        transcode(new Uint8Array(await (new Blob(chunks)).arrayBuffer()));
        stopRecording();
    };
    videoRecorder.start();
    setTimeout(() => {
        videoRecorder.stop();
    }, videoRecordDuration);
})();


    


    Then transcoding using ffmpeg wasm :

    


    const transcode = async (webcamData) => {
    const name = 'record.webm';

    ffmpeg.FS('writeFile', name, await fetchFile(webcamData));
    await ffmpeg.run('-i', name, '-codec', 'copy', '-preset', 'superfast', '-crf', '27', 'output.mp4');

    const data = ffmpeg.FS('readFile', 'output.mp4');

    const video = document.getElementById('vidpreview');
    video.src = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' }));

    document.getElementById('viddiv').classList.add("show");

    vidpreview.onloadeddata = function () {
        playBtn.addEventListener('click', playVidAgain);
    }
}


    


    This all works and displays when running on a Windows laptop, but when trying to display the video.src on Android I see the following error in chrome ://inspect :

    


    ERR_REQUEST_RANGE_NOT_SATISFIABLE

    


    Any ideas how to get this working are much appreciated

    


  • avcodec_decode_video2 returns positive number when got_picture_ptr is 0

    22 août 2017, par dafnahaktana

    According to the documentation : here, avcodec_decode_video2 should return 0 if no frame could be decompressed. The got_picture_ptr should also be set to zero if no frame could be decompressed.

    I ran this function on a h264 video and I got positive return value while the got_picture_ptr was set to 0. Maybe that the documentation is not updated ?

  • Ajax call returns 500 error

    26 mars 2018, par user3080392

    I have an Ajax call to a PHP script. The PHP script uses FFmpeg to concatenate several .ts files into one, and then converts it into an MP4 file.

    The PHP script manages to concatenate the files and convert the file to an MP4. However, none of the code after the FFmpeg commands is carried out.

    Furthermore, my Ajax "success" function always returns a "500 Internal Server Error"

    Here’s the Ajax :

    function makeVid(vidUrl) {

     $.ajax({
       type: "POST",
       url: 'make_vid.php',
       data: {url: vidUrl},
       cache: false,
       success: function(data){        
         $("#vidResult").append(data);
         document.getElementById(#myBtn).disabled = false;
       },
       error: function (jqXHR, exception) {
         var msg = '';
         if (jqXHR.status === 0) {
           msg = 'Not connect.\n Verify Network.';
         } else if (jqXHR.status == 404) {
           msg = 'Requested page not found. [404]';
         } else if (jqXHR.status == 500) {
           msg = 'Internal Server Error [500].';
         } else if (exception === 'parsererror') {
           msg = 'Requested JSON parse failed.';
         } else if (exception === 'timeout') {
           msg = 'Time out error.';
         } else if (exception === 'abort') {
           msg = 'Ajax request aborted.';
         } else {
           msg = 'Uncaught Error.\n' + jqXHR.responseText;
         }
         $('#vidResult').html(msg);
       }

     });

    }

    And here’s the PHP/FFmpeg :

    shell_exec("$ffmpeg -f concat -safe 0 -i $vidClipsListTxtFile -c copy $combinedFileTs 1> $makeVidProgTxtFileTs 2>&1");
    shell_exec("$ffmpeg -i $combinedFileTs -f mpegts -codec:v mpeg1video -bf 0 -codec:a mp2 -q 12 $combinedFileMp4 1> $makeVidProgTxtFileMp4 2>&1");
    echo "video completed.";

    The PHP error log includes the following errors :

    File does not exist: /home/mysite/public_html/favicon.ico
    File does not exist: /home/mysite/public_html/404.shtml
    File does not exist: /home/mysite/public_html/505.shtml
    File does not exist: /home/mysite/public_html/robots.txt

    And here are some of the things I’ve tried to correct the problem :

    1. Created the above files in the public_html folder

    2. Increased the max_execution_time and memory_limit in my php.ini file

    3. Changed the Ajax success() function to a complete() function

    I still get the 500 error. What else can I try ?