
Recherche avancée
Médias (1)
-
Bug de détection d’ogg
22 mars 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Video
Autres articles (99)
-
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...) -
Emballe médias : à quoi cela sert ?
4 février 2011, parCe plugin vise à gérer des sites de mise en ligne de documents de tous types.
Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ; -
Configuration spécifique pour PHP5
4 février 2011, parPHP5 est obligatoire, vous pouvez l’installer en suivant ce tutoriel spécifique.
Il est recommandé dans un premier temps de désactiver le safe_mode, cependant, s’il est correctement configuré et que les binaires nécessaires sont accessibles, MediaSPIP devrait fonctionner correctement avec le safe_mode activé.
Modules spécifiques
Il est nécessaire d’installer certains modules PHP spécifiques, via le gestionnaire de paquet de votre distribution ou manuellement : php5-mysql pour la connectivité avec la (...)
Sur d’autres sites (13233)
-
French CNIL recommends Piwik : the only analytics tool that does not require Cookie Consent
29 octobre 2014, par Matthieu Aubry — Press ReleasesThere has been recent and important changes in France regarding data privacy and the use of cookies. This blog post will introduce you to these changes and explain how you make your website compliant.
Cookie Consent in the data freedom law
Since the adoption of the EU Directive 2009/136/EC “Telecom Package”, Internet users must be informed and provide their prior consent to the storage of cookies on their computer. The use of cookies for advertising, analytics and social share buttons require the user’s consent :
It is necessary to inform users of the presence, purpose and duration of the cookies placed in their browsers, and the means at their disposal to oppose it.
What is a cookie ?
Cookies are tracers placed on Internet users’ hard drives by the web hosts of the visited website. They allow the website to identify a single user across multiple visits with a unique identifier. Cookies may be used for various purposes : building up a shopping cart, storing a website’s language settings, or targeting advertising by monitoring the user’s web-browsing.
Which cookies are exempt from the Cookie Consent rule ?
France has exempted certain cookies from the cookie consent rule : for those cookies that are strictly necessary to offer the service sought after by the user you do not need to ask consent to user. Examples of such cookies are :
- the shopping cart cookie,
- authentication cookies,
- short lived session cookies,
- load balancer cookies,
- certain first party analytics (such as Piwik cookies),
- persistent cookies for interface personalisation.
Asking users for consent for Analytics (tracking) Cookies
For all cookies that are not exempted from the Cookie Consent then you will need to :
- obtain consent from web users before placing or reading cookies and similar technologies,
- clearly inform web users of the different purposes for which the cookies and similar technologies will be used,
- propose a real choice to web users between accepting or refusing cookies and similar technologies.
You don’t need Cookie Consent with Piwik
The excellent news is that there is a way to bypass the Cookie Consent banner on your website :
If you are using another analytics solution other than Piwik then you will need to ask users for consent. If you do not want to ask for consent then download and install Piwik or signup to Piwik Cloud to get started.
If you are already using Piwik you need to do two simple things : (1) anonymise visitor IP addresses (at least two bytes) and (2) include the opt-out iframe solution in your website (learn more).
Note that these recommendations currently only apply in France, but because the law is European we can expect similar findings in other European countries.
CNIL recommends Piwik
We are proud that the CNIL has identified Piwik as the only tool that respects all privacy requirements set by the European Telecom law.
About the CNIL
The CNIL is an independent administrative body that operates in accordance with the French data protection legislation. The CNIL has been entrusted with the general duty to inform people of the rights that the data protection legislation allows them.
The role and responsabilities of the CNIL are :
- to protect citizens and their data
- to regulate and control processing of personal data
- to inspect the security of data processing systems and applications, and impose penalties
Piwik and Privacy
At Piwik we love Privacy – our open analytics platform comes with built-in Privacy.
Future of Privacy at Piwik
Piwik is already the leader when it comes to respecting user privacy but we plan to continue improving privacy within the open analytics platform. For more information and specific ideas see Privacy enhancing issues in our issue tracker.
References
Learn more in these articles in French [fr] or English :
- [fr] Sites web, cookies et autres traceurs
- [fr] Comment me mettre en conformité avec la recommandation “Cookies” de la CNIL ?
- [fr] Recommandation sur les cookies : obligations pour les responsables de sites ?
- CNIL Starts Controlling Cookie Settings in October 2014
- CNIL recommends Piwik for compliance with data protection laws
Contact
To learn more about Piwik, please visit piwik.org,
Get in touch with the Piwik team : Contact information,
For professional support contact Piwik PRO.
-
javacv FFMPEG decode memory leak ?
25 mars 2015, par Liquan NieI’m new to JAVACV and I am using FFMPEG to play some video file as follows
My enviroument is windows 8 with jdk7 and javacv0.10.String file_path ="D:\\1.mp4";
// regist all format and codec
avformat.av_register_all();
avcodec.avcodec_register_all();
// open file
avformat.AVFormatContext avFormatCtx = avformat.avformat_alloc_context();
if (avformat.avformat_open_input(avFormatCtx, file_path, null, null) != 0)
{
System.out.println("cann't open file\r\n");
return;
}
// find stream info
if (avformat.avformat_find_stream_info(avFormatCtx, (AVDictionary)null) < 0)
{
System.out.println("can't find stream info\r\n");
return;
}
int videoIndex = -1;
for(int i=0; i< avFormatCtx.nb_streams();i++)
{
if(avFormatCtx.streams(i).codec().codec_type() == avutil.AVMEDIA_TYPE_VIDEO)
{
videoIndex = i;
}
}
// determ codec
avcodec.AVCodecContext avCodecCtx = avFormatCtx.streams(videoIndex).codec();
avcodec.AVCodec codec = avcodec.avcodec_find_decoder(avCodecCtx.codec_id());
if (codec == null)
{
System.out.println("codec not found");
return;
}
if(avcodec.avcodec_open2(avCodecCtx, codec, (AVDictionary)null) < 0)
{
System.out.println("cann't open avcodec\r\n");
}
avutil.AVFrame frame = avcodec.avcodec_alloc_frame();
avutil.AVFrame frameRGB = avcodec.avcodec_alloc_frame();
int numByte = avcodec.avpicture_get_size(avutil.AV_PIX_FMT_RGB24, avCodecCtx.width(), avCodecCtx.height());
Pointer outBuffer = avutil.av_malloc(numByte);
avcodec.avpicture_fill(new AVPicture(frameRGB), outBuffer.asByteBuffer(), avutil.AV_PIX_FMT_RGB24, avCodecCtx.width(), avCodecCtx.height());
avformat.av_dump_format(avFormatCtx, 0, file_path, 0);
System.out.println(avFormatCtx.duration());
SwsContext img_convert_ctx = swscale.sws_getContext(avCodecCtx.width(), avCodecCtx.height(), avCodecCtx.pix_fmt(), avCodecCtx.width(), avCodecCtx.height(), avutil.AV_PIX_FMT_RGB24, swscale.SWS_BICUBIC, null, null, (double[])null);
AVPacket pkt = new AVPacket();
int y_size = avCodecCtx.width()*avCodecCtx.height();
avcodec.av_new_packet(pkt, y_size);
opencv_highgui.cvNamedWindow(WINDOW_NAME);
IplImage showImage = opencv_core.cvCreateImage(opencv_core.cvSize(avCodecCtx.width(), avCodecCtx.height()), opencv_core.IPL_DEPTH_8U, 3);
// read frames loop
int frameNumbers = avformat.av_read_frame(avFormatCtx, pkt);
System.out.println("frame number is "+frameNumbers);
while (avformat.av_read_frame(avFormatCtx, pkt) >= 0)
{
//System.out.println(pkt.asByteBuffer());
if (pkt.stream_index() == videoIndex)
{
IntPointer ip = new IntPointer();
int ret = avcodec.avcodec_decode_video2(avCodecCtx, frame, ip, pkt);
if (ret < 0)
{
System.out.println("codec error\r\n");
return;
}
if (ip.get()!= 0)
{
swscale.sws_scale(img_convert_ctx, frame.data(), frame.linesize(), 0, avCodecCtx.height(), frameRGB.data(), frameRGB.linesize());
showImage.imageData(frameRGB.data(0));
showImage.widthStep(frameRGB.linesize().get(0));
opencv_highgui.cvShowImage(WINDOW_NAME, showImage);
opencv_highgui.cvWaitKey(25);
}
}
}
showImage.release();
opencv_highgui.cvDestroyWindow(WINDOW_NAME);
avutil.av_free(frameRGB);
avcodec.avcodec_close(avCodecCtx);
avformat.avformat_close_input(avFormatCtx);but i run into get this error
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000767c35ed, pid=11884, tid=3960
#
# JRE version: 7.0_13-b20
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.7-b01 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C [avcodec-56.dll+0x4835ed] avcodec_decode_video2+0xbd
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# E:\code\android\TestJAVACV\hs_err_pid11884.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'D:\1.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
creation_time : 1970-01-01 00:00:00
encoder : Lavf53.29.100
Duration: 00:08:30.27, start: 0.000000, bitrate: 160 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 960x540 [SAR 1:1 DAR 16:9], 28 kb/s, 15 fps, 15 tbr, 15 tbn, 30 tbc (default)
Metadata:
creation_time : 1970-01-01 00:00:00
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
creation_time : 1970-01-01 00:00:00
handler_name : SoundHandlerand in the log file i found that the enden space heap in jvm has been used 98%. but I don’t know where is the issue, since the document of ffmpeg is not that enough, I feel difficult to know more about how to use it well ,any suggestions ??
Heap
PSYoungGen total 23872K, used 20250K [0x00000000e5600000, 0x00000000e70a0000, 0x0000000100000000)
eden space 20480K, 98% used [0x00000000e5600000,0x00000000e69c69f8,0x00000000e6a00000) -
How to verify user permissions – Introducing the Piwik Platform
9 novembre 2014, par Thomas Steur — DevelopmentThis is the next post of our blog series where we introduce the capabilities of the Piwik platform (our previous post was How to make your plugin multilingual). This time you’ll learn how to verify user permissions. For this tutorial you will need to have basic knowledge of PHP and the Piwik platform.
When should a plugin verify permissions ?
Usually you want to do this before executing any action – such as deleting or fetching data – and before rendering any sensitive information that should not be accessible by everyone. For instance in an API method or Controller action. You sometimes also need to verify permissions before registering menu items or widgets.
How does Piwik’s user management work ?
It is quite simple as it only differentiates between a few roles : View permission, Admin permission and Super User permission. If you manage multiple websites with Piwik a user can be assigned to different roles as a user might have no permission for some websites but view or admin permission for another set of websites.
Worth mentioning is that roles inherit from each other. This means the role admin automatically includes the role view and a super user automatically covers the view and admin role.
Getting started
In this post, we assume that you have already set up your development environment and created a plugin. If not, visit the Piwik Developer Zone where you’ll find the tutorial Setting up Piwik and other Guides that help you to develop a plugin.
Verifying user permissions
To protect your data the platform offers many convenient methods in the \Piwik\Piwik class. There you will find methods that either start with
check
,is
orhas
. While methods that start withcheck
throw an exception in case a condition is not met, the other methods return a booleantrue
orfalse
.Use methods that throw an exception if you want to stop any further execution in case a user does not have an appropriate role. The platform will catch the exception and display an error message or ask the user to log in.
- public function deleteAllMessages()
- {
- // delete messages only if user has super user access, otherwise show an error message
- Piwik::checkUserSuperUserAccess();
- $this->getModel()->deleteAllMessages();
- }
Use methods that return a boolean for instance when registering menu items or widgets.
- public function configureAdminMenu(MenuAdmin $menu)
- {
- if (Piwik::hasUserSuperUserAccess()) {
- $menu->addPlatformItem('Plugins', $this->urlForDefaultAction());
- }
- }
It is important to be aware that just because the menu item won’t be displayed in the UI a user can still open the registered URL manually. Therefore you have to check for permissions in the actual controller action as well.
View permission
A user having a view permission should be only able to view reports but not make any changes apart from his personal settings. The methods that end with
UserHasSomeViewAccess
make sure a user has at least view permission for one website whereas the methods*UserHasViewAccess($idSites = array(1,2,3))
check whether a user has view access for all of the given websites.- Piwik::checkUserHasSomeViewAccess();
As a plugin developer you would usually use the latter example to verify the permissions for specific websites. Use the first example in case you develop something like an “All Websites Dashboard” where you only want to make sure the user has a view permission for at least one website.
Admin permission
A user having an admin permission cannot only view reports but also change website related settings. The methods to check for this role are similar to the ones before, just swap the term
View
withAdmin
.- Piwik::checkUserHasSomeAdminAccess();
Super user permission
A user having the super user permission is allowed to access all of the data stored in Piwik and change any settings. To check if a user has this role use one of the methods that end with
UserSuperUserAccess
.Piwik::checkUserHasSuperUserAccess();
As a plugin developer you would check for this permission for instance in places where your plugin shows an activity log over all users or where it offers the possibility to change any system wide settings.
Getting information about the currently logged in user
Sometimes you might want to know which user is currently logged in. This can be useful if you want to persist user related information in the database or if you want to send an email to the currently logged in user. You can easily get this information by calling the following methods :
- $login = Piwik::getCurrentUserLogin()
- $email = Piwik::getCurrentUserEmail()
Advanced features
Of course there is more that you can do. For instance you can verify whether a user is an anonymous user or whether a user has a specific role. You can also perform any operation in the context of a super user even if the current user does not have this role. Would you like to know more about those features ? Check out the Piwik class reference, the Security guide and the Manage Users user guide.
If you have any feedback regarding our APIs or our guides in the Developer Zone feel free to send it to us.