Recherche avancée

Médias (91)

Autres articles (45)

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

  • MediaSPIP Player : problèmes potentiels

    22 février 2011, par

    Le lecteur ne fonctionne pas sur Internet Explorer
    Sur Internet Explorer (8 et 7 au moins), le plugin utilise le lecteur Flash flowplayer pour lire vidéos et son. Si le lecteur ne semble pas fonctionner, cela peut venir de la configuration du mod_deflate d’Apache.
    Si dans la configuration de ce module Apache vous avez une ligne qui ressemble à la suivante, essayez de la supprimer ou de la commenter pour voir si le lecteur fonctionne correctement : /** * GeSHi (C) 2004 - 2007 Nigel McNie, (...)

  • MediaSPIP Player : les contrôles

    26 mai 2010, par

    Les contrôles à la souris du lecteur
    En plus des actions au click sur les boutons visibles de l’interface du lecteur, il est également possible d’effectuer d’autres actions grâce à la souris : Click : en cliquant sur la vidéo ou sur le logo du son, celui ci se mettra en lecture ou en pause en fonction de son état actuel ; Molette (roulement) : en plaçant la souris sur l’espace utilisé par le média (hover), la molette de la souris n’exerce plus l’effet habituel de scroll de la page, mais diminue ou (...)

Sur d’autres sites (4599)

  • How to create an image using ffmpeg and PHP ?

    19 décembre 2014, par webkul

    I’m using this script, but I’m not able to create the image.

    My file is here.

  • ffmpeg wasm - how to take client-side created mp4 and upload it to the same server hosting the index/js files being used

    29 juillet 2022, par John Farrell

    Ok, so Im an IT guy and kind of a noob on the dev side of the fence. But I've been able to create this ffmpeg wasm page that takes a canvas and converts it to webm / and .mp4 — what i WANT to do is take the resulting .mp4 file and upload it to the server where the page/js are being served from. is this possible ? I will include my source code which is fairly simple and straight forward, I just don't know how to manipulate the resulting mp4 file that ffmpeg spits out (i realize it is happening client side) to be able to push it up to the server (maybe with aupload.php type situation ?) the solution can be html/java/php whatever, so long as it takes the mp4 output and gets it onto the server. I'd VERY MUCH appreciate a hand here.

    


    Going to try my best to properly insert the html and js. please bear with me if i've done something wrong, i've never had to -ask- a question on here, usually just look up existing answers.

    


    

    

    const { createFFmpeg } = FFmpeg;
const ffmpeg = createFFmpeg({
  log: true
});

const transcode = async (webcamData) => {
  const message = document.getElementById('message');
  const name = 'record.webm';
  await ffmpeg.load();
  message.innerHTML = 'Start transcoding';
  await ffmpeg.write(name, webcamData);
  await ffmpeg.transcode(name,  'output.mp4');
  message.innerHTML = 'Complete transcoding';
  const data = ffmpeg.read('output.mp4');

  const video = document.getElementById('output-video');
  video.src = URL.createObjectURL(new Blob([data.buffer], { type: 'video/mp4' }));
  dl.href = video.src;
  dl.innerHTML = "download mp4"
}

fn().then(async ({url, blob})=>{
    transcode(new Uint8Array(await (blob).arrayBuffer()));
})

function fn() {
var recordedChunks = [];

var time = 0;
var canvas = document.getElementById("canvas");

return new Promise(function (res, rej) {
    var stream = canvas.captureStream(60);

    mediaRecorder = new MediaRecorder(stream, {
        mimeType: "video/webm; codecs=vp9"
    });

    mediaRecorder.start(time);

    mediaRecorder.ondataavailable = function (e) {
        recordedChunks.push(event.data);
        // for demo, removed stop() call to capture more than one frame
    }

    mediaRecorder.onstop = function (event) {
        var blob = new Blob(recordedChunks, {
            "type": "video/webm"
        });
        var url = URL.createObjectURL(blob);
        res({url, blob}); // resolve both blob and url in an object

        myVideo.src = url;
        // removed data url conversion for brevity
    }

// for demo, draw random lines and then stop recording
var i = 0,
tid = setInterval(()=>{
  if(i++ > 20) { // draw 20 lines
    clearInterval(tid);
    mediaRecorder.stop();
  }
  let canvas = document.querySelector("canvas");
  let cx = canvas.getContext("2d");
  cx.beginPath();
  cx.strokeStyle = 'green';
  cx.moveTo(Math.random()*100, Math.random()*100);
  cx.lineTo(Math.random()*100, Math.random()*100);
  cx.stroke();
},200)

});
}

    


    &#xA;&#xA;&#xA;<code class="echappe-js">&lt;script src=&quot;https://unpkg.com/@ffmpeg/ffmpeg@0.8.1/dist/ffmpeg.min.js&quot; defer&gt;&lt;/script&gt;&#xA;&lt;script src='http://stackoverflow.com/feeds/tag/canvas2mp4.js' defer&gt;&lt;/script&gt;&#xA;&#xA;&#xA;&#xA;here is a canvas
    &#xA;
    &#xA;&#xA;here is a recorded video of the canvas in webM format
    &#xA;
    &#xA;&#xA;&#xA;here is a transcoded mp4 from the webm above CLIENT SIDE using ffmpeg
    &#xA;
    &#xA;&#xA;

    &#xA;&#xA;

    &#xD;&#xA;

    &#xD;&#xA;

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

  • ALSA lib pcm.c:7963 :(snd_pcm_recover) underrun occurred with MoviePy

    25 janvier 2017, par mdornfe1

    So I have a bit of an unusual use case for MoviePy. I have a 40 core computer, and on each core I’m creating a moviepy object, having that object connect to an mp4 file, then having each object decompress random images from the mp4 file. I’m doing this so I can use the images to train a neural network. It actually works really except I’m getting this warning

    ALSA lib pcm.c:7963:(snd_pcm_recover) underrun occurred

    I can’t figure out its source. Here is a basic code example

    from moviepy.editor import VideoFileClip
    from queue import Queue, deque
    import threading, multiprocessing
    import numpy as np

    def decompress_worker(training_data:Queue, frame_idxs:Queue, video_file_path:str):
       """
       Eache of these workers will pop off one integer from frame_idxs.
       It will then decompress that frame number from vs. Finally
       it will store the decompressed image in training_data.
       """
       vs = VideoFileClip(video_file_path)
       fps = vs.fps

       while frame_idxs.qsize() > 0:
           frame_number = frame_idxs.get()
           frame = vs.get_frame( frame_number / fps )
           training_data.put(frame)


    num_cores = multiprocessing.cpu_count()
    frame_idxs = Queue()
    training_data = Queue()
    frame_idxs.queue = deque(np.random.randint(0, 10000, size = 1000))

    decompress_threads = []
    for n in range(num_cores):
       decompress_thread = threading.Thread(target=decompress_worker,
           args=(training_data, frame_idxs, video_file_path))
       decompress_threads.append(decompress_thread)
       decompress_thread.start()

    [thread.join() for thread in decompress_threads]

    I’m guessing it’s coming from me reading data from the mp4 file to fast ? It would be nice if I could just suppress the warning. Is there a way to do that ?