Recherche avancée

Médias (2)

Mot : - Tags -/documentation

Autres articles (58)

  • 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

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

  • Utilisation et configuration du script

    19 janvier 2011, par

    Informations spécifiques à la distribution Debian
    Si vous utilisez cette distribution, vous devrez activer les dépôts "debian-multimedia" comme expliqué ici :
    Depuis la version 0.3.1 du script, le dépôt peut être automatiquement activé à la suite d’une question.
    Récupération du script
    Le script d’installation peut être récupéré de deux manières différentes.
    Via svn en utilisant la commande pour récupérer le code source à jour :
    svn co (...)

Sur d’autres sites (10617)

  • How to find an audio channel layout of a video an then apply it to an another video

    3 janvier 2023, par someCO_OLguy

    We have a video of an audio channel layout, let's say BL. We don't know the format. We need to find the layout of that video and apply to a different video, assuming that each video only has 1 channel.

    


    I tried a lot, and still I can't find an answer that could work

    


  • FFMPEG images to video + overlay video

    7 novembre 2018, par AK47

    I am trying to make 15 second video where the background layer is a video made up of 2 images, the first line creates a 15 second video from 2 images.

    I chose a small framerate so it renders an mp4 quickly. I then overlay a webm video (which has transparency) over the images. The final video seems to keep the framerate of 2, but i would rather keep the 24 framerate of the webm video.

    Is this possible ? & is it also possible to turn the below into 1 statement.

    ffmpeg -loop 1 -framerate 2 -t 11 -i image1.png -loop 1 -framerate 2 -t 4 -i image2.png -filter_complex "[0][1]concat=n=2" backgroundvideo.mp4;
    ffmpeg -i backgroundvideo.mp4 -c:v libvpx-vp9 -i overlayvideo.webm -filter_complex overlay newvid.mp4
  • ffmpeg not returning duration, cant play video until complete. Stream images 2 video via PHP

    17 février 2014, par John J

    I am real struggling with ffmpeg. I am trying to convert images to video, I have an ip camera which I am recording from. The recordings are mjpegs 1 frame per image.

    I am trying to create a script in php so I can recreate a video from date to date, this requires inputting the images via image2pipe and then creating the video.

    The trouble is, ffmpeg does return the duration and start stats, so I have no way of working out when the video is done or what percentage is done. The video won't play until its finished, and its not a very good UE.

    Any ideas of how I can resolve this, the video format can be anything I am open to suggestions.

    PHP :

    //Shell command
    exec('cat /image/dir/*.jpg | ffmpeg -y -c:v mjpeg -f image2pipe -r 10 -i - -c:v libx264 -pix_fmt yuv420p -movflags +faststart myvids/vidname.mp4 1>vidname.txt 2>&1')

    //This is loaded via javascript when the video is loaded (which is failing due to stats being wrong
    $video_play = "<video width="\&quot;320\&quot;" height="\&quot;240\&quot;" src="\&quot;myvids/vidname.mp4\&quot;" type="\&quot;video/mp4\&quot;\" controls="\&quot;controls\&quot;" preload="\&quot;none\&quot;"></video>";

    Javascript :

    //Javascript to create the loop until video is loaded
    <code class="echappe-js">&lt;script&gt;<br />
              $(document).ready(function() {<br />
                   var loader = $(&quot;#clip_load&quot;).percentageLoader();<br />
                   $.ajaxSetup({ cache: false }); // This part addresses an IE bug. without it, IE will only load the first number and will never refresh<br />
                   var interval = setInterval(updateProgress,1000);<br />
                   function updateProgress(){ $.get( &quot;&amp;#39;.base_url().&amp;#39;video/getVideoCompile_Process?l=&amp;#39;.$vid_name.&amp;#39;-output.txt&amp;amp;t=per&quot;, function( data ) { if(data=&gt;\&amp;#39;100\&amp;#39;){ $(&quot;#clip_load&quot;).html(\&amp;#39;&amp;#39;.$video_play.&amp;#39;\&amp;#39;); clearInterval(interval); }else{loader.setProgress(data); } });                    }<br />
               });<br />
               &lt;/script&gt;

    PHP (page is called via javascript :

    //This is the script which returns the current percentage
    $logloc = $this->input->get(&#39;l&#39;);
    $content = @file_get_contents($logloc);

    if($content){
       //get duration of source
       preg_match("/Duration: (.*?), start:/", $content, $matches);

       $rawDuration = $matches[1];

       //rawDuration is in 00:00:00.00 format. This converts it to seconds.
       $ar = array_reverse(explode(":", $rawDuration));
       $duration = floatval($ar[0]);
       if (!empty($ar[1])) $duration += intval($ar[1]) * 60;
       if (!empty($ar[2])) $duration += intval($ar[2]) * 60 * 60;

       //get the time in the file that is already encoded
       preg_match_all("/time=(.*?) bitrate/", $content, $matches);

       $rawTime = array_pop($matches);

       //this is needed if there is more than one match
       if (is_array($rawTime)){$rawTime = array_pop($rawTime);}

       //rawTime is in 00:00:00.00 format. This converts it to seconds.
       $ar = array_reverse(explode(":", $rawTime));
       $time = floatval($ar[0]);
       if (!empty($ar[1])) $time += intval($ar[1]) * 60;
       if (!empty($ar[2])) $time += intval($ar[2]) * 60 * 60;

       //calculate the progress
       $progress = round(($time/$duration) * 100);
       if ($this->input->get(&#39;t&#39;)==&#39;per&#39;){
           echo $progress;
       }else{
               echo "Duration: " . $duration . "<br />";
               echo "Current Time: " . $time . "<br />";
       echo "Progress: " . $progress . "%";}
    }else{ echo "cannot locate";}

    Thanks