Recherche avancée

Médias (0)

Mot : - Tags -/objet éditorial

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

Autres articles (109)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

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

Sur d’autres sites (14834)

  • tcp : set socket buffer sizes before listen/connect/accept

    9 janvier 2017, par Joel Cunningham
    tcp : set socket buffer sizes before listen/connect/accept
    

    From e24d95c0e06a878d401ee34fd6742fcaddeeb95f Mon Sep 17 00:00:00 2001
    From : Joel Cunningham <joel.cunningham@me.com>
    Date : Mon, 9 Jan 2017 13:37:51 -0600
    Subject : [PATCH] tcp : set socket buffer sizes before listen/connect/accept

    Attempting to set SO_RCVBUF and SO_SNDBUF on TCP sockets after connection
    establishment is incorrect and some stacks ignore the set call on the socket at
    this point. This has been observed on MacOS/iOS. Windows 7 has some peculiar
    behavior where setting SO_RCVBUF after applies only if the buffer is increasing
    from the default while decreases are ignored. This is possibly how the incorrect
    usage has gone unnoticed

    Unix Network Programming Vol. 1 : The Sockets Networking API (3rd edition, seciton 7.5) :

    "When setting the size of the TCP socket receive buffer, the ordering of the
    function calls is important. This is because of TCP’s window scale option,
    which is exchanged with the peer on SYN segments when the connection is
    established. For a client, this means the SO_RCVBUF socket option must be
    set before calling connect. For a server, this means the socket option must
    be set for the listening socket before calling listen. Setting this option
    for the connected socket will have no effect whatsoever on the possible window
    scale option because accept does not return with the connected socket until
    TCP’s three-way handshake is complete. This is why the option must be set on
    the listening socket. (The sizes of the socket buffers are always inherited from
    the listening socket by the newly created connected socket)"

    Signed-off-by : Joel Cunningham <joel.cunningham@me.com>
    Signed-off-by : Michael Niedermayer <michael@niedermayer.cc>

    • [DH] libavformat/tcp.c
  • FFmpeg -> JSMpeg Websocket Closes Repeatedly

    13 mars 2018, par Kyle Martin

    I’m trying to create a fairly simple streaming server/site. Here’s the current flow :

    • OBS streams to an RTMP URL
    • Nginx accepts the RTMP stream and uses exec-push to have FFmpeg pick up the stream and transcode it
    • FFmpeg transcodes the stream and outputs it to a JSMpeg application, which displays the stream on a webpage.

    When I have my exec_push statement as follows, everything seems to work perfectly, except the browser says Possible garbage data. Skipping. on every frame it receives :

    exec_push /usr/bin/ffmpeg -re -i rtmp://127.0.0.1:1935/$app/$name -f mpeg1video  http://localhost:8080/supersecret;

    This behavior is understandable, because JSMpeg must receive MPEG-TS data, not MPEG1 data. It sees the MPEG1 frames and thinks they’re garbage.

    So through some online research, I found this :

    exec_push /usr/bin/ffmpeg -re -i rtmp://127.0.0.1:1935/$app/$name -c:v copy -c:a copy -f mpegts http://localhost:8080/supersecret;

    Supposedly, this is supposed to transcode my RTMP stream into an MPEG-TS format, which should be compatible with JSMpeg.

    However, with the second version of the command, my FFmpeg -> JSMpeg stream keeps connecting and disconnecting, connecting and disconnecting, and so on. This behavior is observed in terminal :

    Stream Connected: ::1:40208
    close
    Stream Connected: ::1:40212
    close
    Stream Connected: ::1:40216
    close
    Stream Connected: ::1:40220
    close
    Stream Connected: ::1:40224
    close
    ...

    What would cause this ? I am pretty certain the issue is in my exec_push command. OBS is perfectly content, which tells me that the stream is making it to the server, and if I do a push, I can do a test push to Ustream just fine, which tells me that Nginx is at least processing the stream with some reasonable degree of success.


    Disclaimer : I have no idea what I’m talking about. Everything I know about FFmpeg and JSMpeg/Node is from snippets of code that I found online.

  • ffmpeg/ffprobe input as buffer stream, get an error always

    13 décembre 2023, par hhk

    &#xA;

    Code to reproduce

    &#xA;

    I attached the test.gif file on https://github.com/fluent-ffmpeg/node-fluent-ffmpeg/assets/122068264/e1f3aa31-5386-4dab-a409-9a224e0610fe

    &#xA;

    &#xA;const ffprobeInstaller = require(&#x27;@ffprobe-installer/ffprobe&#x27;);&#xA;const ffmpeg = require(&#x27;fluent-ffmpeg&#x27;);&#xA;const { Readable } = require(&#x27;stream&#x27;);&#xA;const fs = require(&#x27;fs&#x27;);&#xA;&#xA;&#xA;(async () => {&#xA;&#xA;    const buffer = fs.readFileSync(&#x27;test.gif&#x27;);&#xA;    let readableStream = new Readable();&#xA;    readableStream._read = () => { };&#xA;    readableStream.push(buffer);&#xA;    readableStream.push(null);&#xA;&#xA;    // console.log(ffprobe.path, ffprobe.version);&#xA;    ffmpeg.setFfprobePath(ffprobeInstaller.path);&#xA;    let metadata = await get_video_meta_data(readableStream);&#xA;&#xA;    async function get_video_meta_data(stream) {&#xA;        return new Promise((resolve, reject) => {&#xA;            new ffmpeg()&#xA;                .input(stream)&#xA;                .ffprobe((err, data) => {&#xA;                    // console.log(err);&#xA;                });&#xA;            resolve();&#xA;        });&#xA;    }&#xA;})();&#xA;&#xA;&#xA;&#xA;

    &#xA;

    (note : if the problem only happens with some inputs, include a link to such an input file)

    &#xA;

    Expected results

    &#xA;

    data should include duration but empty.

    &#xA;

    Observed results

    &#xA;

    data is empty and err happens.&#xA;Here is error data :

    &#xA;

    &#xA;  libavutil      58.  1.100 / 58.  1.100&#xA;  libavcodec     60.  2.100 / 60.  2.100&#xA;  libavformat    60.  2.100 / 60.  2.100&#xA;  libavdevice    60.  0.100 / 60.  0.100&#xA;  libavfilter     9.  1.100 /  9.  1.100&#xA;  libswscale      7.  0.100 /  7.  0.100&#xA;  libswresample   4.  9.100 /  4.  9.100&#xA;  libpostproc    57.  0.100 / 57.  0.100&#xA;pipe:0: Input/output error&#xA;

    &#xA;

    I only need the metadta for the input gif file. specifically, duration field.

    &#xA;