Recherche avancée

Médias (91)

Autres articles (33)

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

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

  • Automated installation script of MediaSPIP

    25 avril 2011, par

    To overcome the difficulties mainly due to the installation of server side software dependencies, an "all-in-one" installation script written in bash was created to facilitate this step on a server with a compatible Linux distribution.
    You must have access to your server via SSH and a root account to use it, which will install the dependencies. Contact your provider if you do not have that.
    The documentation of the use of this installation script is available here.
    The code of this (...)

Sur d’autres sites (3359)

  • Optimizing Adaptive Streaming with FFMPEG

    25 octobre 2018, par Ramesh Navi

    I am working on a video on demand website, I am using laravel 5.7, FFMPEG and DASH player from (dashif.org). Got some questions.

    Extracting audio like :

    ffmpeg -i original.mp4 -vn -acodec libvorbis -ab 128k -dash 1 my_audio.webm

    Converting video like :

    ffmpeg -i original.mp4 -c:v libvpx-vp9 -keyint_min 150 \
    -g 150 -tile-columns 4 -frame-parallel 1  -f webm -dash 1 \
    -an -vf scale=160:190 -b:v 250k -dash 1 video_160x90_250k.webm \
    -an -vf scale=320:180 -b:v 500k -dash 1 video_320x180_500k.webm \
    -an -vf scale=640:360 -b:v 750k -dash 1 video_640x360_750k.webm \
    -an -vf scale=1280:720 -b:v 1500k -dash 1 video_1280x720_1500k.webm

    Creating manifest like :

    ffmpeg \
    -f webm_dash_manifest -i video_160x90_250k.webm \
    -f webm_dash_manifest -i video_320x180_500k.webm \
    -f webm_dash_manifest -i video_640x360_750k.webm \
    -f webm_dash_manifest -i video_1280x720_1500k.webm \
    -f webm_dash_manifest -i my_audio.webm \
    -c copy \
    -map 0 -map 1 -map 2 -map 3 -map 4 \
    -f webm_dash_manifest \
    -adaptation_sets "id=0,streams=0,1,2,3 id=1,streams=4" \
    my_video_manifest.mpd

    Now the problems :

    1. Video conversion takes a lot of time on the latest i5 8gb
      think-pad running Ubuntu 18. 4minute mp4 took more than 30minute. 10minute, 720p MP4 took forever, had to kill the process. Is
      that normal ? Any idea to optimize ?
    2. Need to find out original
      video’s dimension so that I can avoid dimension conversion more than
      the original. ffprob looks fine in command but produces too much of
      information than required, is there any simple function ?
    3. Converted webm file is bigger in size than original mp4, original
      mp4 of 720p was 33MB, but 640p webm is 76MB. Is that normal or
      something wrong ?

    Any suggestions to optimize the process are welcome.

  • FFMPEG H264 with custom overlay per frame

    4 octobre 2020, par La bla bla

    We have a stream that is stored in the cloud (Amazon S3) as individual H264 frames. The frames are stored as framexxxxxx.264, the numbering doesn't start from 0 but rather from some larger number, say 1000 (so, frame001000.264)

    


    The goal is to create a mp4 clip which is either timelapse or just faster for inspection and other checking (much faster, compressing around 3 hours of video down to < 20 minutes), this also requires we overlay the frame number (the filename) on the frame itself

    &#xA;

    At first I was creating a timelapse by pulling from S3 only the keyframes (i-frames ? still rather new to codecs & stuff) and overlaying the filename on them and saving as png (which probably isn't needed, but that's what I did) using (this command is used inside a python script)

    &#xA;

    ffmpeg -y -i {h264_name} -vf \"scale=1920:-1, &#xA;drawtext=fontfile=/usr/share/fonts/truetype/ubuntu-font-family/Ubuntu-B.ttf:fontsize=34:text={txt}:fontcolor=white:x=50:y=50:bordercolor=black:borderw=2\" &#xA;-c:a copy -pix_fmt yuv420p {basename}.png&#xA;

    &#xA;

    after this I combined all the frames by using python to convert the lowest numbered frame to 0.png and incrementing (so it would be continuous, because I only used keyframes the numbers originally weren't sequential) and running

    &#xA;

    ffmpeg -y -f image2 -i %d.png -r {self.params.fps} -vcodec libx264 -crf {self.params.crf} -pix_fmt yuv420p {out_file}&#xA;

    &#xA;

    and this worked great, but the difference between keyframes was too long to allow for proper inspection

    &#xA;

    so now for the question(s)

    &#xA;

    since I know frames that are not keyframes (p-frames ?) can't be used alone by ffmpeg, the method of overlaying the file name and converting it to png (or keep as h264, same thing) won't work, or at least, I couldn't find a way for it to work, maybe there's a way to specify a frame's keyframe ?, how can one overlay the filename (and not the frame number as shown here for example)

    &#xA;

    Also, is it possible to skip some p-frames between the keyframes ? (so if a keyframe is every 30 frames, we would take a keyframe, a frame 15 frames later, and next another keyframe)

    &#xA;

    I thought about using ffmpeg's pipe option to feed it with the files as they're being downloaded, but I'm not sure if I can specify drawtext this way

    &#xA;

    Also, if there's another alternative that can achieve that (at first I was converting to png, using python and OpenCV to add the filename and then merging the pngs to mp4, but then I found drawtext can do that in a single command so I used it)

    &#xA;

  • AWS : Best way to generate a thumbnail for every frame of a s3 uploaded video

    4 janvier 2018, par danielfranca

    I need to process a video file, transcode it and generate a thumbnail for every frame.

    It should happen every time there’s a new video on a specific AWS bucket.

    I found out that AWS Lambda should be the best service for that

    However, it is not working as expected and I’ll explain why

    I’ve created a simple Python2.7 file using FFVideo
    It seems that this library doesn’t support Python3.

    It is a nice abstraction on top of ffmpeg

    To deploy the package I had run lld on the FFVideo shared object, and then copied everything to my project directory, as described in their documentation.
    Zipped it and upload to AWS Lambda

    Yet it doesn’t work, I keep getting errors as if the /usr/lib64/libstdc++ is missing, even after copied it to the projecct dir, also tried /usr/lib64 and /lib64

    Then as a second thought I wonder if just running ffmpeg wouldn’t be easier...
    So I just copied ffmpeg to the project dir and did a simple Python script to call it.

    Missing shared objects, ok, lld again and copied everything to the directory.

    Then AWS Lambda seems to be completely broken, I can’t save it anymore and it just says "Fix errors before saving"
    But no error message, nothing

    I even have attempted to write inline a simple code, but now AWS Lambda don’t even open the online editor.
    I also tried to remove all the shared objects I have added, returning to the original state, but still same generic error.
    Same thing if I just create a new lambda function with same old code.

    Doesn’t matter what I do it never even enable the Save button anymore.
    I thought it might be just some AWS unstability, but it been a while.

    I’ve looked to a similar project using Node
    and it doesn’t seem to include anything except ffmpeg

    My other idea is to use SQS to trigger a python script somewhere else to create the thumbnails

    Any idea how is the best approach for that ?