
Recherche avancée
Médias (91)
-
Corona Radiata
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Lights in the Sky
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Head Down
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Echoplex
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Discipline
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Letting You
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (104)
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...) -
ANNEXE : Les plugins utilisés spécifiquement pour la ferme
5 mars 2010, parLe site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)
-
Multilang : améliorer l’interface pour les blocs multilingues
18 février 2011, parMultilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.
Sur d’autres sites (10764)
-
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.
-
FFmpeg : Invalid buffer size when streaming to Twitch
1er décembre 2020, par user1965074I am streaming a 2560x1440 @ 24FPS to Twitch with this command :


ffmpeg \
> -f rawvideo \
> -vcodec rawvideo \
> -s 2560x1440 \
> -pix_fmt bgr24 \
> -r "24" \
> -i 20200818-074700.mp4 \
> -f flv \
> -vcodec libx264 \
> -profile:v main \
> -g 48 \
> -keyint_min 24 \
> -b:v 4500k \
> -minrate 4500k \
> -maxrate 4500k \
> -pix_fmt yuv420p \
> -preset ultrafast \
> -tune zerolatency \
> -threads 0 \
> -bufsize 4500k \
> rtmp://live-arn.twitch.tv/app/{KEY}



It fails with message
Invalid buffer size, packet size 9137374 < expected frame_size 11059200
. Given the error message, I have tried decreasing and increasing the4500k
in all places of the command as explained in this answer but it does not help.

Here is the full log


ffmpeg version 2.8.17-0ubuntu0.1 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 20160609
 configuration: --prefix=/usr --extra-version=0ubuntu0.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
 libavutil 54. 31.100 / 54. 31.100
 libavcodec 56. 60.100 / 56. 60.100
 libavformat 56. 40.101 / 56. 40.101
 libavdevice 56. 4.100 / 56. 4.100
 libavfilter 5. 40.101 / 5. 40.101
 libavresample 2. 1. 0 / 2. 1. 0
 libswscale 3. 1.101 / 3. 1.101
 libswresample 1. 2.101 / 1. 2.101
 libpostproc 53. 3.100 / 53. 3.100
[rawvideo @ 0xfb3120] Estimating duration from bitrate, this may be inaccurate
Input #0, rawvideo, from '20200818-074700.mp4':
 Duration: 00:00:02.96, start: 0.000000, bitrate: 2118169 kb/s
 Stream #0:0: Video: rawvideo (BGR[24] / 0x18524742), bgr24, 2560x1440, 2123366 kb/s, 24 tbr, 24 tbn, 24 tbc
[libx264 @ 0xfbdfc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
[libx264 @ 0xfbdfc0] profile Constrained Baseline, level 5.0
[libx264 @ 0xfbdfc0] 264 - core 148 r2643 5c65704 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=22 lookahead_threads=16 sliced_threads=1 slices=22 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=48 keyint_min=24 scenecut=0 intra_refresh=0 rc_lookahead=0 rc=cbr mbtree=0 bitrate=4500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=4500 vbv_bufsize=4500 nal_hrd=none filler=0 ip_ratio=1.40 aq=0
Output #0, flv, to 'rtmp://live-arn.twitch.tv/app/{KEY}':
 Metadata:
 encoder : Lavf56.40.101
 Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 2560x1440, q=-1--1, 4500 kb/s, 24 fps, 1k tbn, 24 tbc
 Metadata:
 encoder : Lavc56.60.100 libx264
Stream mapping:
 Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0xfbdfc0] VBV underflow (frame 0, -1827312 bits)
Truncating packet of size 11059200 to 9137375me=00:00:02.33 bitrate=6051.7kbits/s 
[rawvideo @ 0xfbca80] Invalid buffer size, packet size 9137374 < expected frame_size 11059200
Error while decoding stream #0:0: Invalid argument
[flv @ 0xfbd020] Failed to update header with correct duration.
[flv @ 0xfbd020] Failed to update header with correct filesize.
frame= 70 fps= 54 q=52.0 Lsize= 2029kB time=00:00:02.91 bitrate=5698.4kbits/s 
video:2026kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.152412%
[libx264 @ 0xfbdfc0] frame I:2 Avg QP:47.09 size:381468
[libx264 @ 0xfbdfc0] frame P:68 Avg QP:51.00 size: 19279
[libx264 @ 0xfbdfc0] mb I I16..4: 100.0% 0.0% 0.0%
[libx264 @ 0xfbdfc0] mb P I16..4: 14.1% 0.0% 0.0% P16..4: 2.7% 0.0% 0.0% 0.0% 0.0% skip:83.2%
[libx264 @ 0xfbdfc0] coded y,uvDC,uvAC intra: 8.2% 94.6% 83.0% inter: 0.0% 3.2% 0.7%
[libx264 @ 0xfbdfc0] i16 v,h,dc,p: 87% 1% 12% 0%
[libx264 @ 0xfbdfc0] i8c dc,h,v,p: 98% 1% 2% 0%
[libx264 @ 0xfbdfc0] kb/s:5688.52



-
How can i create a portrait video using Android's MediaRecorder
23 mars 2015, par urudroidI have an Android application which is able to record and play a videos in portrait mode, those features are working fine on Android phones.
The issue comes up because this video is needed to be played also on iOS devices (after being shared through a server).
iOS is not correctly showing the video as it looks "cropped", but videos recorded on iOS are played without issues.
So, the main difference between videos created on Android and iOS’ is the size and the rotation.
Im using CWAC-Camera library for preview and recording and ffmpeg to scale the video down to 320x568px (as this is the standard size for both Android and iOS apps).
Here is the metadata from an video created from Android :
General
Complete name : android_video.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 447 KiB
Duration : 5s 596ms
Overall bit rate : 654 Kbps
Encoded date : UTC 1904-01-01 00:00:00
Tagged date : UTC 1904-01-01 00:00:00
Writing application : Lavf56.4.101
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L2.1
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 5s 406ms
Bit rate : 536 Kbps
Width : 568 pixels
Height : 320 pixels
Display aspect ratio : 16:9
Original display aspect ratio : 16:9
Rotation : 270°
Frame rate mode : Constant
Frame rate : 14.985 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.197
Stream size : 354 KiB (79%)
Writing library : x264 core 142
Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=6 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=14 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=23.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Language : English
Encoded date : UTC 1904-01-01 00:00:00
Tagged date : UTC 1904-01-01 00:00:00
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 5s 596ms
Bit rate mode : Constant
Bit rate : 132 Kbps
Channel(s) : 2 channels
Channel(s)_Original : 1 channel
Channel positions : Front: C
Sampling rate : 44.1 KHz
Compression mode : Lossy
Stream size : 89.4 KiB (20%)
Language : English
Encoded date : UTC 1904-01-01 00:00:00
Tagged date : UTC 1904-01-01 00:00:00And here is the metadata from the video created on iOS :
General
Complete name : ios_video.mp4
Format : MPEG-4
Format profile : Base Media / Version 2
Codec ID : mp42
File size : 673 KiB
Duration : 7s 38ms
Overall bit rate : 783 Kbps
Encoded date : UTC 2015-03-17 19:16:36
Tagged date : UTC 2015-03-17 19:16:37
Video
ID : 2
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L3.0
Format settings, CABAC : Yes
Format settings, ReFrames : 2 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 7s 33ms
Bit rate : 711 Kbps
Width : 320 pixels
Height : 568 pixels
Display aspect ratio : 0.563
Frame rate mode : Constant
Frame rate : 30.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.130
Stream size : 610 KiB (91%)
Title : Core Media Video
Encoded date : UTC 2015-03-17 19:16:36
Tagged date : UTC 2015-03-17 19:16:37
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
Color range : Limited
Audio
ID : 1
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 7s 38ms
Source duration : 7s 105ms
Bit rate mode : Constant
Bit rate : 64.0 Kbps
Channel(s) : 2 channels
Channel(s)_Original : 1 channel
Channel positions : Front: C
Sampling rate : 44.1 KHz
Compression mode : Lossy
Stream size : 56.8 KiB (8%)
Source stream size : 57.2 KiB (9%)
Title : Core Media Audio
Encoded date : UTC 2015-03-17 19:16:36
Tagged date : UTC 2015-03-17 19:16:37The values width and height are inverted on Android, also the Rotation parameter is set to 270º (this is the rotation parameter for portrait videos).
This is a sketch of how iOS’ videos look on iOS app :
And this is how Android’s videos look on iOS app :
So, in order to get the videos correctly displayed both on iOS and Android i need to be able to set the width to 320 and height to 568 on Android. I tried it from several places (outside and inside CWAC-Camera library) but i always get a Camera.Parameters error.
It is possible to do this on Android ?
EDIT :
This is the result i get when i set the rotation to 0 with ffmpeg :