
Recherche avancée
Autres articles (111)
-
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 -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir -
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 (13092)
-
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.
-
I have an application in flask where it streams a camera using ffmpeg, the problem is that I can not display the video from the camera using the GPU [closed]
17 janvier, par RubenI'll put you in context, I am using flask (python) to display a camera in the browser to stream it, for this I use the following Python code :


command = [
 'ffmpeg',
 '-loglevel', 'warning',
 '-rtsp_transport', 'tcp',
 '-i', self.config['url'],
 '-map', '0:v:0', # fuerzo que solo procese el video
 '-vf', f'fps={self.config["fps"]},scale=640:360:force_original_aspect_ratio=decrease',
 '-c:v', 'h264_nvenc', # especificamos que queremos tirar de la gpu de nvidia
 '-preset', 'p7', # ajusta para la maxima calidad/velocidad (p1 mas rapida pero peor calidad - p7 más lento pero mejor calidad)
 '-qp', self.config['quality'], # control de calidad del codificador (0 [mejor calidad] - 51 [peor calidad])
 '-pix_fmt', 'yuv444p', # se mete explicitamente el formato de pixeles
 '-color_range', 'pc',
 '-an', # desactiva el audio
 '-f', 'image2pipe',
 'pipe:1'
] 

self.process = subprocess.Popen(
 command,
 stdout=subprocess.PIPE,
 stderr=subprocess.PIPE,
 bufsize=10**8
)



The problem is that it does not display the video streaming, but it connects correctly to the camera.


On the other hand, It show me the following warnings, which may have something to do with the display, it's probably the second warning that has to do with the pixel format :


DEBUG :main:FFmpeg [camera1] : Guessed Channel Layout for Input Stream #0.1 : mono
DEBUG :main:FFmpeg [camera1] : [swscaler @ 0x560f70b78680] deprecated pixel format used, make sure you did set range correctly


The server has different encodes installed :


DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders : h264 h264_v4l2m2m h264_qsv h264_cuvid ) (encoders : libx264 libx264rgb h264_nvenc h264_omx h264_qsv h264_v4l2m2m h264_vaapi nvenc nvenc_h264 )


Y uso el h264_nvenc, tambien el servidor tiene soporte de aceleración de hardware con :


libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
Hardware acceleration methods :
vdpau
cuda
vaapi
qsv
drm
opencl


Between them h264_nvenc uses cuda


I expand a little on the information it provides me when using h264_nvenc :


Encoder h264_nvenc [NVIDIA NVENC H.264 encoder]:
 General capabilities: dr1 delay hardware
 Threading capabilities: none
 Supported hardware devices: cuda cuda
 Supported pixel formats: yuv420p nv12 p010le yuv444p p016le yuv444p16le bgr0 rgb0 cuda
h264_nvenc AVOptions:
 -preset <int> E..V....... Set the encoding preset (from 0 to 18) (default p4)
 default 0 E..V.......
 slow 1 E..V....... hq 2 passes
 medium 2 E..V....... hq 1 pass
 fast 3 E..V....... hp 1 pass
 hp 4 E..V.......
 hq 5 E..V.......
 bd 6 E..V.......
 ll 7 E..V....... low latency
 llhq 8 E..V....... low latency hq
 llhp 9 E..V....... low latency hp
 lossless 10 E..V.......
 losslesshp 11 E..V.......
 p1 12 E..V....... fastest (lowest quality)
 p2 13 E..V....... faster (lower quality)
 p3 14 E..V....... fast (low quality)
 p4 15 E..V....... medium (default)
 p5 16 E..V....... slow (good quality)
 p6 17 E..V....... slower (better quality)
 p7 18 E..V....... slowest (best quality)
 -tune <int> E..V....... Set the encoding tuning info (from 1 to 4) (default hq)
 hq 1 E..V....... High quality
 ll 2 E..V....... Low latency
 ull 3 E..V....... Ultra low latency
 lossless 4 E..V....... Lossless
 -profile <int> E..V....... Set the encoding profile (from 0 to 3) (default main)
 baseline 0 E..V.......
 main 1 E..V.......
 high 2 E..V.......
 high444p 3 E..V.......
 -level <int> E..V....... Set the encoding level restriction (from 0 to 62) (default auto)
 auto 0 E..V.......
 1 10 E..V.......
 1.0 10 E..V.......
 1b 9 E..V.......
 1.0b 9 E..V.......
 1.1 11 E..V.......
 1.2 12 E..V.......
 1.3 13 E..V.......
 2 20 E..V.......
 2.0 20 E..V.......
 2.1 21 E..V.......
 2.2 22 E..V.......
 3 30 E..V.......
 3.0 30 E..V.......
 3.1 31 E..V.......
 3.2 32 E..V.......
 4 40 E..V.......
 4.0 40 E..V.......
 4.1 41 E..V.......
 4.2 42 E..V.......
 5 50 E..V.......
 5.0 50 E..V.......
 5.1 51 E..V.......
 5.2 52 E..V.......
 6.0 60 E..V.......
 6.1 61 E..V.......
 6.2 62 E..V.......
 -rc <int> E..V....... Override the preset rate-control (from -1 to INT_MAX) (default -1)
 constqp 0 E..V....... Constant QP mode
 vbr 1 E..V....... Variable bitrate mode
 cbr 2 E..V....... Constant bitrate mode
 vbr_minqp 8388612 E..V....... Variable bitrate mode with MinQP (deprecated)
 ll_2pass_quality 8388616 E..V....... Multi-pass optimized for image quality (deprecated)
 ll_2pass_size 8388624 E..V....... Multi-pass optimized for constant frame size (deprecated)
 vbr_2pass 8388640 E..V....... Multi-pass variable bitrate mode (deprecated)
 cbr_ld_hq 8388616 E..V....... Constant bitrate low delay high quality mode
 cbr_hq 8388624 E..V....... Constant bitrate high quality mode
 vbr_hq 8388640 E..V....... Variable bitrate high quality mode
 -rc-lookahead <int> E..V....... Number of frames to look ahead for rate-control (from 0 to INT_MAX) (default 0)
 -surfaces <int> E..V....... Number of concurrent surfaces (from 0 to 64) (default 0)
 -cbr <boolean> E..V....... Use cbr encoding mode (default false)
 -2pass <boolean> E..V....... Use 2pass encoding mode (default auto)
 -gpu <int> E..V....... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any)
 any -1 E..V....... Pick the first device available
 list -2 E..V....... List the available devices
 -delay <int> E..V....... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX)
 -no-scenecut <boolean> E..V....... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false)
 -forced-idr <boolean> E..V....... If forcing keyframes, force them as IDR frames. (default false)
 -b_adapt <boolean> E..V....... When lookahead is enabled, set this to 0 to disable adaptive B-frame decision (default true)
 -spatial-aq <boolean> E..V....... set to 1 to enable Spatial AQ (default false)
 -spatial_aq <boolean> E..V....... set to 1 to enable Spatial AQ (default false)
 -temporal-aq <boolean> E..V....... set to 1 to enable Temporal AQ (default false)
 -temporal_aq <boolean> E..V....... set to 1 to enable Temporal AQ (default false)
 -zerolatency <boolean> E..V....... Set 1 to indicate zero latency operation (no reordering delay) (default false)
 -nonref_p <boolean> E..V....... Set this to 1 to enable automatic insertion of non-reference P-frames (default false)
 -strict_gop <boolean> E..V....... Set 1 to minimize GOP-to-GOP rate fluctuations (default false)
 -aq-strength <int> E..V....... When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8)
 -cq <float> E..V....... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)
 -aud <boolean> E..V....... Use access unit delimiters (default false)
 -bluray-compat <boolean> E..V....... Bluray compatibility workarounds (default false)
 -init_qpP <int> E..V....... Initial QP value for P frame (from -1 to 51) (default -1)
 -init_qpB <int> E..V....... Initial QP value for B frame (from -1 to 51) (default -1)
 -init_qpI <int> E..V....... Initial QP value for I frame (from -1 to 51) (default -1)
 -qp <int> E..V....... Constant quantization parameter rate control method (from -1 to 51) (default -1)
 -weighted_pred <int> E..V....... Set 1 to enable weighted prediction (from 0 to 1) (default 0)
 -coder <int> E..V....... Coder type (from -1 to 2) (default default)
 default -1 E..V.......
 auto 0 E..V.......
 cabac 1 E..V.......
 cavlc 2 E..V.......
 ac 1 E..V.......
 vlc 2 E..V.......
 -b_ref_mode <int> E..V....... Use B frames as references (from 0 to 2) (default disabled)
 disabled 0 E..V....... B frames will not be used for reference
 each 1 E..V....... Each B frame will be used for reference
 middle 2 E..V....... Only (number of B frames)/2 will be used for reference
 -a53cc <boolean> E..V....... Use A53 Closed Captions (if available) (default true)
 -dpb_size <int> E..V....... Specifies the DPB size used for encoding (0 means automatic) (from 0 to INT_MAX) (default 0)
 -multipass <int> E..V....... Set the multipass encoding (from 0 to 2) (default disabled)
 disabled 0 E..V....... Single Pass
 qres 1 E..V....... Two Pass encoding is enabled where first Pass is quarter resolution
 fullres 2 E..V....... Two Pass encoding is enabled where first Pass is full resolution
 -ldkfs <int> E..V....... Low delay key frame scale; Specifies the Scene Change frame size increase allowed in case of single frame VBV and CBR (from 0 to 255) (default 0)
</int></int></int></boolean></int></int></int></int></int></int></int></boolean></boolean></float></int></boolean></boolean></boolean></boolean></boolean></boolean></boolean></boolean></boolean></boolean></int></int></boolean></boolean></int></int></int></int></int></int></int>


If anyone has some idea or needs more information to help me, I would appreciate it.


-
After merge videos, the duration is too long - ffmpeg
20 février 2017, par Thanh DaoI have file txt with content
file intro.mp4
file video.mp4
file outtro.mp4with duration by
10s
,178s
,13s
.I use ffmpeg to merge 3 files into one with below command :
ffmpeg -f concat -i "file.txt" -vcodec copy -acodec copy "endfile.mp4"
The duration of
endfile.mp4
is longer11
mins (660s
).I have a question that
which params of video affect to merge?
Andwhich common params to merge another videos?
My English really too bad. Sorry for it :)
Good working this week !P/S
Details infor of files :intro.mp4
:ffprobe version N-82885-g6d09d6e Copyright (c) 2007-2016 the FFmpeg developers<br />
built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-17)<br />
configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags='-L/root/ffmpeg_build/lib -ldl' --<br />bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame<br /> --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265<br />
libavutil 55. 43.100 / 55. 43.100<br />
libavcodec 57. 68.100 / 57. 68.100<br />
libavformat 57. 61.100 / 57. 61.100<br />
libavdevice 57. 2.100 / 57. 2.100<br />
libavfilter 6. 68.100 / 6. 68.100<br />
libswscale 4. 3.101 / 4. 3.101<br />
libswresample 2. 4.100 / 2. 4.100<br />
libpostproc 54. 2.100 / 54. 2.100<br />
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/path/to/intro.mp4':<br />
Metadata:<br />
major_brand : isom<br />
minor_version : 512<br />
compatible_brands: isomiso2avc1mp41<br />
encoder : Lavf56.23.100<br />
Duration: 00:00:10.08, start: -0.013061, bitrate: 701 kb/s<br />
Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)<br />
Metadata:<br />
handler_name : SoundHandler<br />
Stream #0:1(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 853 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)<br />
Metadata:<br />
handler_name : VideoHandler<br />outtro.mp4
:ffprobe version N-82885-g6d09d6e Copyright (c) 2007-2016 the FFmpeg developers<br />
built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-17)<br />
configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags='-L/root/ffmpeg_build/lib -ldl' --<br />bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame<br /> --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265<br />
libavutil 55. 43.100 / 55. 43.100<br />
libavcodec 57. 68.100 / 57. 68.100<br />
libavformat 57. 61.100 / 57. 61.100<br />
libavdevice 57. 2.100 / 57. 2.100<br />
libavfilter 6. 68.100 / 6. 68.100<br />
libswscale 4. 3.101 / 4. 3.101<br />
libswresample 2. 4.100 / 2. 4.100<br />
libpostproc 54. 2.100 / 54. 2.100<br />
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/path/to/outtro.mp4':<br />
Metadata:<br />
major_brand : isom<br />
minor_version : 512<br />
compatible_brands: isomiso2avc1mp41<br />
encoder : Lavf56.23.100<br />
Duration: 00:00:13.08, start: -0.013061, bitrate: 481 kb/s<br />
Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)<br />
Metadata:<br />
handler_name : SoundHandler<br />
Stream #0:1(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 392 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)<br />
Metadata:<br />
handler_name : VideoHandler<br />video.mp4
ffprobe version N-82885-g6d09d6e Copyright (c) 2007-2016 the FFmpeg developers<br />
built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-17)<br />
configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags='-L/root/ffmpeg_build/lib -ldl' --<br />bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame<br /> --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265<br />
libavutil 55. 43.100 / 55. 43.100<br /><br />
libavcodec 57. 68.100 / 57. 68.100<br /><br />
libavformat 57. 61.100 / 57. 61.100<br /><br />
libavdevice 57. 2.100 / 57. 2.100<br /><br />
libavfilter 6. 68.100 / 6. 68.100<br /><br />
libswscale 4. 3.101 / 4. 3.101<br /><br />
libswresample 2. 4.100 / 2. 4.100<br /><br />
libpostproc 54. 2.100 / 54. 2.100<br /><br />
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'path/to/video.mp4':<br />
Metadata:<br />
major_brand : isom<br />
minor_version : 512<br />
compatible_brands: isomiso2avc1mp41<br />
encoder : Lavf57.61.100<br />
Duration: 00:02:58.38, start: 0.000000, bitrate: 922 kb/s<br />
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 782 kb/s, 29.97 fps, 29.97 tbr, 30k <br />tbn, 59.94 tbc (default)<br />
Metadata:<br />
handler_name : VideoHandler<br />
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 130 kb/s (default)<br />
Metadata:<br />
handler_name : SoundHandler<br />