Recherche avancée

Médias (0)

Mot : - Tags -/api

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

Autres articles (95)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

  • Monitoring de fermes de MediaSPIP (et de SPIP tant qu’à faire)

    31 mai 2013, par

    Lorsque l’on gère plusieurs (voir plusieurs dizaines) de MediaSPIP sur la même installation, il peut être très pratique d’obtenir d’un coup d’oeil certaines informations.
    Cet article a pour but de documenter les scripts de monitoring Munin développés avec l’aide d’Infini.
    Ces scripts sont installés automatiquement par le script d’installation automatique si une installation de munin est détectée.
    Description des scripts
    Trois scripts Munin ont été développés :
    1. mediaspip_medias
    Un script de (...)

Sur d’autres sites (7364)

  • Writing data to a Node.js child process's stdin fails due to ECONNRESET

    8 juillet 2015, par Swoth

    Problem
    Passing data to a child process’s stdin seems to fail. It fails due to an ECONNRESET after writing the data.

    Context
    I am developing a small programm that is supposed to render a video, as fast as possible, based on frames captured from a canvas. The animation is rendered to a headless canvas implementation using Rekapi (JavaScript animation framework). The headless canvas is a Node.js module called node-canvas by Automattic. The animation frames are rendered one after another, after each rendering the frame is retrieved using canvas.getImageData().data (Uint8ClampedArray - rgba, faster than canvas.toDataUrl) and put into an array. Every frame is supposed to be send to ffmpeg to create a video.

    Rekapi -> canvas -> getImageData -> array -> ffmpeg

    What I do
    I already tried various possibilities to pipe that data to ffmpeg. In general I created a child process in Node.js executing ffmpeg :

    var spawn = require('child_process').spawn;    
    var child = spawn('ffmpeg', [
           '-pix_fmt', 'rgba',
           '-s','1280x720',
           '-r', 25,
           '-f', 'rawvideo',
           '-vcodec', 'rawvideo',
           '-i', '-', // read frames from stdin
           '-threads', 0, // use all cores
           'test.mpg']);

    Now I write my array data to the child’s stdin :

    for(var i = 0; i < dataArray.length; ++i){
       var buffer = new Buffer(dataArray[i]);
       child.stdin.write(buffer);
       console.log('wrote: ' + i);
    }

    I wrote 25 frames this way. The console displays the following :

    wrote: 24
    wrote: 25
    events.js:85
         throw er; // Unhandled 'error' event
               ^
    Error: read ECONNRESET
       at exports._errnoException (util.js:746:11)
       at Pipe.onread (net.js:559:26)

    ffmpeg generated a 0 byte test.mpg.
    I am very new to Node.js, thus I might not understand the big picture of it’s child processes.

  • FFMpeg Command work in command line, but in python script the image is blueish ? (Semi Solved)

    17 juin 2015, par Fooldj

    Okay, kind of a weird problem. But I’m not sure whether it’s python, ffmpeg, or some stupid thing I’m doing wrong.

    I’m trying to take a video, and take 1 frame a second, and output that frame to an image. Right now, if i use the command line with ffmpeg :

    ffmpeg -i test.avi -r 1 -f image2 image-%3d.jpeg -pix_fmt rgb24 -vcodec rawrvideo

    It outputs about 10 images, the images look fine, awesome. Now I have this code (right now some code from some github, as I wanted stuff that i was relatively sure would work, and mine is allll convoluted)

    import subprocess as sp
    import numpy as np
    import re
    import cv2
    import time

    FFMPEG_BIN = r'ffmpeg.exe'
    INPUT_VID = 'test.avi'

    def getInfo():
       command = [FFMPEG_BIN,'-i', INPUT_VID, '-']
       pipe = sp.Popen(command, stdout=sp.PIPE, stderr=sp.PIPE)
       pipe.stdout.readline()
       pipe.terminate()
       infos = pipe.stderr.read()
       infos_list = infos.split('\r\n')
       res = re.search(' \d+x\d+ ',infos)
       res = [int(x) for x in res.group(0).split('x')]
       return res
    res = getInfo()
    command = [ FFMPEG_BIN,
           '-i', INPUT_VID,
           '-f', 'image2pipe',
           '-pix_fmt', 'rgb24',
           '-vcodec', 'rawvideo', '-']
    pipe = sp.Popen(command, stdout = sp.PIPE, bufsize=10**8)
    n = 0
    im2 = []
    try:
       mog = cv2.BackgroundSubtractorMOG2(120,2,True)
       while True:
           raw_image = pipe.stdout.read(res[0]*res[1]*3)
           # transform the byte read into a numpy array
           image =  np.fromstring(raw_image, dtype='uint8')
           image = image.reshape((res[1],res[0],3))
           rgbImg = image.copy()

           fname = ('_tmp%03d.png'%time.time())
           cv2.imwrite(fname, rgbImg)
           # throw away the data in the pipe's buffer.
           #pipe.stdout.flush()
           n += 1
           print n
    except:
       print 'done',n
       pipe.kill()
       cv2.destroyAllWindows()

    When I run this, I get 10 images, but they all have a Blue Tint ! I cannot for the life of me figure out why. I’ve done tons of searches, I’ve tried quite a few different codecs (usually just messes things up worse). The media info for the video file is here :

    General
    Complete name                            : test.avi
    Format                                   : AVI
    Format/Info                              : Audio Video Interleave
    File size                                : 85.0 KiB
    Duration                                 : 133ms
    Overall bit rate                         : 5 235 Kbps

    Video
    ID                                       : 0
    Format                                   : JPEG
    Codec ID                                 : MJPG
    Duration                                 : 133ms
    Bit rate                                 : 1 240 Kbps
    Width                                    : 640 pixels
    Height                                   : 480 pixels
    Display aspect ratio                     : 4:3
    Frame rate                               : 30.000 fps
    Color space                              : YUV
    Chroma subsampling                       : 4:2:2
    Bit depth                                : 8 bits
    Compression mode                         : Lossy
    Bits/(Pixel*Frame)                       : 0.135
    Stream size                              : 20.1 KiB (24%)

    Any suggestions ? It seems like it should be an RGB mixup...just not sure where at...

    EDIT : So I fixed the problem by switching the blue and red channels with this code :
    bChannel = rgbImg[ :, :,0]
    rChannel = rgbImg[ :, :,2]
    gChannel = rgbImg[ :, :,1]

               rgbArray = np.zeros((res[1],res[0],3), 'uint8')
               rgbArray[...,0] = rChannel
               rgbArray[...,1] = gChannel
               rgbArray[...,2] = bChannel

    So I guess this is now a question of, why is python mixing up these channels ? Is it a problem with python, or ffmpeg, the codec ?

    Thanks !

  • Error using javacv library for live streaming camera to server

    22 juin 2015, par Prathyush Kumar

    I am new to live-streaming i’m following this link
    here for implementing camera streaming to server with ffserver listening on port 8090.But my code breaks at this line

    public void startRecording() {
       try {
           recorder.start();    //breaks here
           startTime = System.currentTimeMillis();
           recording = true;
           audioThread.start();
       } catch (FFmpegFrameRecorder.Exception e) {
           e.printStackTrace();
       }
    }

    I debugged a little bit to find out what is happening and i found out in this line in FFmpegFrameRecorder.class

    if((this.oformat.flags() & 1) == 0) {
       AVIOContext pb1 = new AVIOContext((Pointer)null);
       if((ret = avformat.avio_open(pb1, this.filename, 2)) < 0) {//throwing exception here
           this.release();
           throw new Exception("avio_open error() error " + ret + ": Could not open \'" + this.filename + "\'");
       }

       this.oc.pb(pb1);
    }

    ret is -5 which is less than 0 and so it cannot open the file(rtmp ://live:live@192.168.0.115:8090/live/test.flv).

    I am not able to understand whats happening in avformat.class Please help

    Is this any configuration problem for ffserver or is it anything else ?I’m not able to figure this out please any help would be greatly appreciated.