Recherche avancée

Médias (1)

Mot : - Tags -/MediaSPIP

Autres articles (50)

  • Ajouter notes et légendes aux images

    7 février 2011, par

    Pour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
    Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
    Modification lors de l’ajout d’un média
    Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

Sur d’autres sites (6268)

  • Can't use -shortest parameter when using multiple audio streams ffmpeg

    20 février 2024, par scob_

    I want to add a second audio stream to an mp4 video file already containing sound.

    


    The second audio stream is a little longer than the video, but I want the final product to be the same length.

    


    I tried using the -shortest feature but the second audio stream I wanted to add want not audible at all.

    


    I think -shortest only allows for one stream, so what can I do to keep the video the same length and keep both audio streams ?

    


    Here is the full command I used before asking this question :

    


    ffmpeg -i input.mp4 -i input.m4a -map 0:v -map 0:a -shortest output.mp4


    


    Output of ffmpeg -i output.mp4 :

    


    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.45.100
  Duration: 00:00:32.08, start: 0.000000, bitrate: 1248 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 480x600 [SAR 1:1 DAR 4:5], 1113 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : SoundHandler


    


  • Is it possible to send a temporary slate (image or video) into a running Azure Live Event RTMP-stream ?

    15 novembre 2020, par Brian Frisch

    I'm currently building a video streaming app which leverages Azure Media Services Live Events.

    


    It consists of :

    


      

    1. a mobile app that can stream live video and.
    2. 


    3. a web client that plays the live event video.
    4. 


    5. a producer screen with controls to start and stop the web client access to the video.
    6. 


    7. a server that handles various operations around the entire system
    8. 


    


    It's working very well, but I would like to add a feature that would enable the producer to add some elegance to the experience. Therefore I'm trying to get my head around how I can enable the producer be able to switch the incoming source of the stream to a pre-recorded video or event a still image at any point during the recording, and also to switch back to live-video. A kill-switch of some kind, that would cover waiting-time if there's technical difficulties on the set, and it could also be used for pre-/post-roll branding slates when introing and outroing a video event. I would like this source switch to be embedded in the video stream (also so it would be possible to get this into the final video-product if I need it in an archive for later playback)

    


    I'm trying to do it in a way where the producer can set a timestamp for when the video override should come in, and when it should stop. The I want to have my server respond to these timestamps and send the instructions over RTMP to the Azure Live Event. Is it possible to send such an instruction ("Hey, play this video-bit/show this image in the stream for x-seconds") in the RTMP-protocol ? I've tried to figure it out, and I've read about SCTE-35 markers and such, but I have not been able to find any examples on how to do it, so I'm a bit stuck.

    


    My plan-B is to make it possible to stream an image from the mobile application that already handles the live video-stream, but I'm initially targeting an architecture where the mobile app is unaware of anything else than live streaming, and this override switch should preferably be handled by the server, which is a firebase functions setup.

    


    If you are able to see other ways of doing it, I'm all ears.

    


    I've already tried to build a ffmpeg method that listens to updates to the producer-set state, and then streams an image to the same RTMP-url that the video goes to from the mobile app. But it only works when the live video isn't already streaming - it seems like I cannot take over a RTMP-stream when it's already running.

    


  • fluent-ffmpeg sometimes crashes entire amazon ec2 instance

    24 octobre 2020, par Mick Marsden

    I have a nodejs application where I'm using fluent-ffmpeg to convert captured video files via the html <input file="file" /> tag to mp4 format. I'm also using ffmpeg-static to provide static binaries for fluent-ffmpeg's file path. But in order for the conversion to happen, I upload the captured video file via multer, and when that completes, multer passes the video url to fluent-ffmpeg. The code looks like this :

    &#xA;

    app.post("/upload-and-convert", async function(req, res) {&#xA;&#xA;   var filepath;&#xA;   var path;&#xA;&#xA;    try {&#xA;&#xA;        const upload = util.promisify(uploadVideo());&#xA;&#xA;        await upload(req, res);&#xA;&#xA;        console.log(req.file);&#xA;        console.log("Success");&#xA;        filepath = req.file.filename;&#xA;        console.log(filepath);&#xA;        path = &#x27;./public/uploads/&#x27; &#x2B; filepath;&#xA;        console.log(path);&#xA;&#xA;    } catch (e) {&#xA;       let response_json = {&#xA;                success: false,&#xA;        };&#xA;        res.setHeader("content-type", "application/json");&#xA;        res.send(response_json);&#xA;    }&#xA;&#xA;    if(path != undefined)&#xA;    {&#xA;&#xA;        console.log("Path not undefined, going to start FFMPEG");&#xA;        ffmpeg(path)&#xA;        .format(&#x27;mp4&#x27;)&#xA;        .size(&#x27;720x720&#x27;).autopad()&#xA;        .on(&#x27;end&#x27;, function() {&#xA;            console.log(&#x27;file has been converted successfully&#x27;);&#xA;        })&#xA;        .on(&#x27;error&#x27;, function(err) {&#xA;            console.log(&#x27;an error happened: &#x27; &#x2B; err.message);&#xA;            let response_json = {&#xA;                success: false,&#xA;            };&#xA;            res.setHeader("content-type", "application/json");&#xA;            res.send(response_json);&#xA;        })&#xA;        .save(&#x27;./public/uploads/video.mp4&#x27;)&#xA;        .on(&#x27;end&#x27;, function() {&#xA;            console.log(&#x27;file has been saved successfully&#x27;);&#xA;            let response_json = {&#xA;                success: true,&#xA;                fileURL: &#x27;https://websiteurl/uploads/video.mp4&#x27;&#xA;            };&#xA;            res.setHeader("content-type", "application/json");&#xA;            res.send(response_json);&#xA;        })&#xA;&#xA;    } else&#xA;    {&#xA;        let response_json = {&#xA;            success: false,&#xA;        };&#xA;        res.setHeader("content-type", "application/json");&#xA;        res.send(response_json);&#xA;    }&#xA;});&#xA;

    &#xA;

    Most times, the code runs fine and returns the fileURL as intended. Sometimes however, it completely crashes the amazon ec2 instance, and requires the instance be rebooted before it works again. I've checked the logs, and the server-error logs output no issues. The server-out logs when it crashes outputs the final console log before ffmpeg starts :

    &#xA;

            console.log("Path not undefined, going to start FFMPEG");&#xA;

    &#xA;

    The moment it reaches the ffmpeg(path), it goes down. It doesn't log any error, even though I have included error handling on the operation.

    &#xA;

    This has stumped me for days. I cannot figure out the commonality to explain why sometimes it crashes, and sometimes it does not. Note that this even happened before I started using the ffmpeg-static package. My node version is 12.19.0, and ffmpeg-static currently installs ffmpeg at version 4.3.1 if I recall correctly.

    &#xA;

    If anyone could help that would be great.

    &#xA;