Recherche avancée

Médias (1)

Mot : - Tags -/musée

Autres articles (31)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

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

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

  • How to get video pixel location from screen pixel location ?

    22 février 2024, par AmLearning

    Wall of Text so I tried breaking it up into sections to make it better sorry in advance

    


    The problem

    


    I have some video files that I am reading with ffmpeg to get the colors at specific pixels, and all seems well, but I just ran into a problem with finding the right pixel to input. I realized (or mistakingly believe) that the pixel location (x,y) on the screen will be different than the local pixel location so to speak of the video (ie. If I want to get pixel 50,0 of the video that will be different than my screen's pixel 50,0 because the resolutions don't match). I was trying to think of a way to convert my screen's pixel location into the "local pixel location", and I have two ideas but I am not sure if any of them is any good. Note I am currently using cmd+shift+4 on macos to get the screen coordinates and the video is playing fullscreen like in the screenshot below.

    


    Ideas

    


      

    1. enter image description here If I manually measure and account for this vertical offset, would it effectively convert the screen coordinate into the "local" one ?

      


    2. 


    3. If I instead adjust my SwsContext to put the destination height and width as that of my screen, will it effectively replace the need to convert screen coordinates to the video coordinates ?

      


    4. 


    


    Problems with the Ideas

    


    The problems I see with the first solution are that I am assuming there is no hidden horizontal offset (or conversely that all of the width of the video is actually renderable on the screen). Additionally, this solution would only get an approximate result as I would need to manually measure the offsets, screen width, and screen height using the method I currently am using to get the screen coordinates.

    


    With the second solution, aside from the question of if it will even work, the problem becomes that I can no longer measure what the screen coordinates I want are because I can't seem to get rid of those black bars in VLC.

    


    Some Testing I did

    


    Given that if the black bars are part of the video itself, my entire problem would be fixed (maybe ?) I tried seeing if the black bars were part of the video, and when I looked at the frame data's first pixel, it was black. The problem then is that if the black bars are entirely part of the video, then why are the colors I get for some pixels slightly off (I am checking with ColorSync Utility). These colors aren't just slightly off as in wrong but it seems more that they belong to a slightly offset region of the video.

    


    However, this may be somewhat explained if ffmpeg reads right to left. When I put the top left corner of the video into the program and looked again at the pixel data in the frame for that location (location again was calculated by assuming the video location would be the same as the screen location) instead of getting white, I got a bluish color much like the glove in the top right corner.

    


    The Watered Down Code

    


        struct SwsContext *rescaler = NULL;
    rescaler = sws_getContext(codec_context->width, codec_context->height, codec_context->pix_fmt, codec_context->width, codec_context->height, AV_PIX_FMT_RGB0, SWS_FAST_BILINEAR, NULL, NULL, 0);

// Get Packets (containers for frames but not guaranteed to have a full frame) and Frames
    while (av_read_frame(avformatcontext, packet) >= 0)
    {
        
        // determine if packet is video packet
        if (packet->stream_index != video_index)
        {
            continue;
        }
        
        // send packet to decoder
        if (avcodec_send_packet(codec_context, packet) < 0)
        {
            perror("Failed to decode packet");
        }
        
        // get frame from decoder
        int response = avcodec_receive_frame(codec_context, frame);
        if (response == AVERROR(EAGAIN))
        {
            continue;
        }
        else if (response < 0)
        {
            perror("Failed to get frame");
        }
        
        // convert frame to RGB0 colorspace 4 bytes per pixel 1 per channel
        response = sws_scale_frame(rescaler, scaled_frame, frame);
        if(response < 0){
            perror("Failed to change colorspace");
        }
        // get data and write it
        int pixel_number = y*(scaled_frame->linesize[0]/4)+x; // divide by four gets pixel linesize (4 byte per pixel)
        int byte_number = 4*(pixel_number-1); // position of pixel in array
        // start of debugging things
        int temp = scaled_frame->data[0][byte_number]; // R
        int one_after = scaled_frame->data[0][byte_number+1]; // G
        int two_after = scaled_frame->data[0][byte_number+2]; // B
        int als; // where i put the breakpoint
        // end of debugging things
    }


    


    In Summary

    


    I have no idea what is happening.

    


    I take the data for a pixel and compare it to what colorsync utility says should be there, but it is always slightly off as though the pixel I was actually reading was offset from what I thought I was reading. Therefore, I want to find a way to get the pixel location in a video given a screen coordinate when the video is in fullscreen, but I have no idea how to (aside from a few ideas that are probably bad at best).

    


    Also does FFMPEG put the frame data right to left ?

    


    A Video Better Showing My Problem

    


    https://www.youtube.com/watch?v=NSEErs2lC3A

    


  • Install gstreamer on EC2 Amazon Linux AMI ?

    6 décembre 2015, par vy32

    I’m trying to install QT5.5 on Amazon EC2 Linux, which apparently requires that I install some kind of multimedia support. It looks like that comes from gstreamer.

    yum search gstreamer turns up :

    [ec2-user@ip-172-30-1-58 ~]$ yum search gstreamer
    Loaded plugins: priorities, update-motd, upgrade-helper
    23 packages excluded due to repository priority protections
    ============================================== N/S matched: gstreamer ==============================================
    gstreamer-ffmpeg.x86_64 : GStreamer FFmpeg-based plug-ins
    gstreamer-ffmpeg-debuginfo.x86_64 : Debug information for package gstreamer-ffmpeg
    gstreamer-plugins-bad.x86_64 : GStreamer streaming media framework "bad" plug-ins
    gstreamer-plugins-bad-debuginfo.x86_64 : Debug information for package gstreamer-plugins-bad
    gstreamer-plugins-bad-nonfree.x86_64 : Non Free GStreamer streaming media framework "bad" plug-ins
    gstreamer-plugins-bad-nonfree-debuginfo.x86_64 : Debug information for package gstreamer-plugins-bad-nonfree
    gstreamer-plugins-ugly.x86_64 : GStreamer streaming media framework "ugly" plug-ins
    gstreamer-plugins-ugly-debuginfo.x86_64 : Debug information for package gstreamer-plugins-ugly
    gstreamer-plugins-ugly-devel-docs.noarch : Development documentation for the GStreamer "ugly" plug-ins
    gstreamer1-libav.x86_64 : GStreamer 1.0 libav-based plug-ins
    gstreamer1-libav-debuginfo.x86_64 : Debug information for package gstreamer1-libav
    gstreamer1-plugins-bad-freeworld.x86_64 : GStreamer 1.0 streaming media framework "bad" plug-ins
    gstreamer1-plugins-bad-freeworld-debuginfo.x86_64 : Debug information for package gstreamer1-plugins-bad-freeworld
    gstreamer1-plugins-ugly.x86_64 : GStreamer 1.0 streaming media framework "ugly" plug-ins
    gstreamer1-plugins-ugly-debuginfo.x86_64 : Debug information for package gstreamer1-plugins-ugly
    gstreamer1-plugins-ugly-devel-docs.noarch : Development documentation for the GStreamer "ugly" plug-ins
    gstreamer1-vaapi.x86_64 : GStreamer plugins to use VA API video acceleration
    gstreamer1-vaapi-debuginfo.x86_64 : Debug information for package gstreamer1-vaapi
    gstreamer1-vaapi-devel.x86_64 : Development files for gstreamer1-vaapi
    qt-gstreamer.x86_64 : C++ bindings for GStreamer with a Qt-style API
    qt-gstreamer-debuginfo.x86_64 : Debug information for package qt-gstreamer
    qt-gstreamer-devel.x86_64 : Header files and development documentation for qt-gstreamer

     Name and summary matches only, use "search all" for everything.
    [ec2-user@ip-172-30-1-58 ~]$ %

    However, when I try to install one of these, I get this error :

    $ sudo yum install -y gstreamer-ffmpeg
    Loaded plugins: priorities, update-motd, upgrade-helper
    23 packages excluded due to repository priority protections
    Resolving Dependencies
    --> Running transaction check
    ---> Package gstreamer-ffmpeg.x86_64 0:0.10.13-15.el7.nux will be installed
    --> Processing Dependency: liborc-0.4.so.0()(64bit) for package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64
    --> Processing Dependency: libgstvideo-0.10.so.0()(64bit) for package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64
    --> Processing Dependency: libgstreamer-0.10.so.0()(64bit) for package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64
    --> Processing Dependency: libgstpbutils-0.10.so.0()(64bit) for package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64
    --> Processing Dependency: libgstbase-0.10.so.0()(64bit) for package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64
    --> Processing Dependency: libgstaudio-0.10.so.0()(64bit) for package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64
    --> Finished Dependency Resolution
    Error: Package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64 (nux-dextop)
              Requires: liborc-0.4.so.0()(64bit)
    Error: Package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64 (nux-dextop)
              Requires: libgstreamer-0.10.so.0()(64bit)
    Error: Package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64 (nux-dextop)
              Requires: libgstbase-0.10.so.0()(64bit)
    Error: Package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64 (nux-dextop)
              Requires: libgstaudio-0.10.so.0()(64bit)
    Error: Package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64 (nux-dextop)
              Requires: libgstpbutils-0.10.so.0()(64bit)
    Error: Package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64 (nux-dextop)
              Requires: libgstvideo-0.10.so.0()(64bit)
    You could try using --skip-broken to work around the problem
    You could try running: rpm -Va --nofiles --nodigest
    [ec2-user@ip-172-30-1-58 ~]$

    Supplying the suggested --skip-broken doesn’t help :

    [ec2-user@ip-172-30-1-58 ~]$ sudo yum install -y gstreamer-ffmpeg --skip-broken
    Loaded plugins: priorities, update-motd, upgrade-helper
    23 packages excluded due to repository priority protections
    Resolving Dependencies
    --> Running transaction check
    ---> Package gstreamer-ffmpeg.x86_64 0:0.10.13-15.el7.nux will be installed
    --> Processing Dependency: liborc-0.4.so.0()(64bit) for package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64
    --> Processing Dependency: libgstvideo-0.10.so.0()(64bit) for package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64
    --> Processing Dependency: libgstreamer-0.10.so.0()(64bit) for package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64
    --> Processing Dependency: libgstpbutils-0.10.so.0()(64bit) for package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64
    --> Processing Dependency: libgstbase-0.10.so.0()(64bit) for package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64
    --> Processing Dependency: libgstaudio-0.10.so.0()(64bit) for package: gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64

    Packages skipped because of dependency problems:
       gstreamer-ffmpeg-0.10.13-15.el7.nux.x86_64 from nux-dextop
    [ec2-user@ip-172-30-1-58 ~]$

    So how do I install gstreamer-ffmpeg ? Why aren’t the dependencies automatically being followed ?

  • Piwik 2.1 – Changes for Plugin developers

    24 février 2014, par Piwik Core Team — Development

    This blog post is aimed at developers of Piwik Plugins. If you are simply using Piwik and not developing plugins for Piwik, you do not need to read this post.

    Piwik 2.1 will be released in a few days . This blog post will inform Piwik Plugin developers of the changes in Piwik 2.1 that may require that you update your plugin to work with this latest version.

    Breaking API changes

    Piwik can now handle an unlimited number of users having Super User access (#2589 #4564). In the past Piwik was limited to one Super User who was defined in the config file. From now on all users with Super User access are defined in the database the same way a regular user is. This brought some API changes but we will stay backward compatible until the first of April 2014. This gives you some time to migrate any custom plugins you may use. Although there is a layer for backward compatibility we recommend to make sure your plugin works with Piwik as soon as possible before April 1st.

    List of changes

    Deprecated methods

    The following methods are deprecated and we recommend to use the new methods from now on. There are also some methods which won’t be replaced so make sure to adjust the logic of your plugin.

    \Piwik\Piwik::isUserIsSuperUser => \Piwik\Piwik::hasUserSuperUserAccess
    \Piwik\Piwik::setUserIsSuperUser => \Piwik\Piwik::setUserHasSuperUserAccess
    \Piwik\Piwik::checkUserIsSuperUser => \Piwik\Piwik::checkUserHasSuperUserAccess
    \Piwik\Access::isSuperUser => \Piwik\Access::hasSuperUserAccess
    \Piwik\Access::checkUserIsSuperUser => \Piwik\Access::checkUserHasSuperUserAccess
    \Piwik\Access::setSuperUser => \Piwik\Access::setSuperUserAccess
    \FakeAccess::checkUserIsSuperUser => FakeAccess::checkUserHasSuperUserAccess
    \FakeAccess::setSuperUser => FakeAccess::setSuperUserAccess
    \Piwik\Piwik::isUserIsSuperUserOrTheUser => \Piwik\Piwik::hasUserSuperUserAccessOrIsTheUser
    \Piwik\Piwik::checkUserIsSuperUserOrTheUser => \Piwik\Piwik::checkUserHasSuperUserAccessOrIsTheUser
    \FakeAccess::getSuperUserLogin => No replacement
    \Piwik\Piwik::getSuperUserLogin => No replacement, returns the userLogin of the first Super User we find in the database
    \Piwik\Piwik::getSuperUserEmail => No replacement, returns an empty string from now on
    \Piwik\Access::getSuperUserLogin => No replacement, returns the userLogin of the first Super User we find in the database

    Config Super User

    As mentioned, the Super User was defined in the config and you have accessed the Super User’s data either by using a convenient method like Piwik::getSuperUserLogin or directly via the Config object as follows :

    \Piwik\Config::getInstance->superUser

    As the config user is no longer defined in the config this will no longer work in the future. To stay backward compatible we return the first super user found in the database. This is not necessarily always the same user. So if you have used the super user login in some way in your plugin, make sure you are using the new function such as Piwik::getSuperUserLogin

    Extended Auth Interface

    The last change affects plugins who specify their own Authentication mechanism, for instance when using the custom LoginLDAP plugin. From now on the interface \Piwik\Auth (​https://github.com/piwik/piwik/blob/master/core/Auth.php) requires the methods setTokenAuth and setLogin. There is no backward compatibility layer but we had a look at some plugins defining a custom Authentication adapter to make sure those methods are already defined there as expected.

    For another example of a Login plugin, check out the LoginHttpAuth plugin on the Marketplace.

    After updating the plugin

    After you have made changes in your plugin to keep it compatible with Piwik 2.1, your plugin will no longer work with previous Piwik versions. Therefore you should define the minimum required version in your plugin.json file as follows :

    "require": {
    "piwik": ">=2.1"
    }

    Summary

    Piwik 2.1 introduces some changes in the Piwik Core APIs. This blog post explains how to modify any Plugins compatible with Piwik 2.0 to be compatible with Piwik 2.1. Thank you for taking the time to update your plugins !

    Let us know if you have any feedback. Happy hacking !

    PS : if you use the Web Analytics APIs and the Web Tracking APIs, we guarantee that we will support backwards compatibility of our Web APIs.