Recherche avancée

Médias (1)

Mot : - Tags -/artwork

Autres articles (38)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 is the first MediaSPIP stable release.
    Its official release date is June 21, 2013 and is announced here.
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

Sur d’autres sites (6285)

  • FFmpeg.wasm demuxing - Get encodedChunks in Javascript

    16 mars 2023, par Kevin Baving

    I am building a video editor whose process looks like this :

    


    Demuxing -> Decoding -> Editing -> Encoding -> Muxing.

    


    The demuxing and muxing process is currently done with mp4box.js. I would like to replace mp4box.js with ffmpeg.wasm. Unfortunately, I can't get along with the process.

    


    What should FFmpeg.wasm do in the demuxing process ?

    


      

    • load a .mp4 file
    • 


    • extract the encodedVideoChunks and store them as EncodedVideoChunk objects in an array
    • 


    • extract the encodedAudioChunks and store them as EncodedAudioChunk objects in an array
    • 


    • get some metadata like : duration, timescale, fps, track_width, track_height, codec, audio_channel_count, sample_rate ....
    • 


    


    public async loadFile(file: File) {
    let data = await fetchFile(file)
    let blob = new Blob();
    await this.ffmpeg.setProgress(({ratio }) => console.log(`Extracting frames: ${Math.round(ratio * 100)}%`));
    this.ffmpeg.FS('writeFile', 'videoTest.mp4', data);
    //Here is where I am struggling
    //Should look like this: 
    //const command = '-i videoTest.mp4 -c:v copy .... '
    //await this.ffmpeg.run(command);
    //....
}


    


    Lets get deeper into my problem :

    


    Because FFmpeg.wasm is still a cli tool, I have no idea what the best way to safe the encodedChunks into a file is (and what kind of filetype I should use). Further I would like to know how to read that file propertly so that i can safe the input of the file into seperate EncodedVideo- and AudioChunks.

    


  • ffmpeg is not working while uploading file using uploadify

    21 janvier 2016, par Ranjith

    for a particular video i tried like this, and it worked

    exec('/usr/bin/ffmpeg -i /home/xxxxxx/public_html/test/video1.mp4  /home/xxxxxxx/public_html/test/video1.flv');

    but for uploadify i write code like this ,

    <?php

    if (!empty($_FILES)) {
    $userId=$_SESSION["user_userid"];
    $filename = $_FILES['Filedata']['name'];
    $filetmpname = $_FILES['Filedata']['tmp_name'];
    $fileType = $_FILES["Filedata"]["type"];
    $fileSizeMB = ($_FILES["Filedata"]["size"] / 1024 / 1024);
    $folder=$_REQUEST['folder'];

    exec("/usr/bin/ffmpeg -i"."/home/xxxxxx/public_html/private/".$folder."/".$filename." "."/home/xxxxxx/public_html/private/".$folder."/".$filename.".flv");

    }elseif($_POST['d']){
    $filename = $_POST['d'];
    $folder=$_REQUEST['folder'];
    $dFile = $folder.$filename;
    if(file_exists($dFile)){
       unlink($dFile);
    }
    }
    ?>

    this code is not converting the uploaded file.
    help me please.

    thanks

  • How to replace a snippet in a video without reencoding the whole video

    3 novembre 2022, par Simon Streicher

    I am trying to edit and replace a section of a video without reencoding the whole video.
Here are the steps I think I need to take :

    


    1. Find keyframes

    


    input :

    


    ffprobe -v error -select_streams v:0 -skip_frame nokey -show_entries frame=pkt_pts_time -of csv=p=0 'example.mkv'


    


    output :

    


    0.000000
1.001000
11.011000
13.430000
20.812000
30.822000
40.832000
50.842000
⋮


    


    2. Export relevant section

    


    For example, export the snippet 40.832000 → 50.842000.

    


    3. Edit and reencode

    


    After editing that section, I need to reencode it to the original codecs for compatibility with the surrounding video. For example, this is the original codecs :

    


    Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x1600 [SAR 1:1 DAR 12:5], 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default)


    


    4. Inject edit back into the video stream

    


    Finally, I need to use FFmpeg somehow to retain everything from the original file (audio, subtitles, chapters, etc.) and to construct a new video stream (for example, Stream #0:0) that is exactly 0 → 40.832000 of the original, the whole edited section, and 50.842000 → end of the original section.

    


    My main questions are :

    


      

    • A. How do I trim the video stream in 2. without reencoding ?
    • 


    • B. Assuming that the edited video's resolution will remain the same, what is the command for FFmpeg to encode my edit to the codecs in 3. (and would the video be concatenable with the original video) ?
    • 


    • C. How should I go about glueing the sections together ? Should I simply trim Stream #0:0 into sections v1 = 0 → 40.832 and v2 = 50.842 → end and then concatenate a new stream as new = v1 + edited + v2 ?
    • 


    • D. How do I replace Stream #0:0 with new ?
    • 


    


    And probably the most important question : are my assumptions correct and can this be achieved ?