
Recherche avancée
Médias (1)
-
La conservation du net art au musée. Les stratégies à l’œuvre
26 mai 2011
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (31)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip 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, parMediaSPIP 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, parLe 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 AmLearningWall 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


- 

-
If I manually measure and account for this vertical offset, would it effectively convert the screen coordinate into the "local" one ?


-
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 ?







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 vy32I’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 — DevelopmentThis 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 databaseConfig 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.