Recherche avancée

Médias (0)

Mot : - Tags -/flash

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (39)

  • 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 (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

Sur d’autres sites (5774)

  • Anomalie #4235 : un cache sessionné contamine les caches non sessionnés suivant

    29 novembre 2018, par jluc -

    A) Dans le bug de base tel qu’il est décrit, le pb c’est avec les INCLURE dynamiques (le point 2/ que tu évoques). Ces inclure dynamiques passent par recuperer_fond (et pas les inclusions statiques).

    J’ai donc un fix dans recuperer_fond :

    - sauvegarde l’état de la globale cache_utilise_session juste avant l’appel de evaluer_fond

    1. <span class="CodeRay">        <span class="local-variable">$sav_cache_utilise_session</span> = (<span class="predefined">isset</span>(<span class="predefined">$GLOBALS</span>[<span class="string"><span class="delimiter">'</span><span class="content">cache_utilise_session</span><span class="delimiter">'</span></span>]) ? <span class="predefined">$GLOBALS</span>[<span class="string"><span class="delimiter">'</span><span class="content">cache_utilise_session</span><span class="delimiter">'</span></span>] : <span class="predefined-constant">null</span>);
    2.         <span class="predefined">unset</span>(<span class="predefined">$GLOBALS</span>[<span class="string"><span class="delimiter">'</span><span class="content">cache_utilise_session</span><span class="delimiter">'</span></span>]);
    3.         <span class="local-variable">$page</span> = evaluer_fond(<span class="local-variable">$f</span>, <span class="local-variable">$contexte</span>, <span class="local-variable">$connect</span>);
    4.  
    5. </span>

    Télécharger


    C’est simple et efficace : on arrête la contamination des squelettes inclus dynamiquement après levage du cache (évoquée dans ton 3/).

    - puis restauration de létat de la globale cache_utilise_session à la fin de la séquence d’instructions (et aprés appel du pipeline recuperer_fond et de encoder_contexte_ajax - on sait jamais)

    1. <span class="CodeRay">        <span class="predefined">$GLOBALS</span>[<span class="string"><span class="delimiter">'</span><span class="content">cache_utilise_session</span><span class="delimiter">'</span></span>] = (<span class="predefined">isset</span>(<span class="local-variable">$sav_cache_utilise_session</span>) ? <span class="local-variable">$sav_cache_utilise_session</span> : <span class="predefined-constant">null</span>);
    2.     } // fin du foreach ($fond)
    3.     $GLOBALS['_INC_PUBLIC']--;
    4.  
    5. </span>

    Télécharger

    Est-on d’accord que les INCLURE DYNAMIQUES, et les recuperer_fond de manière générale, doivent toujours être faits de manière vierge de globale cache_utilise_session ?
    Dans ce cas, ce fix peut à mon avis être commité.
    Il règle le problème d’explosion du cache et donc de perte du cache.

    Je le teste actuellement sans problème détecté et je constate avec XRay une énorme diminution des caches sessionnés !

    Y aurait il des situations particulières à tester ?

    B/ Je me demande s’il n’y a pas un autre problème (indépendant de ce fix) dans le cas d’une suite de 3 inclusions statiques, par exemple, dont la 2ème est sessionnée. À vérifier.

  • Video duration is the double of what it should be

    12 juin 2019, par lulas

    I was trying to record my computer screen, for that I am using Accord.

    I had everything working fine with the Accord version 3.8.0.0, but when I upgraded to the version 3.8.2.0-alpha my recording videos are slow down, and they take approximately the double to finish.

    So a 10 second video actually takes 20 seconds to play (in the video player the duration of the video is also 10 seconds).

    I searched in google and didn’t managed to find anything usefull. Probably due to the alpha version of the release.

    I managed to find a project from one of the maintainers of the Accord project that uses this 3.8.2.0-alpha version : https://github.com/cesarsouza/screencast-capture

    I downloaded the zip file, extracted the project, built the project, fixed a compilation error (change a Dispose() to Stop()) and then ran the application, but the problem still exists... the generated video files are still slow down...

    The main methods of my code with the 3.8.2.0-alpha version are these (they were taken from the previous project I downloaded) :

    public void StartRecording()
    {
       if (IsRecording || !IsPlaying)
           return;

       int height = area.Height;
       int width = area.Width;
       Rational framerate = new Rational(1000, screenStream.FrameInterval);
       int videoBitRate = 1200 * 1000;

       OutputPath = Path.Combine(main.CurrentDirectory, fileName);
       RecordingStartTime = DateTime.MinValue;
       videoWriter = new VideoFileWriter();
       videoWriter.BitRate = videoBitRate;
       videoWriter.FrameRate = framerate;
       videoWriter.Width = width;
       videoWriter.Height = height;
       videoWriter.VideoCodec = VideoCodec.H264;
       videoWriter.VideoOptions["crf"] = "18";
       videoWriter.VideoOptions["preset"] = "veryfast";
       videoWriter.VideoOptions["tune"] = "zerolatency";
       videoWriter.VideoOptions["x264opts"] = "no-mbtree:sliced-threads:sync-lookahead=0";

       videoWriter.Open(OutputPath);

       HasRecorded = false;
       IsRecording = true;
    }

    void VideoPlayer_NewFrameReceived(object sender, Accord.Video.NewFrameEventArgs eventArgs)
    {
       DateTime currentFrameTime = eventArgs.CaptureFinished;

       // Encode the last frame at the same time we prepare the new one
       Task.WaitAll(
           Task.Run(() =>
           {
               lock (syncObj) // Save the frame to the video file.
               {
                   if (IsRecording)
                   {
                       if (RecordingStartTime == DateTime.MinValue)
                           RecordingStartTime = DateTime.Now;

                       TimeSpan timestamp = currentFrameTime - RecordingStartTime;
                       if (timestamp > TimeSpan.Zero)
                           videoWriter.WriteVideoFrame(this.lastFrame, timestamp, this.lastFrameRegion);
                   }
               }
           }),

           Task.Run(() =>
           {
               // Adjust the window according to the current capture
               // mode. Also adjusts to keep even widths and heights.
               CaptureRegion = AdjustWindow();

               // Crop the image if the mode requires it
               if (CaptureMode == CaptureRegionOption.Fixed ||
                   CaptureMode == CaptureRegionOption.Window)
               {
                   crop.Rectangle = CaptureRegion;

                   eventArgs.Frame = croppedImage = crop.Apply(eventArgs.Frame, croppedImage);
                   eventArgs.FrameSize = crop.Rectangle.Size;
               }

               //// Draw extra information on the screen
               bool captureMouse = Settings.Default.CaptureMouse;
               bool captureClick = Settings.Default.CaptureClick;
               bool captureKeys = Settings.Default.CaptureKeys;

               if (captureMouse || captureClick || captureKeys)
               {
                   cursorCapture.CaptureRegion = CaptureRegion;
                   clickCapture.CaptureRegion = CaptureRegion;
                   keyCapture.Font = Settings.Default.KeyboardFont;

                   using (Graphics g = Graphics.FromImage(eventArgs.Frame))
                   {
                       g.CompositingQuality = CompositingQuality.HighSpeed;
                       g.SmoothingMode = SmoothingMode.HighSpeed;

                       float invWidth = 1; // / widthScale;
                       float invHeight = 1; // / heightScale;

                       if (captureMouse)
                           cursorCapture.Draw(g, invWidth, invHeight);

                       if (captureClick)
                           clickCapture.Draw(g, invWidth, invHeight);

                       if (captureKeys)
                           keyCapture.Draw(g, invWidth, invHeight);
                   }
               }
           })
       );

       // Save the just processed frame and mark it to be encoded in the next iteration:
       lastFrame = eventArgs.Frame.Copy(lastFrame);

       lastFrameRegion = new Rectangle(0, 0, eventArgs.FrameSize.Width, eventArgs.Frame.Height);
    }

    Anyone knows what might be problem causing this slow down ?

    EDIT :

    I think I managed to find my problem :

    pts:4.032000e+003   pts_time:0.252  dts:2.016000e+003   dts_time:0.126  duration:6.720000e+002  duration_time:0.042 stream_index:0
    pts:6.720000e+003   pts_time:0.42   dts:3.360000e+003   dts_time:0.21   duration:6.720000e+002  duration_time:0.042 stream_index:0
    pts:1.075200e+004   pts_time:0.672  dts:5.376000e+003   dts_time:0.336  duration:6.720000e+002  duration_time:0.042 stream_index:0
    pts:1.344000e+004   pts_time:0.84   dts:6.720000e+003   dts_time:0.42   duration:6.720000e+002  duration_time:0.042 stream_index:0
    pts:1.612800e+004   pts_time:1.008  dts:8.064000e+003   dts_time:0.504  duration:6.720000e+002  duration_time:0.042 stream_index:0
    pts:1.881600e+004   pts_time:1.176  dts:9.408000e+003   dts_time:0.588  duration:6.720000e+002  duration_time:0.042 stream_index:0
    pts:2.150400e+004   pts_time:1.344  dts:1.075200e+004   dts_time:0.672  duration:6.720000e+002  duration_time:0.042 stream_index:0
    pts:2.553600e+004   pts_time:1.596  dts:1.276800e+004   dts_time:0.798  duration:6.720000e+002  duration_time:0.042 stream_index:0
    pts:2.822400e+004   pts_time:1.764  dts:1.411200e+004   dts_time:0.882  duration:6.720000e+002  duration_time:0.042 stream_index:0
    pts:3.091200e+004   pts_time:1.932  dts:1.545600e+004   dts_time:0.966  duration:6.720000e+002  duration_time:0.042 stream_index:0
    pts:3.494400e+004   pts_time:2.184  dts:1.747200e+004   dts_time:1.092  duration:6.720000e+002  duration_time:0.042 stream_index:0
    pts:3.897600e+004   pts_time:2.436  dts:1.948800e+004   dts_time:1.218  duration:6.720000e+002  duration_time:0.042 stream_index:0
    pts:4.166400e+004   pts_time:2.604  dts:2.083200e+004   dts_time:1.302  duration:6.720000e+002  duration_time:0.042 stream_index:0
    pts:4.704000e+004   pts_time:2.94   dts:2.352000e+004   dts_time:1.47   duration:6.720000e+002  duration_time:0.042 stream_index:0
    pts:5.107200e+004   pts_time:3.192  dts:2.553600e+004   dts_time:1.596  duration:6.720000e+002  duration_time:0.042 stream_index:0

    The PTS is always the double of DTS, that’s why the video is presented in a slow down way.

    Unfortunately I have no idea why this happens... Anyone has any clue ?

  • Mac build ffmpeg for Android

    23 avril 2019, par Liu Silong

    I want to compile ffmpeg on my Mac. The ndk version is r19c and the FFmpeg version is 4.1.3. The build script is copied from this article. But there are some problems when compiling, as follows:

    Thanks!!!