
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 (28)
-
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 -
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 (...)
-
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" ;
Sur d’autres sites (7607)
-
How to not process any personal data with Matomo and what it means for you
22 avril 2018, par InnoCraftDisclaimer : this blog post has been written by digital analysts, not lawyers. The purpose of this article is to explain how to not process any personal data with Matomo in order to avoid going through the GDPR compliance process with Matomo analytics. This work comes from our interpretation of different sources : the official GDPR text and the UK privacy commission : ICO resources. It cannot be considered as a professional legal advice. So as GDPR, this information is subject to change. GDPR may be also known as RGPD in French, Spanish, Portuguese, Datenschutz-Grundverordnung, DS-GVO in German, Algemene verordening gegevensbescherming in Dutch, Regolamento generale sulla protezione dei dati in Italian.
Are you looking for a way to not process any personal data with Matomo ? If the answer is yes, you are at the right place. From our understanding, if you are not processing personal data, then you shouldn’t be concerned about GDPR. Our inspiration came from this official reference :
“The principles of data protection should therefore not apply to anonymous information, namely information which does not relate to an identified or identifiable natural person or to personal data rendered anonymous in such a manner that the data subject is not or no longer identifiable. This Regulation does not therefore concern the processing of such anonymous information, including for statistical or research purposes.“
In this blog post we are going to see how you can configure Matomo in order to not process any personal data and what the consequences are.
Which data is considered as personal according to GDPR ?
From : eur-lex.europa.eu
(1) “‘personal data’ means any information relating to an identified or identifiable natural person (‘data subject’) ; an identifiable natural person is one who can be identified, directly or indirectly, in particular by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or more factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that natural person ;”
(30) “Natural persons may be associated with online identifiers provided by their devices, applications, tools and protocols, such as internet protocol addresses, cookie identifiers or other identifiers such as radio frequency identification tags. This may leave traces which, in particular when combined with unique identifiers and other information received by the servers, may be used to create profiles of the natural persons and identify them.”
So according to your Matomo configuration, it may leave some traces within the following data :
- IP addresses
- Cookies identifiers
- Page URL or page titles
- User ID and Custom “personal” data
- Ecommerce order IDs
- Location
- Heatmaps & Session Recordings
Let’s see each of them in more detail.
1. IP addresses
IP addresses can indirectly identify an individual. It can also give a good approximation of an individual’s location.
IP addresses are therefore considered as personal data which means you need to anonymize them. To do so, a feature is available within Matomo, where you can anonymize the IP. We recommend you to anonymize at least the last two bytes :
See our configuration guide for more information
What are the consequences of using this feature ?
When applying IP anonymization on two bytes, you will no longer be able to see the full IP in the UI.
Moreover, there is a small chance that 2 different visitors with the same device and software configuration will be identified as the same visitor if the anonymised IP address is the same for both.
2. Cookies
It is not clear for us yet if all cookies are considered equal under GDPR. At this stage it is too early to make a definite decision.
Did you know ? Matomo lets you optionally disable the creation of cookies by adding an extra line of code to your tracking code see below.
See our configuration guide for more information
What are the consequences of using this feature ?
Matomo is using a few first party cookies, and the following cookies may hold personal data :
- _pk_id : contains a visitor id used to identify unique visitors
- _pk_ref : to identify from where they came from
If Matomo cannot set cookies, it will use a technique called Fingerprint. It is based on several metadata such as the operating system, browser, browser plugins, IP address, browser language ; just to name a few to identify a unique visitor. As this feature is less accurate than the one using cookies, the number of visitors and visits will be affected.
3. Page URLs and page titles
URLs are not mentioned within the official GDPR text. However, we know that according to the different CMS you use, some of them may have URLs including personal identifiers.
For example :
As a result, you need to find a way to anonymize this data.
There are several ways you can perform this action according to your website. If your website is adding the personal data through query parameters, you can define a rule to exclude them from Matomo.
If the personal data are not included within query parameters, you can use the “setCustomURL” feature and write your code as follow :
See our developer documentation for more information
If you are also processing personal data within the title tag, you can use the following function : “setDocumentTitle”.
What are the consequences of using this feature ?
By anonymizing the URLs containing personal data, some of your URLs will be grouped together.
4. User ID and custom personal data
User ID is a feature (a tracking code needs to be added) which allows you to identify the same user across different devices.
A User ID needs a corresponding database in order to link a user across different devices, it can be an email, a username, a name, a random number… All those data are either direct or non direct online identifiers and are therefore under the scope of GDPR.
It will be the same situation if you are using custom variables and/or custom dimensions in order to push personal data to the system.
To continue using the User ID feature but not recording personal data, you can consider using a hash function which will anonymize/convert your actual User ID into something like “3jrj3j34434834urj33j3”.
Alternatively, you can enable the feature “Anonymise User IDs”. This feature will be available starting in Matomo 3.5.0 :
What are the consequences of using this feature ?
Under GDPR, User ID is personal data. Anonymizing the User ID using a hash function or our built-in functionality make the User Id pseudo-anonymous, which means it can’t be easily identified to a specific user. As a result, you will still get accurate visits and unique visitors metrics, and the Visitor Profile, but without tracking the original User ID which is personal data.
5. Ecommerce order IDs
Order IDs are the reference number assigned to the products/services bought by your customers. As this information can be crossed with your internal database, it is considered as an online identifier and is therefore under the scope of GDPR. As for User ID, you can anonymize order IDs using our built-in functionality to Anonymise Order IDs (see section 4. about User Id).
What are the consequences of anonymizing order ID ?
It really depends on your former use of order IDs. If you were not using them in the past then you should not see any difference.
6. Location
Based on the IP address of a visitor, Matomo can detect the visitors location. Location data is problematic for privacy as this technology has become quite accurate and can detect not only the city a visitor is from, but sometimes an even more precise position of a visitor.
In order to not leave any accurate traces, we strongly recommend you to enable the IP anonymization feature. Next, you need to enable the setting “Also use the anonymized IP address when enriching visits”. You find this setting directly below the IP anonymization. This is important as otherwise the full IP address will be used to geolocate a visitor.
What are the consequences of anonymizing location data ?
The more bytes you anonymize from the IP, the more anonymized your location will be. When you remove two bytes as suggested, the city and region location reports will not be as accurate. In some cases even the country may not be detected correctly anymore.
7. Heatmaps & Session Recordings
Heatmaps & Session Recording is a premium feature in Matomo allowing you to see where users click, hover, type and scroll. With session recordings you can then replay their actions in a video.
Heatmaps & Session Recordings are under the scope of GDPR as they can disclose in some specific cases (for example : filling a contact form) personal data :
To avoid this, Matomo will anonymize all keystrokes which a user enters into a form field unless you specifically whitelist a field. Many fields that could contain personal data, such as a credit card, phone number, email address, password, social security number, and more are always anonymized and not recorded.
See our configuration guide for more information
Note that a page may still show personal information within the page as part of regular content (not a form element). For example an address, or the profile page of a forum user. We have added a feature which allows you to set an HTML attribute “data-matomo-mask” to anonymize any personal content shown in the UI.
What are the consequences of using this feature ?
Mainly, you will not be able to see in plain text what people are entering into your forms.
What should you do with past data ?
Once more, we have to say that we are not lawyers. So do not take our answers as legal advice. From : ec.europa.eu/newsroom/article29/document.cfm ?doc_id=50053
“For example, as the GDPR requires that a controller must be able to demonstrate that valid consent was obtained, all presumed consents of which no references are kept will automatically be below the consent standard of the GDPR and will need to be renewed.”
Our interpretation is that, if you were previously relying on consent, unless you can demonstrate that valid consent was obtained, you need to get the consent back (which is almost impossible) or you need to anonymize or remove that data.
To anonymize previously tracked data, we are actively working on a feature to do just that directly within Matomo. Alternatively, you may also set up the deletion of logs after a certain amount of time.
We really hope you enjoyed reading this article. GDPR is still on the go and we are pretty sure you have a lot of questions about it. You probably would like to share our vision about it. So do not hesitate to ask us through our contact form to see how we are interpreting GDPR at Matomo and InnoCraft.
The post How to not process any personal data with Matomo and what it means for you appeared first on Analytics Platform - Matomo.
-
Can not find file with ffmpeg
3 août 2018, par P.UngI am programming a server in node.js to process a audio file.
I save the file with this code :app.use(upload());
app.get("/", function (req, res) {
res.sendFile("index.html")
});
//Uploaded files will be saved
app.post("/", function (req, res) {
if (req.files) {
var file = req.files.filename,
filename = file.name;
file.mv("./upload/" + filename, function (err) {
if (err) {
console.log("err");
}
else {
res.send("Done");
console.log(filename);
convert(filename);
}
})
}
})I save the file in my upload directory. There everthing works great but now comes the problem.
I convert the file with ffmpegfunction convert(filename) {
var realName = "./upload/" + filename;
var newName = "./output/" + filename.substr(0, filename.length - 4) + ".flac";
ffmpegN = ffmpeg(realName);
ffmpegN.audioBitrate(16).audioFrequency(16000).withAudioCodec('flac').format("flac").save(outputFile);
ffmpeg(realName)
.toFormat('flac')
.on('error', (err) => {
console.log('An error occurred: ' + err.message);
})
.on('progress', (progress) => {
// console.log(JSON.stringify(progress));
console.log('Processing: ' + progress.targetSize + ' KB converted');
})
.on('end', () => {
console.log('Processing finished !');
})
.save(newName);//path where you want to save your file
SpeechToText(newName);
}Then I want to pass this file to the google speech api. But then I get the error that the file is not found
Here is the code for the Speech Api :function SpeechToText(path) {
// The name of the audio file to transcribe
const fileName = path;
// Reads a local audio file and converts it to base64
const file = fs.readFileSync(fileName);
const audioBytes = file.toString('base64');
// The audio file's encoding, sample rate in hertz, and BCP-47 language code
const audio = {
content: audioBytes,
};
const config = {
encoding: 'FLAC',
languageCode: 'de-DE',
};
const request = {
audio: audio,
config: config,
};
// Detects speech in the audio file
client
.recognize(request)
.then(data => {
const response = data[0];
const transcription = response.results
.map(result => result.alternatives[0].transcript)
.join('\n');
console.log(`Transcription: ${transcription}`);
})
.catch(err => {
console.error('ERROR:', err);
});
}The thing is that if I upload a file everything works. But if I try it for a second time the error occurs :
fs.js:646
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT: no such file or directory, open
'C:\Users\paulu\desktop\API\output\sample.flac'
at Object.fs.openSync (fs.js:646:18)
at Object.fs.readFileSync (fs.js:551:33)
at SpeechToText (C:\Users\paulu\desktop\API\server.js:68:21)
at convert (C:\Users\paulu\desktop\API\server.js:121:5)
at C:\Users\paulu\desktop\API\server.js:50:17
at doMove (C:\Users\paulu\desktop\API\node_modules\express-
fileupload\lib\index.js:152:17)
at WriteStream.<anonymous> (C:\Users\paulu\desktop\API\node_modules\express-
fileupload\lib\in dex.js:182:15)
at emitNone (events.js:106:13)
at WriteStream.emit (events.js:208:7)
at fs.close (fs.js:2094:12)
</anonymous>Thank you for all answers !
-
Android FFmpeg export of the Video in SurfaceView with Pinch/Scale/Zoom/Bg Color Operation
31 mai 2024, par CoderDevI'm working on a feature in which I need to perform some actions on the selected video from the gallery and then upload it on the Backend server, on this selected video I can pinch it to scale up/down/zoom in/out and place it anywhere on the screen (even out side the screen), just like the Instagram app.
I can apply a background color which will be applied to the whole space of the outer of the video frame.


After all the above changes I'm exporting the changes to the output video that will contain all the changes that I've mentioned above. I'm using the FFMpeg for the same :


implementation("com.arthenica:ffmpeg-kit-full-gpl:6.0-2.LTS")




Basically the operation is being achieved with this solution (Except Export Video) : Android SurfaceView operation on Video to Pinch/Scale/Zoom/Bg Color


I've tried numerous FFmpeg commands but not getting the adequate output, I've tried below solution :


private fun exportVideo() {
 val outputVideoPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).path + "/ffmpegoutput.mp4"
 val inputVideoPath = selectedFilePath
 val bgColor = getColorHexCode()

 // Load the input video dimensions
 val retriever = MediaMetadataRetriever()
 retriever.setDataSource(inputVideoPath)
 val videoWidth = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH)?.toInt() ?: 0
 val videoHeight = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT)?.toInt() ?: 0
 retriever.release()

 // Calculate the scaled dimensions
 val scaledWidth = (videoWidth * scaleFactor).toInt()
 val scaledHeight = (videoHeight * scaleFactor).toInt()

 // Calculate the new translation
 val translatedX = translationX.toInt()
 val translatedY = translationY.toInt()

 // Ensure the output dimensions are at least as large as the scaled dimensions
 val outputWidth = maxOf(deviceWidth, scaledWidth + abs(translatedX) * 2)
 val outputHeight = maxOf(deviceHeight, scaledHeight + abs(translatedY) * 2)

 // Calculate padding positions
 val xPad = (outputWidth - scaledWidth) / 2 + translatedX
 val yPad = (outputHeight - scaledHeight) / 2 + translatedY

 // Create the filter string for FFmpeg
 val filter = "scale=$scaledWidth:$scaledHeight," +
 "pad=$diagonal:$diagonal:(ow-iw)/2:(oh-ih)/2:$bgColor," +
 "pad=$outputWidth:$outputHeight:$xPad:$yPad:$bgColor"


 val command = ("-i $inputVideoPath " +
 "-vf $filter " +
 "-c:a copy " + // Copy the audio stream without re-encoding
 "-y $outputVideoPath"
 )

 // Execute FFMPEG command
 executeFFmpegKitCommand(command)
 }


 private fun executeFFmpegKitCommand(command: String) {
 FFmpegKit.executeAsync(command) { session ->
 println("FFMPEG executeAsync, session: $session")
 val returnCode = session.returnCode
 if (returnCode.isValueSuccess) {
 // Handle success
 runOnUiThread {
 Toast.makeText(this, "Video saved successfully!", Toast.LENGTH_SHORT).show()
 }
 } else {
 // Handle failure
 runOnUiThread {
 Toast.makeText(this, "Failed to save video", Toast.LENGTH_SHORT).show()
 }
 }
 }
 }



But this not giving me the adequate output, it's not creating the output with the Screen's height/width (Tried passing the same), and the original video position is also not correct on the canvas which I've placed with the touch event.