Recherche avancée

Médias (91)

Autres articles (91)

  • Emballe médias : à quoi cela sert ?

    4 février 2011, par

    Ce plugin vise à gérer des sites de mise en ligne de documents de tous types.
    Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;

  • Submit bugs and patches

    13 avril 2011

    Unfortunately a software is never perfect.
    If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
    If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
    You may also (...)

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

  • OpenCV write jpeg buffer into Popen object

    5 novembre 2017, par M Leonard

    I am doing some image operations on a numpy array via OpenCV. These images are then being baked out to jpeg, then ingested into FFMPEG to make a video. However, baking it out to a file is not very efficient. I would like to stream this directly into FFMPEG. In theory, it would look something like this :

    p = Popen(['/usr/local/bin/ffmpeg', '-s', '1920x1080',
                      '-pix_fmt', 'yuvj420p',
                      '-y',
                      '-f', 'image2pipe',
                      '-vcodec', 'mjpeg',
                      '-r', self.fps,
                      '-i', '-',
                      '-r', self.fps,
                      '-f', 'mp4',
                      '-vcodec', 'libx264',
                      '-preset', 'fast',
                      # '-crf', '26',
                      'output/{}.mp4'.format(self.animation_name)], stdin=PIPE)

    image_resize = cv.resize(self.original_image, (0, 0), fx=zoom, fy=zoom)
    M = np.float32([[1, 0, x_total], [0, 1, y_total]])
    image_offset = cv.warpAffine(image_resize, M, (self.original_image_width, self.original_image_width))
    image = image_offset[0:self.output_raster_height, 0:self.output_raster_width].copy()    
    cv.imwrite(p.stdin, image) # this doesn't actually work, but that's the idea...

    I’ve been able to achieve this with Pillow using this setup :

    p = Popen(['/usr/local/bin/ffmpeg', '-s', '1920x1080',
                      '-pix_fmt', 'yuvj420p',
                      '-y',
                      '-f', 'image2pipe',
                      '-vcodec', 'mjpeg',
                      '-r', self.fps,
                      '-i', '-',
                      '-r', self.fps,
                      '-f', 'mp4',
                      '-vcodec', 'libx264',
                      '-preset', 'fast',
                      # '-crf', '26',
                      'output/{}.mp4'.format(self.animation_name)], stdin=PIPE)

    image_resize = self.original_image.resize((resize_width, resize_height), resample=PIL.Image.BICUBIC)
    image_offset = ImageChops.offset(image_resize, xoffset=int(x_total), yoffset=int(y_total))
    image = image_offset.crop((0, 0, self.output_raster_width, self.output_raster_height))

    image.save(p.stdin, 'JPEG')

    So, my question is :

    How would I write an OpenCV Jpeg buffer into the p.stdin object like it’s being done in the Pillow version ?

  • Sending Blobs from a Chrome Extension to a Node.js Process without WebSockets [closed]

    29 octobre 2023, par Matrix 404

    Question :
I have a Puppeteer script that runs a Chrome extension, which opens a webpage. The extension records that tab and sends the recorded blobs to the main Node.js process using WebSockets. The main process then streams these blobs to an RTMP server.

    


    I'm looking for an alternative method to send blobs to the main process without using WebSockets. Additionally, I want to know if it's possible to stream these blobs directly from the browser using FFmpeg wasm.

    


    Details :

    


      

    1. My current setup : Puppeteer script -> Chrome extension (recording) -> WebSockets -> Node.js process -> RTMP server.

      


    2. 


    3. I'm exploring options to eliminate the use of WebSockets while maintaining the ability to send recorded blobs from the Chrome extension to the Node.js process efficiently.

      


    4. 


    5. Is it possible to use FFmpeg wasm to stream blobs directly from the browser to an RTMP server ? If so, how can this be achieved ?

      


    6. 


    


    Additional Information :

    


      

    • The technology stack I'm using includes Puppeteer, Chrome extension, Node.js, and FFmpeg.
    • 


    • Any code snippets, examples, or recommended libraries are greatly appreciated.
    • 


    


    Constraints :

    


      

    • Compatibility with modern browsers and reasonable performance are essential.
    • 


    • Ideally, the solution should work in a headless Chrome instance.
    • 


    


    Thank you for your assistance in finding an efficient solution to this problem !

    


      

    • The technology stack I'm using includes Puppeteer, Chrome extension, Node.js, and FFmpeg.
    • 


    • Any code snippets, examples, or recommended libraries are greatly appreciated.
    • 


    


  • dnxhd : interleave AC levels and flags

    14 octobre 2015, par Christophe Gisquet
    dnxhd : interleave AC levels and flags
    

    This allows more efficient access to the array as the level and flags
    are contiguous. Around 4% faster coefficient decoding.

    Signed-off-by : Michael Niedermayer <michael@niedermayer.cc>

    • [DH] libavcodec/dnxhddata.c
    • [DH] libavcodec/dnxhddata.h
    • [DH] libavcodec/dnxhddec.c
    • [DH] libavcodec/dnxhdenc.c