Recherche avancée

Médias (91)

Autres articles (97)

  • Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs

    12 avril 2011, par

    La manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
    Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras.

  • Possibilité de déploiement en ferme

    12 avril 2011, par

    MediaSPIP peut être installé comme une ferme, avec un seul "noyau" hébergé sur un serveur dédié et utilisé par une multitude de sites différents.
    Cela permet, par exemple : de pouvoir partager les frais de mise en œuvre entre plusieurs projets / individus ; de pouvoir déployer rapidement une multitude de sites uniques ; d’éviter d’avoir à mettre l’ensemble des créations dans un fourre-tout numérique comme c’est le cas pour les grandes plate-formes tout public disséminées sur le (...)

  • Librairies et logiciels spécifiques aux médias

    10 décembre 2010, par

    Pour un fonctionnement correct et optimal, plusieurs choses sont à prendre en considération.
    Il est important, après avoir installé apache2, mysql et php5, d’installer d’autres logiciels nécessaires dont les installations sont décrites dans les liens afférants. Un ensemble de librairies multimedias (x264, libtheora, libvpx) utilisées pour l’encodage et le décodage des vidéos et sons afin de supporter le plus grand nombre de fichiers possibles. Cf. : ce tutoriel ; FFMpeg avec le maximum de décodeurs et (...)

Sur d’autres sites (7748)

  • nutenc/write_index : warn if 2 consecutive keyframes have the same PTS and discard...

    22 décembre 2013, par Michael Niedermayer
    nutenc/write_index : warn if 2 consecutive keyframes have the same PTS and discard the 2nd
    

    This fixes an assertion failure and regression and restores previous behaviour
    Fixes Ticket3197

    An alternative would be to fail hard in this case and refuse to mux such data.

    Signed-off-by : Michael Niedermayer <michaelni@gmx.at>

    • [DH] libavformat/nutenc.c
  • How to implement live video streaming with ffmpeg without using WebRTC ?

    8 août 2024, par Artem

    Following up on my previous question, I'd like to inquire about alternative methods for live video streaming using ffmpeg (WebRTC is not an option due to certain constraints I prefer not to discuss here).

    &#xA;

    Context :

    &#xA;

    I have a Go application where a goroutine launches ffmpeg to process a video stream, which is then delivered to the main goroutine via a chan []byte. I tried using WebSocket, but encountered issues as described in the previous question. HLS also didn't work well due to significant latency and artifacts like green squares on the video.

    &#xA;

    Based on a comment in the previous question, I attempted to stream the video via a simple GET request. Here's the Go handler I implemented :

    &#xA;

    func stream(helperApp agent.Helper) func(rw http.ResponseWriter, rr *http.Request) {&#xA;   a := atomic.Bool{}&#xA;   return func(rw http.ResponseWriter, rr *http.Request) {&#xA;      if !a.CAS(false, true) {&#xA;         http.Error(rw, "already running", http.StatusInternalServerError)&#xA;         return&#xA;      }&#xA;&#xA;      rw.Header().Set("Access-Control-Allow-Origin", "*")&#xA;      rw.Header().Set("Content-Type", "video/mp2t")&#xA;&#xA;      out := make(chan []byte)&#xA;&#xA;      // create StreamParam&#xA;      go ScreenCaptureForLiveStream(StreamParam, out) // ffmpeg process starts inside&#xA;&#xA;      r, w := io.Pipe()&#xA;      go func() {&#xA;         for data := range out {&#xA;            w.Write(data)&#xA;            fmt.Println(len(data))&#xA;         }&#xA;      }()&#xA;      io.Copy(rw, r)&#xA;   }&#xA;}&#xA;&#xA;

    &#xA;

    On the client side (HTML) :

    &#xA;

    <video muted="muted" src="http://localhost:8080/stream" controls="controls"></video>&#xA;

    &#xA;

    In the browser console, I can see data being received, but the video doesn't play.

    &#xA;

    FFmpeg is executed with these parameters :

    &#xA;

    -loglevel error -f avfoundation -framerate 5 -capture_cursor 1 -capture_mouse_clicks 1 -i 1 -c:v libx264 -pix_fmt yuv420p -vf pad=&#x27;ceil(iw/2)*2:ceil(ih/2)*2&#x27; -threads 0 -preset veryfast -bf 2 -f mpegts pipe:1&#xA;&#xA;

    &#xA;

    For validation, I ran :

    &#xA;

    ffmpeg -i http://localhost:8080/stream -c copy out.mp4&#xA;&#xA;

    &#xA;

    The video was successfully saved and plays.

    &#xA;

    Question :&#xA;What alternative methods exist to implement live video streaming with ffmpeg, aside from WebRTC ? Why does the current approach of streaming video via HTTP GET request not function correctly in the browser, and how can this be resolved ?

    &#xA;

  • libdash mpd parser integration with custom player

    19 novembre 2016, par Raj

    I have written a multimedia player using ffmpeg and qt-framework. And currently I support local file playback and progressive download playback in my player. Now I want to add support for mpeg-dash vod stream playback. I thought of using libdash opensource dash library. But after so much of googling I couldn’t find any API or developer documentation regarding the same.

    Also another issue is libdash has integrated network module. But I want only mpd parser to be integrated and I have my own network module for downloading. I couln’t find any doxygen and usage documentation for libdash.

    I need help in these :

    1. Can you anyone point me to any developer documentation available for
      libdash ?
    2. Is there any alternative library for libdash ?