Recherche avancée

Médias (3)

Mot : - Tags -/image

Autres articles (13)

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 is the first MediaSPIP stable release.
    Its official release date is June 21, 2013 and is announced here.
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

Sur d’autres sites (4520)

  • How to import fluent-ffmpeg in aws lamdba ?

    3 octobre 2019, par Fook

    I’m trying to use fluent-ffmpeg in AWS Lambda, but cannot get it setup correctly. At the top of my index.js :

    import ffmpeg from "fluent-ffmpeg";

    But it is always undefined.

    ffmpeg === undefined.

    I’m using Serverless and have ffmpeg included as a layer.

    serverless.yaml

    functions:
     createGifFromVideo:
       handler: src/services/createGifFromVideo/index.handler
       layers:
         - { Ref: FfmpegLambdaLayer }
       events:
         - sns: arn:aws:sns:us-east-1:${self:custom.accountId}:NewVideoPostContentTopic-${self:provider.stage}

    layers:
     ffmpeg:
       path: src/layers

    package.json

    {
     "name": "createGifFromVideo",
     "version": "1.0.0",
     "main": "index.js",
     "license": "MIT",
     "private": true,
     "dependencies": {
       "fluent-ffmpeg": "^2.1.2"
     }
    }

    The uploaded lambda seems to be constructed correctly from what I can tell. Webpack builds the file with fluent-ffmpeg merged in and it is linked to the ffmpeg layer.

    I can load other packages. It’s just fluent-ffmpeg that comes back undefined.

    From the docs it mentions passing FFMPEG_PATH and FFPROBE_PATH as environment variables. Are these necessary with a layer ?

    I would be grateful to see a configuration that works.

  • Adding watermark bitmap over video in android : 4.3's MediaMuxer or ffmpeg

    24 novembre 2018, par Alin

    Here is my scenario :

    • Download an avi movie from the web
    • Open a bitmap resource
    • Overlay this bitmap at the bottom of the movie on all frames in the background
    • Save the video on extarnal storage
    • The video length is 15 seconds usually

    Is this possible to achieve using MediaMuxer ? Any info on the matter is gladly received

    I’ve been looking to http://bigflake.com/mediacodec/#DecodeEditEncodeTest (Thanks @fadden) and it says there :

    "Decoding the frame and copying it into a ByteBuffer with
    glReadPixels() takes about 8ms on the Nexus 5, easily fast enough to
    keep pace with 30fps input, but the additional steps required to save
    it to disk as a PNG are expensive (about half a second)"

    So having almost 1 sec/frame is not acceptable. From what I am thinking one way would be to save each frame as PNG, open it, add the bitmap overlay on it and then save it. However this would take an enormous time to accomplish.

    I wonder if there is a way to do things like this :

    1. Open video file from external storage
    2. Start decoding it
    3. Each decoded frame will be altered with the bitmap overlay in memory
    4. The frame is sent to an encoder.

    On iOS I saw that there a way to take the original audio + original video + an image and add them in a container and then just encode the whole thing...

    Should I switch to ffmpeg ? How stable and compatible is ffmpeg ? Am I risking compatibility issues with android 4.0+ devices ? Is there a way to use ffmpeg to acomplish this ? I am new to this domain and still doing research.


    Years later edit :
    Years have passed since the question and ffmpeg isn’t really easy to add to a commercial software in terms of license. How did this evolved ? Newer versions of android are more capable on this with the default sdk ?


    Some more time later edit

    I got some negative votes for posting info as an answer so I’ll edit the original question. Here is a great library which, from my testing does apply watermark to video and does it with progress callback making it a lot easier to show progress to the user and also uses the default android sdks. https://github.com/MasayukiSuda/Mp4Composer-android

    This library generate an Mp4 movie using Android MediaCodec API and apply filter, scale, and rotate Mp4.

    Sample code, could look like :

    new mp4Composer(sourcePath, destinationPath)
           .filter(new GlWatermarkFilter(watermarkBitmap)
           .listener(){
                 @Override
                 private void onProgress(double value){}

                 @Override
                 private void onCompleted(double value){
                     runOnUiThread( () ->{
                        showSneakbar
                     }
                 }

                 @Override
                 private void onCancelled(double value){}

                 @Override
                 private void onFailed(Exception e){}

           }).start();

    Testing on emulator, seems to work fine on android 8+ while on older generates a black video file.However, when testing on real device seems to work.

  • FFMPEG : Why aren't all my codecs showing up when I call av_codec_next()

    21 juin 2018, par alvion

    I’m trying to make a custom build of ffmpeg to use in my c++ application. The only codecs I need are encode/decode for h264 and aac. Because I cannot use GPL code, I’m trying to use openh264.

    I successfully built openh264.

    I am configuring my ffmpeg build thusly :

    ../../../configure\
    --toolchain=msvc\
    --arch=x86_64\
    --enable-shared\
    --prefix=../../../Build/Windows10/x64\
    --disable-programs\
    --disable-everything\
    --enable-libopenh264\
    --extra-ldflags=../../../../openh264/openh264.lib\
    --enable-hwaccel=h264_d3d11va\
    --enable-encoder=libopenh264\
    --enable-encoder=aac\
    --enable-decoder=h264\
    --enable-decoder=aac\
    --enable-muxer=mp4\
    --enable-demuxer=mov\
    --enable-parser=h264\
    --enable-parser=aac\
    --disable-dxva2\
    --enable-protocol=file

    Here is my configure output :

    install prefix            ../../../Build/Windows10/x64
    source path               /c/ffmpeg
    C compiler                cl
    C library                 msvcrt
    ARCH                      x86 (generic)
    big-endian                no
    runtime cpu detection     yes
    yasm                      yes
    MMX enabled               yes
    MMXEXT enabled            yes
    3DNow! enabled            yes
    3DNow! extended enabled   yes
    SSE enabled               yes
    SSSE3 enabled             yes
    AESNI enabled             yes
    AVX enabled               yes
    XOP enabled               yes
    FMA3 enabled              yes
    FMA4 enabled              yes
    i686 features enabled     yes
    CMOV is fast              yes
    EBX available             no
    EBP available             no
    debug symbols             yes
    strip symbols             no
    optimize for size         no
    optimizations             yes
    static                    no
    shared                    yes
    postprocessing support    no
    network support           no
    threading support         w32threads
    safe bitstream reader     yes
    texi2html enabled         no
    perl enabled              yes
    pod2man enabled           no
    makeinfo enabled          yes
    makeinfo supports HTML    no

    External libraries:
    libopenh264             schannel                xlib

    External libraries providing hardware acceleration:
    cuda                    cuvid                   d3d11va                 nvenc

    Libraries:
    avcodec                 avfilter                avformat                avutil                  swresample              swscale
    avdevice

    Programs:

    Enabled decoders:
    aac                     h264

    Enabled encoders:
    aac                     libopenh264

    Enabled hwaccels:
    h264_d3d11va

    Enabled parsers:
    aac                     h264

    Enabled demuxers:
    mov

    Enabled muxers:
    mov                     mp4

    Enabled protocols:
    file

    Enabled filters:

    Enabled bsfs:

    Enabled indevs:

    Enabled outdevs:

    License: LGPL version 2.1 or later

    As you can see, it is listing two values each for encoders and decoders. HOWEVER, when I try to list the codecs available like so :

    av_register_all();
    AVCodec* current_codec = av_codec_next(nullptr);
    while (current_codec != nullptr)
    {
       if (av_codec_is_encoder(current_codec))
       {
           cout << "Found encoder " << current_codec->long_name << endl;
       }
       current_codec = av_codec_next(current_codec);
    }

    Only the first call to av_codec_next returns non-null, and it is the h264 decoder. I don’t see the aac decoder, and I don’t see any encoders at all.

    I’ve tried the same source code but linking to a prebuilt version of ffmpeg (from Zeroane), so I’m sure the code to iterate over the codecs is correct.

    What do I need to do to get openh264 and aac to be listed as codecs ?