Recherche avancée

Médias (91)

Autres articles (30)

  • La file d’attente de SPIPmotion

    28 novembre 2010, par

    Une file d’attente stockée dans la base de donnée
    Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
    Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Contribute to documentation

    13 avril 2011

    Documentation is vital to the development of improved technical capabilities.
    MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
    To contribute, register to the project users’ mailing (...)

Sur d’autres sites (7078)

  • FFmpeg NaCl module avformat_open_input (on rtsp stream) returns -5 : I/O error

    8 janvier 2016, par Taimoor Alam

    I want to create an RTSP player in Chrome PNaCl.

    I have successfully built the ffmpeg naclport including the following networking flags in the build.sh file for the ffmpeg NaCl port.

    —enable network —enable-protocols —enable-demuxer=rtsp —enable-demux=rtp —enable-demuxer=sdp —enable-decoder=h264

    Furthermore, I have successfully coded and the linked the ffmpeg NaCl port in my own PNaCl module. I have included the following network permissions in the manifest.json file :

    "permissions": [
    {
       "socket": [
           "tcp-listen:*:*",
           "tcp-connect:*:*",
           "resolve-host:*:*",
           "udp-bind:*:*",
           "udp-send-to:*:*"
       ],
    }

    Now once I run the following code, in PNaCl, the avformat_open_input(...) returns -5 or I/O Error :

       AVFormatContext* formatContext = avformat_alloc_context();

       av_register_all();

       avformat_network_init();

       const char * stream_path = "rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov";

       int result = avformat_open_input(&formatContext, stream_path ,NULL,NULL);

       if(result< 0){

           PostMessage("input not opened, result: ");

           PostMessage(result);

       }else{

         PostMessage(std::string("input successfully opened"));

       }

    What am I possibly doing wrong, and why can’t the PNaCl module access the RTSP stream ?

    PS. This is a similar question, but it gives no definitive answer.

  • mergeToFile returns null

    4 avril 2020, par Andrew Roberts

    I am trying to use fluent ffmpeg to merge a bunch of audio files into a single file, yet I keep recieving an error that the output is null/ doesn't exist.
My code :

    



         var ffmpeg = require("fluent-ffmpeg");
     var command = ffmpeg();
     for (var inputPath of filePaths) {
        command.addInput(inputPath);
        console.log("Added path:" + inputPath);
    }
    command
        .on('error', (err) => {
            console.log('An error occurred: ' + err.message);
        })
        .on('end', () => {
            console.log('Merging finished !');
        })
        .mergeToFile(path.join(os.tmpdir(), "result.mp3"), os.tmpdir());


    



    Error code :

    



    


    Read Error : Error : ENOENT : no such file or directory, open '/tmp/result.mp3'

    


    


  • JavaCV - How to handle cases where FFmpegFrameFilter.pull() returns null

    20 juin 2018, par Gensoukyou1337

    Currently I have the basic workflow of pulling frames from one video using FFmpegFrameGrabber, filtering them using an FFmpegFrameFilter, and recording them in an FFmpegFrameRecorder, as follows :

               framesLen = vCap.getLengthInFrames();
               try {
                   Frame f;
                   for(int i = 0; i < framesLen; i++) {
                       f = vCap.grab();
                       if(f != null) {
                           vFilter.push(f);
                           Frame filtered;// = vFilter.pull();
                           vRec.setFrameNumber(i);
                           while((filtered = vFilter.pull()) != null) {
                               Log.i("ffmpeg_recorder", "processing frame "+i +" "+f+" "+filtered);
                               vRec.record(filtered);
                           }
                           i++;
                       }
                   }
               } catch (FFmpegFrameGrabber.Exception e) {
                   exception = e;
               } catch (FFmpegFrameRecorder.Exception e) {
                   exception = e;
               } catch (FFmpegFrameFilter.Exception e) {
                   exception = e;
               }

               try {
                   vCap.flush();
                   vCap.release();
                   vRec.stop();
                   vRec.release();
               } catch (FFmpegFrameGrabber.Exception e) {
                   exception = e;
               } catch (FFmpegFrameRecorder.Exception e) {
                   exception = e;
               }

               if (exception != null) {
                   Log.e("ffmpeg_exception", exception.getMessage()+"");
                   return null;
               } else {
                   return outFile+"";
               }

    My current problem is that sometimes FFmpegFrameFilter.pull() would return null in that loop, ending with vRec recording a null frame, causing the final video to get stuck for a few seconds in the same frame.

    What’s happening in the FFmpegFrameFilter when its pull() returns null ? Is it the case when I try to pull() when it hasn’t finished processing the current frame ? If that’s so, should I just put an empty while loop like this ?

    ...
    while((filtered = vFilter.pull()) == null) {/*block until it's NOT null*/}
    vRec.record(filtered);
    ...

    EDIT :

    OK, my proposed solution above doesn’t work - it just goes into an infinite loop. Though I really don’t want to skip those frames.