Recherche avancée

Médias (91)

Autres articles (66)

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

  • Supporting all media types

    13 avril 2011, par

    Unlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)

  • Dépôt de média et thèmes par FTP

    31 mai 2013, par

    L’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
    Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...)

Sur d’autres sites (5701)

  • FFMPEG & ScrollMagic : Safari bug

    27 novembre 2020, par gusv7

    I got this site where video playback is linked to scroll position. I'm using a FFMPEG-encoded .mp4 file and ScrollMagic to handle the scroll event. It works perfectly on Chrome, Opera and FF, but crashes on Safari : the animation is delayed and the video disappears once it reaches the end of the playback on Safari OS. It also doesn't show on iOS, not in Safari or Chrome... :/

    


    Here's the markup :

    


    <section class="shaka-container padding-x-lg flex-end">&#xA;  <div class="shaka">&#xA;    <video src="/assets/maozinha.mp4" type="video/mp4" playsinline="true"></video>&#xA;  </div>&#xA;</section>&#xA;

    &#xA;

    The JS :

    &#xA;

    &#xA;<code class="echappe-js">&lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/gsap/3.5.1/gsap.min.js&quot;&gt;&lt;/script&gt;&#xA;&#xA;&lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.8/ScrollMagic.min.js&quot; integrity=&quot;sha512-8E3KZoPoZCD&amp;#x2B;1dgfqhPbejQBnQfBXe8FuwL4z/c8sTrgeDMFEnoyTlH3obB4/fV&amp;#x2B;6Sg0a0XF&amp;#x2B;L/6xS4Xx1fUEg==&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;&#xA;&#xA;&lt;script&gt;&amp;#xA;  // Shaka Animation&amp;#xA;    const intro = document.querySelector(&amp;#x27;.shaka&amp;#x27;);&amp;#xA;    const video = intro.querySelector(&amp;#x27;video&amp;#x27;);&amp;#xA;&amp;#xA;    // SCROLL MAGIC&amp;#xA;&amp;#xA;    const controller = new ScrollMagic.Controller();&amp;#xA;&amp;#xA;    // Scenes&amp;#xA;    const scene = new ScrollMagic.Scene({&amp;#xA;      duration: 0,&amp;#xA;      triggerElement: intro,&amp;#xA;      triggerHook: 0,   &amp;#xA;    })&amp;#xA;    .addTo(controller);&amp;#xA;&amp;#xA;    // Video Animation&amp;#xA;&amp;#xA;    let accelamount = 0.5;&amp;#xA;    let scrollpos = 0;&amp;#xA;    let delay = 0;&amp;#xA;&amp;#xA;    scene.on(&amp;#x27;update&amp;#x27;, e =&gt; {&amp;#xA;      scrollpos = e.scrollPos / 1000;&amp;#xA;    });&amp;#xA;&amp;#xA;    setInterval(() =&gt; {&amp;#xA;      delay &amp;#x2B;= (scrollpos - delay) * accelamount;&amp;#xA;      video.currentTime = delay;&amp;#xA;    }, 24);&amp;#xA;&lt;/script&gt;&#xA;

    &#xA;

    I wonder if the video encoding is the issue or how Safari processes the video playback ? I've used the following encoding for the video :

    &#xA;

    First :&#xA;ffmpeg -i ~/assets/mao-final.mp4 -vf scale=960:-2 -movflags faststart -vcodec libx264 -crf 20 -g 1 -pix_fmt yuv420p mao-final-960.mp4

    &#xA;

    Then,&#xA;ffmpeg -i ~/assets/mao-final.mp4 -vf scale=960:-2 -movflags faststart -vcodec libx264 -crf 20 -g 1 -pix_fmt yuv420p maozinha.mp4

    &#xA;

    I'm considering changing it to a canvas animation if I can't get to a solution. Please help !

    &#xA;

  • JavaCV FFmpegFrameGrabber preload audio

    1er juillet 2015, par James

    I have an application that streams video data to a RTMP server using javacv’s FFmpegFrameRecorder. I want to add some audio to this stream from a separate file - a short sound clip that I want to play on repeat.

    Given the sound clip is very short, I want to preload the audio data into memory and just loop over it - so I can avoid excessive IO etc.

    I’ve attempted to add audio to the stream using javacv’s FFmpegFrameGrabber, as prescribed on multiple tutorials.

    The addition of audio works perfectly if I don’t attempt to preload/cache any of the audio data, for example :

    private FFmpegFrameRecorder frameRecorder;
    private FFmpegFrameGrabber frameGrabber;

    ...
    //frameRecorder and frameGrabber setup during initialization
    ...

    public void record(IplImage image) {
           try {
               frameRecorder.record(image);
               Frame frame = frameGrabber.grabFrame();
               if(frame == null) {
                   frameGrabber = new FFmpegFrameGrabber("audioFileHere.wav");
                   frameGrabber.start();
                   frame = frameGrabber.grabFrame();
               }
               frameRecorder.record(frame);
           } catch (FrameRecorder.Exception e) {
               log.error(getMarker(FATAL), "Can't record frame!", e);
           } catch (FrameGrabber.Exception e) {
               log.error(getMarker(FATAL), "Can't record frame!", e);
           }
    }

    However, if I try to preload the audio data I get garbage sound being played :

    private FFmpegFrameRecorder frameRecorder;
    private List<framedata> audioData;

    private static final class FrameData {
       public final Buffer[] samples;
       public final Integer sampleRate;
       public final Integer audioChannels;

       //Constructors, getters and setters here
    }

    ...
       //frameRecorder setup during initialization
       audioData = new ArrayList&lt;>();
       FFmpegFrameGrabber audioGrabber = new FFmpegFrameGrabber("audioFileHere.wav");
       try {
           audioGrabber.start();
           Frame frame;
           while ((frame = audioGrabber.grabFrame()) != null) {
               Buffer[] buffers = frame.samples;
               Buffer[] copiedBuffers = new Buffer[buffers.length];
               for (int i = 0; i &lt; buffers.length; i++) {
                   copiedBuffers[i] = ((ShortBuffer) buffers[i]).duplicate();
               }
               FrameData frameData = new FrameData(copiedBuffers, frame.sampleRate, frame.audioChannels);
               audioData.add(frameData);
           }
       } catch (FrameGrabber.Exception e) {
           e.printStackTrace();
       }
    ...

    private int frameCount = 0;

    public void record(IplImage image) {
       frameCount++;
       try {
           FrameData frameData = audioData.get(frameCount % audioData.size());
           frameRecorder.record(image);
           frameRecorder.record(frameData.sampleRate, frameData.audioChannels, frameData.samples);
       } catch (FrameRecorder.Exception e) {
           log.error(getMarker(FATAL), "Can't record frame!", e);
       }
    }
    </framedata>

    NOTE : I have to deep copy the Frame object because FFmpegFrameGrabber.grabFrame() recycles a single Frame object

    Can someone explain why this doesn’t work and/or how I could achieve the desired result ?

  • Using HEVC with Alpha to Compose Moviepy Video

    3 avril, par James Grace

    I'm using moviepy, PIL and numpy and trying to compile a video with 3 components : A background image that is a PNG with no transparency, an Overlay Video that is a HEVC with Alpha, and a primary clip that is produced with a collection of PNG images with transparency.

    &#xA;

    The video is composed with background + overlay video + main video.

    &#xA;

    The problem I'm having is that the overlay video has a black background, so the background image is covered completely. Moviepy is able to import the HEVC video successfully by it seems as though the Alpha channel is lost on import.

    &#xA;

    Any ideas ?

    &#xA;

    Here's my code :

    &#xA;

    from PIL import Image&#xA;import moviepy.editor as mpe&#xA;import numpy as np&#xA;&#xA;def CompileVideo() :&#xA;&#xA;    frames = ["list_of_png_files_with_transparency"]&#xA;    fps = 30.0&#xA;    clips = [mpe.ImageClip(np.asarray(Image.open(frame))).set_duration(1 / int(fps)) for frame in frames]&#xA;    ad_clip = mpe.concatenate_videoclips(clips, method="compose")&#xA;    bg_clip = mpe.ImageClip(np.asarray(Image.open("path_to_background_file_no_transparency"))).set_duration(ad_clip.duration)&#xA;&#xA;    overlay_clip = mpe.VideoFileClip("path_to_HEVC_with_Alpha.mov")&#xA;&#xA;    comp = [bg_clip, overlay_clip, ad_clip]&#xA;&#xA;    final = mpe.CompositeVideoClip(comp).set_duration(ad_clip.duration)&#xA;    final.write_videofile("output.mp4", fps=fps)&#xA;

    &#xA;