Recherche avancée

Médias (1)

Mot : - Tags -/MediaSPIP

Autres articles (22)

  • L’utiliser, en parler, le critiquer

    10 avril 2011

    La première attitude à adopter est d’en parler, soit directement avec les personnes impliquées dans son développement, soit autour de vous pour convaincre de nouvelles personnes à l’utiliser.
    Plus la communauté sera nombreuse et plus les évolutions seront rapides ...
    Une liste de discussion est disponible pour tout échange entre utilisateurs.

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

  • Supporting all media types

    13 avril 2011, par

    Unlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)

Sur d’autres sites (5548)

  • Using ImageMagick to efficiently stitch together a line scan image

    2 octobre 2018, par rkantos

    I’m looking for alternatives for line scan cameras to be used in sports timing, or rather in the part where placing needs to be figured out. I found that common industrial cameras can readily match the speed of commercial camera solutions at >1000 frames per second. For my needs, usually the timing accuracy is not important, but the relative placing of athletes. I figured I could use one of the cheapest Basler, IDS or any other area scan industrial cameras for this purpose. Of course there are line scan cameras that can do a lot more than a few thousand fps (or hz), but it is possible to get area scan cameras that can do the required 1000-3000fps for less than 500€.

    My holy grail would of course be the near-real time image composition capabilities of FinishLynx (or any other line scan system), basically this part : https://youtu.be/7CWZvFcwSEk?t=23s

    The whole process I was thinking for my alternative is :

    • Use Basler Pylon Viewer (or other software) to record 2px wide images at the camera’s fastest read speed. For the camera I am
      currently using it means it has to be turned on it’s side and the
      height needs to be reduced, since it is the only way it will read
      1920x2px frames @ >250fps
    • Make a program or batch script that then stitches these 1920x2px frames together to, for example one second of recording 1000*1920x2px
      frames, meaning a resulting image with a resolution of 1920x2000px
      (Horizontal x Vertical).
    • Finally using the same program or another way, just rotate the image so it reflects how the camera is positioned, thus achieving an image
      with a resolution of 2000x1920px (again Horizontal x Vertical)
    • Open the image in an analyzing program (currently ImageJ) to quickly analyze results

    I am no programmer, but this is what I was able to put together just using batch scripts, with the help of stackoverflow of course.

    • Currently recording a whole 10 seconds for example to disk as a raw/mjpeg(avi/mkv) stream can be done in real time.
    • Recording individual frames as TIFF or BMP, or using FFMPEG to save them as PNG or JPG takes 20-60 seconds The appending and rotation
      then takes a further 45-60 seconds
      This all needs to be achieved in less than 60 seconds for 10 seconds of footage(1000-3000fps @ 10s = 10000-30000 frames) , thus why I need something faster.

    I was able to figure out how to be pretty efficient with ImageMagick :

    magick convert -limit file 16384 -limit memory 8GiB -interlace Plane -quality 85 -append +rotate 270 “%folder%\Basler*.Tiff” “%out%”

    #%out% has a .jpg -filename that is dynamically made from folder name and number of frames.

    This command works and gets me 10000 frames encoded in about 30 seconds on a i5-2520m (most of the processing seems to be using only one thread though, since it is working at 25% cpu usage). This is the resulting image : https://i.imgur.com/OD4RqL7.jpg (19686x1928px)

    However since recording to TIFF frames using Basler’s Pylon Viewer takes just that much longer than recording an MJPEG video stream, I would like to use the MJPEG (avi/mkv) file as a source for the appending. I noticed FFMPEG has “image2pipe” -command, which should be able to directly give images to ImageMagick. I was not able to get this working though :

      $ ffmpeg.exe -threads 4 -y -i "Basler acA1920-155uc (21644989)_20180930_043754312.avi" -f image2pipe - | convert - -interlace Plane -quality 85 -append +rotate 270 "%out%" >> log.txt
       ffmpeg version 3.4 Copyright (c) 2000-2017 the FFmpeg developers
         built with gcc 7.2.0 (GCC)
         configuration: –enable-gpl –enable-version3 –enable-sdl2 –enable-bzlib –enable-fontconfig –enable-gnutls –enable-iconv –enable-libass –enable-libbluray –enable-libfreetype –enable-libmp3lame –enable-libopenjpeg –enable-libopus –enable-libshine –enable-libsnappy –enable-libsoxr –enable-libtheora –enable-libtwolame –enable-libvpx –enable-libwavpack –enable-libwebp –enable-libx264 –enable-libx265 –enable-libxml2 –enable-libzimg –enable-lzma –enable-zlib –enable-gmp –enable-libvidstab –enable-libvorbis –enable-cuda –enable-cuvid –enable-d3d11va –enable-nvenc –enable-dxva2 –enable-avisynth –enable-libmfx
         libavutil      55. 78.100 / 55. 78.100
         libavcodec     57.107.100 / 57.107.100
         libavformat    57. 83.100 / 57. 83.100
         libavdevice    57. 10.100 / 57. 10.100
         libavfilter     6.107.100 /  6.107.100
         libswscale      4.  8.100 /  4.  8.100
         libswresample   2.  9.100 /  2.  9.100
         libpostproc    54.  7.100 / 54.  7.100
       Invalid Parameter - -interlace
       [mjpeg @ 000000000046b0a0] EOI missing, emulating
       Input #0, avi, from 'Basler acA1920-155uc (21644989)_20180930_043754312.avi’:
         Duration: 00:00:50.02, start: 0.000000, bitrate: 1356 kb/s
           Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/unknown/unknown), 1920x2, 1318 kb/s, 200 fps, 200 tbr, 200 tbn, 200 tbc
       Stream mapping:
         Stream #0:0 -> #0:0 (mjpeg (native) -> mjpeg (native))
       Press [q] to stop, [?] for help
       Output #0, image2pipe, to ‘pipe:’:
         Metadata:
           encoder         : Lavf57.83.100
           Stream #0:0: Video: mjpeg, yuvj422p(pc), 1920x2, q=2-31, 200 kb/s, 200 fps, 200 tbn, 200 tbc
           Metadata:
             encoder         : Lavc57.107.100 mjpeg
           Side data:
             cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
       av_interleaved_write_frame(): Invalid argument
       Error writing trailer of pipe:: Invalid argument
       frame=    1 fps=0.0 q=1.6 Lsize=       0kB time=00:00:00.01 bitrate= 358.4kbits/s speed=0.625x
       video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
       Conversion failed!

    If I go a bit higher for the height, I no longer get the “[mjpeg @ 000000000046b0a0] EOI missing, emulating” -error. However the whole thing will only work with <2px high/wide footage.

    edit : Oh yes, I can also use ffmpeg -i file.mpg -r 1/1 $filename%03d.bmp or ffmpeg -i file.mpg $filename%03d.bmp to extract all the frames from the MJPEG/RAW stream. However this is an extra step I do not want to take. (just deleting a folder of 30000 jpgs takes 2 minutes alone…)

    Can someone think of a working solution for the piping method or a totally different alternative way of handling this ?

  • Using FFMPEG to create animated GIF from series of images and insert text for each image

    11 janvier 2021, par mwcmwc

    I am generating an animated gif from a series of png's labeled img_00.png, img_01.png, etc. I want to insert text to the top right corner of the animated gif for each frame that is generated from the png to display some specific information. For example say I have 3 pngs, img_00, img_01, and img_02...what I want from the gif is :

    &#xA;

    For frame generated from img_00, display "This is from img_00".&#xA;For frame generated from img_01, display "This is from img_01".&#xA;For frame generated from img_02, display "This is the last image generated from img_02 !".

    &#xA;

    So far I have been messing around with drawtext option (assuming framerate=1) :

    &#xA;

    ffmpeg -f image2 -framerate 1 -i img_%02d.png -filter_complex "drawtext=enable=&#x27;between(t,0,1)&#x27;:text=&#x27;word1&#x27;:fontsize=24:fontcolor=white:x=w-tw:y=0,drawtext=enable=&#x27;between(t,1,2)&#x27;:text=&#x27;word2&#x27;:fontsize=24:fontcolor=white:x=w-tw:y=0" out.gif&#xA;

    &#xA;

    But I am getting "word1" and "word2" overlapped on top of each other. Is there a better way of doing this or someway to fix drawtext so the overlap doesn't happen ?

    &#xA;

  • Trigger a manual progress event when upload is done but loaded doesn't equal total uploaded bytes.

    21 janvier 2013

    m js/jquery.fileupload.js Trigger a manual progress event when upload is done but loaded doesn't equal total uploaded bytes.