
Recherche avancée
Médias (1)
-
Video d’abeille en portrait
14 mai 2011, par
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (77)
-
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 -
XMP PHP
13 mai 2011, parDixit Wikipedia, XMP signifie :
Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...) -
Librairies et binaires spécifiques au traitement vidéo et sonore
31 janvier 2010, parLes logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
Binaires complémentaires et facultatifs flvtool2 : (...)
Sur d’autres sites (5857)
-
How should I write my privacy notice for Matomo Analytics under GDPR ?
24 avril 2018, par InnoCraftImportant note : this blog post has been written by digital analysts, not lawyers. The purpose of this article is to show you an example of a privacy notice for Matomo under GDPR. This work comes from our interpretation of the UK privacy commission : ICO. It cannot be considered as professional legal advice. So as GDPR, this information is subject to change. We strongly advise you to have a look at the different privacy authorities in order to have up to date information.
A basic rule of thumb is that if you are not processing personal data, then you do not need to show any privacy notice. But if you are doing so, such as processing full IP addresses, then a privacy notice is required at the time of the data collection. Please note that personal data may also be hidden, for example, in page titles or page URLs.
In this blog post, we will define what a privacy notice is according to GDPR and how to write it if you are using Matomo and you are processing personal data.
What is a privacy notice under GDPR ?
One of the most important rights that a data subject has under GDPR, is the right to be informed about the collection and use of their personal data.
Here is what ICO is saying about the privacy notice :
“You must provide individuals with information including : your purposes for processing their personal data, your retention periods for that personal data, and who it will be shared with. We call this ‘privacy information’.”
“When you collect personal data from the individual it relates to, you must provide them with privacy information at the time you obtain their data.”
Note that a privacy notice is different from a privacy policy.
The privacy notice has to include :
- the reasons why you are processing the personal data
- for how long
- who the different parties you are going to share them with are
So whatever lawful basis you are using (explicit consent or legitimate interest), you need to have a privacy notice if you collect personal data.
What does this privacy notice look like ?
ICO is providing best practices in order to display the information :
- a layered approach
- dashboards
- just-in-time notices
- icons
- mobile and smart device functionalities
Once more, it really depends on the data you are processing with Matomo. If you wish to track personal data on the entire website, you will probably have an upper or footer privacy notice such as :
If you wish to process specific data, you could also insert just-in-time notices such as :
What is the information you need to disclose to the final user ?
To us, there are two things to distinguish between the privacy notice and the privacy policy.
According to ICO, the privacy notice needs to include the 3 following elements :
- the reasons why you are processing the personal data
- for how long
- who are the different parties you are going to share them with
But you also need to inform them about :
- The name and contact details of your organisation.
- The name and contact details of your representative (if applicable).
- The contact details of your data protection officer (if applicable).
- The purposes of the processing.
- The lawful basis for the processing.
- The legitimate interests for the processing (if applicable).
- The categories of personal data obtained (if the personal data is not obtained from the individual it relates to).
- The recipients or categories of recipients of the personal data.
- The details of transfers of the personal data to any third countries or international organisations (if applicable).
- The retention periods for the personal data.
- The rights available to individuals in respect of the processing.
- The right to withdraw consent (if applicable).
- The right to lodge a complaint with a supervisory authority.
- The source of the personal data (if the personal data is not obtained from the individual it relates to).
- The details of whether individuals are under a statutory or contractual obligation to provide the personal data (if applicable, and if the personal data is collected from the individual it relates to).
- The details of the existence of automated decision-making, including profiling (if applicable).
Pretty long, don’t you think ? In order to reduce it, you can either adopt a layered approach where your “pop-up” window will act as a drop down menu. Or from what we understood, page 5 of this document provided by ICO, a privacy notice can link to a more detailed document, such as a privacy policy page.
Examples
Let’s take the example of a website which tracks the non-anonymised full IP address, and using User ID functionality to keep track of logged-in users. Under GDPR, the owner of the website will have to choose either to process personal data based on “Legitimate interests” or on “Consent”. Here is how it will look like :
Example of a privacy notice under GDPR Legitimate interests
This site uses Matomo to analyze traffic and help us to improve your user experience.
We process your email address and IP address and cookies are stored on your browser for 13 months. This data is only processed by us and our web hosting platform. Please read our Privacy Policy to learn more.
Example of a privacy notice under GDPR Consent
This site uses Matomo to analyze traffic and help us to improve your user experience.
We process your email address and IP address and cookies are stored on your browser for 13 months. This data is only processed by us and our web hosting platform.
[Accept] or [Opt-out]
Please read our Privacy Policy to learn more.
Once that information is provided to the user, you can then link it to your privacy policy where you will provide more details about it. Soon we will issue a blog post dealing with how to write a privacy policy page for Matomo.
The post How should I write my privacy notice for Matomo Analytics under GDPR ? appeared first on Analytics Platform - Matomo.
-
Error initializing complex filters. Invalid argument error when running ffmpeg from Kotlin
17 janvier 2020, par int_32I’m creating a wrapper for ffmpeg, and it has the following methods :
fun executeCommand(args: Array<string>): AppRunner.AppResult {
return appRunner.run(ffmpegPath, args)
}
class AppRunner {
fun run(
app: String,
args: Array<string>,
timeoutAmount: Long = 60000,
timeoutUnit: TimeUnit = TimeUnit.SECONDS
): AppResult {
val command = mutableListOf(app)
command.addAll(args)
val processResult = ProcessBuilder(command)
.redirectOutput(ProcessBuilder.Redirect.PIPE)
.redirectError(ProcessBuilder.Redirect.PIPE)
.start()
.apply {
waitFor(timeoutAmount, timeoutUnit)
}
val exitCode = processResult.exitValue()
val stdOut = processResult.inputStream.bufferedReader().readText()
val stdErr = processResult.errorStream.bufferedReader().readText()
return AppResult(exitCode, stdOut, stdErr)
}
}
</string></string>And :
fun concatenateAudioFiles(files: Collection<file>, outFile: File) {
val args = mutableListOf<string>()
files.forEach { file ->
args.add("-i")
args.add(file.absolutePath)
}
// Create filter
val filterStringBuilder = StringBuilder()
filterStringBuilder.append("'")
files.forEachIndexed { index, _ ->
filterStringBuilder.append("[$index:0]")
}
filterStringBuilder.append("concat=n=")
filterStringBuilder.append(files.size)
filterStringBuilder.append(":v=0:a=1[out]")
filterStringBuilder.append("'")
args.add("-filter_complex")
args.add(filterStringBuilder.toString())
args.add("-map")
args.add("'[out]'")
args.add(outFile.absolutePath)
logger.info { "Filter: ${args.joinToString(" ")}" }
val result = executeCommand(args.toTypedArray())
if (!result.isSuccessful()) {
throw FfmpegException(result.toString())
}
}
</string></file>Args generated by this method are OK :
-i silence-0.5.mp3 -i vo_1543189276830.mp3 -i silence-0.5.mp3 -filter_complex '[0:0][1:0][2:0]concat=n=3:v=0:a=1[out]' -map '[out]' vo_final_1543189276833.mp3
And if I run ffmpeg with this args from command line it works fine.
But when running within Kotlin app, it gives the following error :
[AVFilterGraph @ 0x7fd134071500] No such filter: '[0:0][1:0][2:0]concat=n=3:v=0:a=1[out]'
Error initializing complex filters.
Invalid argumentI’ve already tried to :
- Check similar questions
- Escape
'
with\
- Replace
'
with"
Result is the same.
FFMPEG 4.1, Kotlin 1.3, Java 1.8, macOS 10.13.6
-
How to concat multiple video files which have different stream order with FFmpeg ?
2 février 2019, par Twisted LullabyI have 3 video files with following info :
Input #0, mpegts, from '01.ts':
Duration: 00:00:06.08, start: 0.000000, bitrate: 931 kb/s
Program 1
Stream #0:0[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 65 kb/s
Stream #0:1[0x102]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(progressive), 852x480 [SAR 640:639 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Input #0, mpegts, from '02.ts':
Duration: 00:00:06.06, start: 6.016000, bitrate: 872 kb/s
Stream #0:0[0x102]: Video: h264 (High), yuv420p(progressive), 852x480 [SAR 640:639 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x101]: Audio: aac (LC), 48000 Hz, stereo, fltp, 66 kb/s
Input #0, mpegts, from '03.ts':
Duration: 00:00:06.07, start: 12.010667, bitrate: 822 kb/s
Stream #0:0[0x102]: Video: h264 (High), yuv420p(progressive), 852x480 [SAR 640:639 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x101]: Audio: aac (LC), 48000 Hz, stereo, fltp, 69 kb/sMost of them are the same, but somehow 01.ts has different stream order with the other two. My question is, how to concat them ? I’ve tried to put them in a txt file and concat :
-f concat -safe 0 -i video_file.txt -c copy -bsf:a aac_adtstoasc output.mp4
But it’s not working. Error message is :
Error parsing ADTS frame header!
Error applying bitstream filters to an output packet for stream #0:1.And what if I have hundreds of video files that may have diffrent stream order like this ?
EDIT
aergistal’s answer is correct, but I have another problem : in another collection of videos, the stream ids are different, as following :
Input #0, mpegts, from 'another1.ts':
Duration: 00:00:08.04, start: 17.401333, bitrate: 284 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p(progressive), 352x288 [SAR 16:11 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 124 kb/s
Input #0, mpegts, from 'another2.ts':
Duration: 00:00:08.04, start: 33.401333, bitrate: 300 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: FFmpeg
Stream #0:0[0x100]: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p(progressive), 352x288 [SAR 16:11 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 145 kb/sIs there a way to set the
exact_stream_id
automatically instead of check it everytime ?