Recherche avancée

Médias (91)

Autres articles (87)

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • Organiser par catégorie

    17 mai 2013, par

    Dans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
    Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
    Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...)

Sur d’autres sites (7589)

  • c++ how to use lambdas to set ffmpeg's av_log_set_callback() to a member function ?

    13 février 2018, par Blake Senftner

    I’ve been researching how to use lambdas as callbacks, but I do not seem to be getting my syntax correct. I am working in C++ via Visual Studio 2013 Community, & I am pretty sure this type of lambda use is supported. I am working on a video library which is based on the FFMPEG libav libraries.

    The basic issue is the logging callback provided to library clients of FFMPEG’s libav. It has this calling structure :

    void logging_callback( void *ptr, int level, const char *fmt, va_list vargs  );

    This is fine for C or fine for C++ when the logging callback is a static member function, but I want to install a class member function, which needs the this parameter per the C++ nature of calling method functions.

    What I have so far looks like : (unrelated portions removed)

    class my_libav
    {
      // logging messages callback for use by library client, any log messages generated
      // by the library will be sent thru this to the lib client's logic:
      typedef void(*STREAM_LOGGING_CALLBACK_CB) (std::string msg, void* p_object);

      // my lib's logger has a void* param so clients can redirect to member functs easier
      void SetStreamLoggingCallback(STREAM_LOGGING_CALLBACK_CB p_stream_logger, void* p_object);

      // member function to be installed as FFMPEG's av_log_set_callback():
      void RedirectLoggingOutputs( void *ptr, int level, const char *fmt, va_list vargs );

      STREAM_LOGGING_CALLBACK_CB  mp_stream_logging_callback; // client's callback
      void*                       mp_stream_logging_object;   // client's data

    };

    void my_libav::SetStreamLoggingCallback(STREAM_LOGGING_CALLBACK_CB p_stream_logger, void* p_object)
    {
     mp_stream_logging_callback = p_stream_logger;
     mp_stream_logging_object = p_object;
    }

    void my_libav::RedirectLoggingOutputs(void *ptr, int level, const char *fmt, va_list vargs )
    {
     // logic that resolves the message and sends through client's callback
     // installed int mp_stream_logging_callback
    }

    my_libav::my_libav()
    {
     // this is the old static member function I deleted:
     // av_log_set_callback( &my_libav::logging_callback );

     // I tried using std::bind & placeholders, but this syntax is wrong too:
     // namespace ph = std::placeholders;
     // auto callback = std::bind( &my_libav::RedirectLoggingOutputs, this, ph::_1, ph::_2, ph::_3, ph::_4 );
     //
     // av_log_set_callback( callback ); // <- 'callback' is not the correct type

     // this is my try at a lambda. I know that the *this* cannot be
     // in the capture, but I don't know the right syntax to work around
     // this issue:
     std::function
           f2 = [this](void *ptr, int level, const char *fmt, va_list vargs ){
                           RedirectLoggingOutputs( ptr, level, fmt, vargs ); };

       av_log_set_callback( f2 ); // <- 'f2' is not the correct type, how to fix?

    The syntax I am trying to fix is in the last 4 lines. What is the correct form ?

  • Metal Gear Solid VP3 Easter Egg

    4 août 2011, par Multimedia Mike — Game Hacking

    Metal Gear Solid : The Twin Snakes for the Nintendo GameCube is very heavy on the cutscenes. Most of them are animated in real-time but there are a bunch of clips — normally of a more photo-realistic nature — that the developers needed to compress using a conventional video codec. What did they decide to use for this task ? On2 VP3 (forerunner of Theora) in a custom transport format. This is only the second game I have seen in the wild that uses pure On2 VP3 (first was a horse game). Reimar and I sorted out most of the details sometime ago. I sat down today and wrote a FFmpeg / Libav demuxer for the format, mostly to prove to myself that I still could.

    Things went pretty smoothly. We suspected that there was an integer field that indicated the frame rate, but 18 fps is a bit strange. I kept fixating on a header field that read 0x41F00000. Where have I seen that number before ? Oh, of course — it’s the number 30.0 expressed as an IEEE 32-bit float. The 4XM format pulled the same trick.

    Hexadecimal Easter Egg
    I know I finished the game years ago but I really can’t recall any of the clips present in the samples directory. The file mgs1-60.vp3 contains a computer screen granting the player access and illustrates this with a hexdump. It looks something like this :



    Funny, there are only 22 bytes on a line when there should be 32 according to the offsets. But, leave it to me to try to figure out what the file type is, regardless. I squinted and copied the first 22 bytes into a file :

     1F 8B 08 00   85 E2 17 38   00 03 EC 3A   0D 78 54 D5
     38 00 03 EC   3A 0D
    

    And the answer to the big question :

    $ file mgsfile
    mgsfile : gzip compressed data, from Unix, last modified : Wed Oct 27 22:43:33 1999
    

    A gzip’d file from 1999. I don’t know why I find this stuff so interesting, but I do. I guess it’s no more and less strange than writing playback systems like this.

  • Enabling libmp3lame for FFMPEG on elastic beanstalk

    13 octobre 2017, par Adam Sith

    I am trying to enable libmp3lame with FFMPEG in elastic beanstalk (Amazon Redhat Linux machine).

    I am able to successfully install FFMPEG in /ffmpeg.config with the following script :

    # .ebextensions/ffmpeg.config

    packages:
     yum:
       autoconf: []
       automake: []
       cmake: []
       freetype-devel: []
       gcc: []
       gcc-c++: []
       git: []
       libtool: []
       make: []
       nasm: []
       pkgconfig: []
       zlib-devel: []
    sources:
     /usr/local/src: http://ffmpeg.org/releases/ffmpeg-3.2.tar.bz2
    commands:
     ffmpeg_install:
         cwd: /usr/local/src/ffmpeg-3.2
         command: sudo ./configure --prefix=/usr && make && make install

    I need to install libmp3lame however. I’ve tried to do this with an --enable-libmp3lame flag and the directions here. The modified script :

    packages:
    yum:
       autoconf: []
       automake: []
       cmake: []
       freetype-devel: []
       gcc: []
       gcc-c++: []
       git: []
       libtool: []
       make: []
       nasm: []
       pkgconfig: []
       zlib-devel: []
    sources:
     /usr/local/src: http://ffmpeg.org/releases/ffmpeg-3.2.tar.bz2
    commands:
     01-install_libmp3lame:
         cwd: /usr/local/src/
         command: curl -L -O http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz && tar xzvf lame-3.99.5.tar.gz && cd lame-3.99.5 && ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm && make && make install
     02-ffmpeg_install:
         cwd: /usr/local/src/ffmpeg-3.2
         command: sudo ./configure --enable-libmp3lame && --prefix=/usr && make && make install

    This doesn’t work. Command 01-install_libmp3lame completes. Command 02-ffmpeg_install fails because :

    [2017-10-12T20:55:19.324Z] INFO  [24606] - [Application update app-8fe3-123456_7895@111/AppDeployStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild/prebuild_3_clover_platform/Command 02-ffmpeg_install] : Activity execution failed, because: ERROR: libmp3lame >= 3.98.3 not found

    I have tried installing libmp3lame in /ffmpeg-3.2 and got the same issue.