Recherche avancée

Médias (91)

Autres articles (3)

  • Submit bugs and patches

    13 avril 2011

    Unfortunately a software is never perfect.
    If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
    If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
    You may also (...)

  • Le plugin : Gestion de la mutualisation

    2 mars 2010, par

    Le plugin de Gestion de mutualisation permet de gérer les différents canaux de mediaspip depuis un site maître. Il a pour but de fournir une solution pure SPIP afin de remplacer cette ancienne solution.
    Installation basique
    On installe les fichiers de SPIP sur le serveur.
    On ajoute ensuite le plugin "mutualisation" à la racine du site comme décrit ici.
    On customise le fichier mes_options.php central comme on le souhaite. Voilà pour l’exemple celui de la plateforme mediaspip.net :
    < ?php (...)

  • MediaSPIP : Modification des droits de création d’objets et de publication définitive

    11 novembre 2010, par

    Par défaut, MediaSPIP permet de créer 5 types d’objets.
    Toujours par défaut les droits de création et de publication définitive de ces objets sont réservés aux administrateurs, mais ils sont bien entendu configurables par les webmestres.
    Ces droits sont ainsi bloqués pour plusieurs raisons : parce que le fait d’autoriser à publier doit être la volonté du webmestre pas de l’ensemble de la plateforme et donc ne pas être un choix par défaut ; parce qu’avoir un compte peut servir à autre choses également, (...)

Sur d’autres sites (796)

  • Play a video with ffmpeg and SDL2 on a Raspberry Pi 5

    18 février 2024, par aforino

    I want to create a python script that decodes a h264 1080p video and outputs it via SDL2 on a Raspberry Pi 5. The Raspberry Pi 5 is able to play a h264 1080p video without problem using VLC. Total CPU load with VLC is about 10%. However decoding with ffmpeg and outputting via SDL2 uses around 70% CPU load. Since I want to be able to switch seamlessly between two output videos I will need to decode two videos at the same time. Therefore 70% CPU load for one transcoded 1080p video is not acceptable. How can I make the code more efficient and why is VLC so much more efficient ?

    &#xA;

    This is my current python script :

    &#xA;

    import numpy as np&#xA;import ffmpeg  # ffmpeg-python&#xA;import sdl2.ext&#xA;&#xA;in_file = ffmpeg.input(&#x27;bbb1080_x264.mp4&#x27;, re=None)&#xA;&#xA;width = 1920&#xA;height = 1080&#xA;&#xA;process1 = (&#xA;    in_file&#xA;    .output(&#x27;pipe:&#x27;, format=&#x27;rawvideo&#x27;, pix_fmt=&#x27;bgra&#x27;)&#xA;    .run_async(pipe_stdout=True)&#xA;)&#xA;&#xA;sdl2.ext.init()&#xA;window = sdl2.ext.Window("Hello World!", size=(width, height))&#xA;window.show()&#xA;windowsurface = sdl2.SDL_GetWindowSurface(window.window)&#xA;windowArray = sdl2.ext.pixels3d(windowsurface.contents)&#xA;&#xA;sdl2.ext.mouse.hide_cursor()&#xA;&#xA;while True:&#xA;    in_bytes = process1.stdout.read(width * height * 4)&#xA;&#xA;    if not in_bytes:&#xA;        break&#xA;&#xA;    in_frame = (&#xA;        np&#xA;        .frombuffer(in_bytes, np.uint8)&#xA;        .reshape([height, width, 4])&#xA;        .transpose(1, 0, 2)&#xA;    )&#xA;&#xA;    for event in sdl2.ext.get_events():&#xA;        if event.type == sdl2.SDL_QUIT:&#xA;            exit()&#xA;&#xA;    windowArray[:] = in_frame&#xA;    window.refresh()&#xA;&#xA;process1.wait()&#xA;

    &#xA;

    Also it is interesting to note that when I start VLC on a Raspberry Pi 5 this is the output on the terminal

    &#xA;

    [00007fff78c1a550] avcodec decoder error: cannot start codec (h264_v4l2m2m)&#xA;Fontconfig warning: ignoring UTF-8: not a valid region tag&#xA;[00007fff68002d70] gles2 generic error: parent window not available&#xA;[00007fff68002d70] xcb generic error: window not available&#xA;[00007fff680013f0] mmal_xsplitter vout display: Try drm&#xA;[00007fff68002d70] drm_vout generic: &lt;&lt;&lt; OpenDrmVout: Fmt=I420&#xA;[00007fff68002d70] drm_vout generic error: Failed to get xlease`&#xA;

    &#xA;

    It indicates that VLC is not using the h264_v4l2m2m hardware acceleration.

    &#xA;

  • How to buffer videojs so preload won't show ?

    9 septembre 2015, par toy

    I’m building video cutting tool using videojs. In order to give the feedback to user right away instead of using ffmpeg to merge the video right away. I just swap the videos instead. However, during the swapping you would see the loading icon when the second video is being loaded. Is there any tricks that would tell videojs to load the video before so when the video plays it would just play right away.

    http://jsfiddle.net/noppanit/odwqqoss/2/

    Here’s my code

    <div>
       <video preload="auto" class="vjs-tech" src="http://www.w3schools.com/html/mov_bbb.mp4">
           <source src="http://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
       </source></video>
    </div>
    <div>
       <div>
           <label>From</label>
           <input type="text" class="start-time" />
       </div>
       <div>
           <label>To</label>
           <input type="text" class="stop-time" />
       </div>
       <div>
           <input type="button" value="Select" />
       </div>
    </div>
    <div>
       <video preload="auto" class="vjs-tech" src="http://www.w3schools.com/html/mov_bbb.mp4">
           <source src="http://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
       </source></video>
    </div>
    <div>
       <div>
           <label>From</label>
           <input type="text" class="start-time-video1" />
       </div>
       <div>
           <label>To</label>
           <input type="text" class="stop-time-video1" />
       </div>
       <div>
           <input type="button" value="Select" />
       </div>
    </div>
    <div>
       <input type="button" value="Cut!" />
    </div>
    <div></div>




       (function ($) {
       $('#cut-video').on('click', function () {
           var video = videojs("example_video_1");
           var startTime = $('.start-time');
           var stopTime = $('.stop-time');
           video.currentTime(startTime.val());
           video.play();
           video.on('timeupdate', function (e) {
               if (video.currentTime() >= stopTime.val()) {
                   video.pause();
               }
           });

       });

       $('#cut-video1').on('click', function () {
           var video = videojs("example_video_2");
           var startTime = $('.start-time-video1');
           var stopTime = $('.stop-time-video1');
           video.currentTime(startTime.val());
           video.play();
           video.on('timeupdate', function (e) {
               if (video.currentTime() >= stopTime.val()) {
                   video.pause();
               }
           });
       });

       $('#cut').on('click', function () {
           var video = $('<video></video>');
           video.attr('id', 'result1');
           video.addClass('video-js vjs-default-skin');
           video.attr('width', 300);

           var source = $('<source></source>');
           source.attr('src', 'http://www.w3schools.com/html/mov_bbb.mp4');
           source.attr('type', 'video/mp4');

           video.append(source);
           $('#result').append(video);

           var player = videojs("result1");
           var startTime = $('.start-time');
           var stopTime = $('.stop-time');

           player.currentTime(startTime.val());
           player.play();

           player.on('timeupdate', function (e) {
               if (player.currentTime() >= stopTime.val()) {
                   player.src({
                       "type": "video/mp4",
                       src: 'http://www.w3schools.com/html/mov_bbb.mp4'
                   });
                   var startTime1 = $('.start-time-video1');
                   var stopTime1 = $('.stop-time-video1');

                   player.currentTime(startTime1.val());
                   player.play();
                   player.on('timeupdate', function (e1) {
                       if (player.currentTime() >= stopTime1.val()) {
                           player.pause();
                       }
                   });
               }
           });




       });

    })(jQuery);
  • correctly encode .mov file for various browsers and devices

    7 décembre 2015, par khinester

    i have the following template, which uses node-blade that is similar to jade

    .show-for-medium-up
     -var poster_url = '//' + settings.cloudFrontDomain + '/images/poster/2015_2016.jpeg'
     .fullwidth
       .about-page
         video.video-js.vjs-default-skin.vjs-playing.vjs-big-play-centered(id="home" poster=poster_url)
           source(src="//#{settings.cloudFrontDomain}/assets/videos/home/winter_2015/SD_720.webm" type='video/webm')
           source(src="//#{settings.cloudFrontDomain}/assets/videos/home/winter_2015/SD_720.mp4" type='video/mp4')
           source(src="//#{settings.cloudFrontDomain}/assets/videos/home/winter_2015/SD_720.ogg" type='video/ogg')
           source(src="//#{settings.cloudFrontDomain}/assets/videos/home/winter_2015/SD_360.m4v" type='video/mp4')
       :javascript
         videojs("home", {
             preload: 'auto',
             autoplay: true,
             loop: true,
             fluid: true,
             aspectRatio: '16:9',
             controls: false
           });

    i have encoded the videos using ffmpeg using the following commands

    ffmpeg -i $s.mov -vcodec libvpx -acodec libvorbis -aq 5 -ac 2 -qmax 25 -b 614400 -s 1280x720 $s-SD_720.webm
    ffmpeg -i $s.mov -c:v libtheora -c:a libvorbis -q:v 6 -q:a 5 $s-SD_720.ogg
    ffmpeg -i $s.mov -vcodec h264 -acodec mp2 $s-SD_720.mp4

    the original video is

    ffprobe ../HD.mov
    ffprobe version N-76639-g58d32c0 Copyright (c) 2007-2015 the FFmpeg developers
     built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04)
     configuration: --prefix=/home/khine/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/khine/ffmpeg_build/include --extra-ldflags=-L/home/khine/ffmpeg_build/lib --bindir=/home/khine/bin --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree
     libavutil      55.  5.100 / 55.  5.100
     libavcodec     57. 15.100 / 57. 15.100
     libavformat    57. 14.100 / 57. 14.100
     libavdevice    57.  0.100 / 57.  0.100
     libavfilter     6. 15.100 /  6. 15.100
     libswscale      4.  0.100 /  4.  0.100
     libswresample   2.  0.101 /  2.  0.101
     libpostproc    54.  0.100 / 54.  0.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '../HD.mov':
     Metadata:
       major_brand     : qt  
       minor_version   : 537199360
       compatible_brands: qt  
       creation_time   : 2015-12-02 22:35:26
     Duration: 00:01:19.20, start: 0.000000, bitrate: 55745 kb/s
       Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 55733 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 25 tbn, 50 tbc (default)
       Metadata:
         creation_time   : 2015-12-02 22:35:26
         handler_name    : Apple Alias Data Handler
         encoder         : H.264
         timecode        : 00:03:02:19
       Stream #0:1(eng): Data: none (tmcd / 0x64636D74) (default)
       Metadata:
         creation_time   : 2015-12-02 23:44:32
         handler_name    : Apple Alias Data Handler
         timecode        : 00:03:02:19

    what is the correct way to reduce the size to use on the web and also for use on mobile devices without flash.

    any advice much appreciated