
Recherche avancée
Autres articles (60)
-
Pas question de marché, de cloud etc...
10 avril 2011Le vocabulaire utilisé sur ce site essaie d’éviter toute référence à la mode qui fleurit allègrement
sur le web 2.0 et dans les entreprises qui en vivent.
Vous êtes donc invité à bannir l’utilisation des termes "Brand", "Cloud", "Marché" etc...
Notre motivation est avant tout de créer un outil simple, accessible à pour tout le monde, favorisant
le partage de créations sur Internet et permettant aux auteurs de garder une autonomie optimale.
Aucun "contrat Gold ou Premium" n’est donc prévu, aucun (...) -
Contribute to documentation
13 avril 2011Documentation is vital to the development of improved technical capabilities.
MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
To contribute, register to the project users’ mailing (...) -
Selection of projects using MediaSPIP
2 mai 2011, parThe examples below are representative elements of MediaSPIP specific uses for specific projects.
MediaSPIP farm @ Infini
The non profit organizationInfini develops hospitality activities, internet access point, training, realizing innovative projects in the field of information and communication technologies and Communication, and hosting of websites. It plays a unique and prominent role in the Brest (France) area, at the national level, among the half-dozen such association. Its members (...)
Sur d’autres sites (5784)
-
Audio out of sync, direct capture device stream (Windows 10)
3 mai 2020, par user3459555Using ffplay, the video stays in sync using this command :



ffplay -f dshow -rtbufsize 702000k video="Cam Link"
ffplay version git-2020-05-01-39fb1e9 Copyright (c) 2003-2020 the FFmpeg developers
 built with gcc 9.3.1 (GCC) 20200328
 configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
 libavutil 56. 43.100 / 56. 43.100
 libavcodec 58. 82.100 / 58. 82.100
 libavformat 58. 42.101 / 58. 42.101
 libavdevice 58. 9.103 / 58. 9.103
 libavfilter 7. 80.100 / 7. 80.100
 libswscale 5. 6.101 / 5. 6.101
 libswresample 3. 6.100 / 3. 6.100
 libpostproc 55. 6.100 / 55. 6.100
Input #0, dshow, from 'video=Cam Link':vq= 0KB sq= 0B f=0/0
 Duration: N/A, start: 141954.961000, bitrate: N/A
 Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1920x1080, 59.94 fps, 59.94 tbr, 10000k tbn, 10000k tbc
142992.53 M-V: -0.001 fd= 3 aq= 0KB vq= 0KB sq= 0B f=0/0




Every controller button press stays in sync.



The audio however :



ffplay -f dshow audio="Digital Audio Interface (Cam Link)" -tune zerolatency
ffplay version git-2020-05-01-39fb1e9 Copyright (c) 2003-2020 the FFmpeg developers
 built with gcc 9.3.1 (GCC) 20200328
 configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
 libavutil 56. 43.100 / 56. 43.100
 libavcodec 58. 82.100 / 58. 82.100
 libavformat 58. 42.101 / 58. 42.101
 libavdevice 58. 9.103 / 58. 9.103
 libavfilter 7. 80.100 / 7. 80.100
 libswscale 5. 6.101 / 5. 6.101
 libswresample 3. 6.100 / 3. 6.100
 libpostproc 55. 6.100 / 55. 6.100
Input #0, dshow, from 'audio=Digital Audio Interface (Cam Link)':
 Duration: N/A, start: 143092.007000, bitrate: 1411 kb/s
 Stream #0:0: Audio: pcm_s16le, 44100 Hz, 2 channels, s16, 1411 kb/s
143103.21 M-A: 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0




Is always behined by about a full second.



I'm not trying to record this, just trying to directly play from the Elgato Cam Link 1:1 output to my computer screen. When this is played in the Elgato Game Capture software, the video and audio are 1:1, no issues. So I know it's not the console or the capture device.


-
Lawful basis for processing personal data under GDPR with Matomo
30 avril 2018, par InnoCraftDisclaimer : this blog post has been written by digital analysts, not lawyers. The purpose of this article is to explain what is a lawful basis and which one you can use with Matomo in order to be GDPR compliant. This work comes from our interpretation of the following web page from the UK privacy commission : ICO. It cannot be considered as professional legal advice. So as GDPR, this information is subject to change. GDPR may be also known as DSGVO in German, BDAR in Lithuanian, RGPD in Spanish, French, Italian, Portuguese. This blog post contains public sector information licensed under the Open Government Licence v3.0.
The golden rule under GDPR is that you need to have a lawful basis in order to process personal data. Note that it is possible to not process personal data with Matomo. When you do not collect any personal data, then you do not need to determine a lawful basis and this article wouldn’t apply to you.
“If no lawful basis applies to your processing, your processing will be unlawful and in breach of the first principle.“
Source : ICO, based on article 6 of GDPR.
As you may process personal data in Matomo, you have to :
Even if you think you don’t process personal data, we recommend reading this post about personal data in Matomo (personal data may be hidden in many ways).
Note that if you are processing special category data (ethnic origin, politics, religion, trade union membership…) or criminal offence data ; extra responsibilities are applied, and we will not detail them in this blog post.
1 – Define a lawful basis
There are 6 different lawful bases all defined within article 6 of the GDPR official text :
- Consent : the data subject has given consent to the processing of his or her personal data for one or more specific purposes.
- Contract : processing is necessary for the performance of a contract to which the data subject is party or in order to take steps at the request of the data subject prior to entering into a contract.
- Legal obligation : processing is necessary for compliance with a legal obligation to which the controller is subject.
- Vital interests : processing is necessary in order to protect the vital interests of the data subject or of another natural person.
- Public task : processing is necessary for the performance of a task carried out in the public interest or in the exercise of an official authority vested in the controller.
- Legitimate interests : processing is necessary for the purposes of the legitimate interests pursued by the controller or by a third party ; except where such interests are overridden by the interests or fundamental rights and freedoms of the data subject which require protection of personal data, in particular where the data subject is a child.
As you can see, most of them are not applicable to Matomo. As ICO is mentioning it within their documentation :
“In many cases you are likely to have a choice between using legitimate interests or consent.”
“Consent” or “Legitimate interests” : which lawful basis is the best when using Matomo ?
Well, there is no right or wrong answer here.
In order to make this choice, ICO listed on their website different questions you should keep in mind :
- Who does the processing benefit ?
- Would individuals expect this processing to take place ?
- What is your relationship with the individual ?
- Are you in a position of power over them ?
- What is the impact of the processing on the individual ?
- Are they vulnerable ?
- Are some of the individuals concerns likely to object ?
- Are you able to stop the processing at any time on request ?
From our perspective, “Legitimate interests” should be used in most of the cases as :
- The processing benefits to the owner of the website and not to a third party company.
- A user expects to have their data kept by the website itself.
- Matomo provides many features in order to show how personal data is processed and how users can exercise their rights.
- As the data is not used for profiling, the impact of processing personal data is very low.
But once more, it really depends ; if you are processing personal data which may represent a risk to the final user, then getting consent is for us the right lawful basis.
If you are not sure, at the time of writing ICO is providing a tool in order to help you make this decision :
Note that once you choose a lawful basis, it is highly recommended not to switch to another unless you have a good reason.
What are the rights that a data subject can exercise ?
According to the lawful basis you choose for processing personal data with Matomo, your users will be able to exercise different rights :
Right to be informed Right of access Right to erasure Right to portability Right to object Right to withdraw consent Legitimate interests X X X X Consent X X X X X - Right to be informed : whatever the lawful basis you choose, you need to inform your visitor about it within your privacy notice.
- Right of access : as described in article 15 of GDPR. Your visitor has the right to access the personal data you are processing about them. You can exercise their right directly within the page “GDPR Tools” in your Matomo.
- Right to erasure : it means that a visitor will be able to ask you to erase all their data. You can exercise the right to erasure directly within the page “GDPR Tools” in your Matomo.
- Right to portability : it means that you need to export the data which concern the individual in a machine-readable format and provide them with their personal data. You can exercise their right directly within the page “GDPR Tools” in your Matomo.
- Right to object : it means that your visitor has the right to say no to the processing of their personal data. In order to exercise this right, you need to implement the opt-out feature on your website.
- Right to withdraw consent : it means that your visitor can remove their consent at any time. We developed a feature in order to do just that. You can learn more by opening the page “Privacy > Asking for consent” in your Matomo.
2 – Document your choice
Once you choose “Legitimate interests” or “Consent” lawful basis, you will have some obligations to fulfill. From our interpretation, “Legitimate interests” means writing more documentation, “Consent” means a more technical approach.
What should I do if I am processing personal data with Matomo based on “Legitimate interests ?
ICO is providing a checklist for “Legitimate interests”, below is our interpretation :
- Check that legitimate interests is the most appropriate lawful basis.
Our interpretation : document and justify why you choose this lawful basis in particular. This tool from ICO can help you.
- Understand your responsibility to protect the individual’s interests.
Our interpretation : you need to take all the measures in order to protect your users privacy and data security. Please refer to our guide in order to secure your Matomo installation.
- Conduct a legitimate interests assessment (LIA) and keep a record of it to ensure that you can justify your decision. This document is composed of a set of questions on those 3 key concerns : 1) purpose, 2) necessity, 3) balancing.
1) Purpose :
- Why do you want to process the data – what are you trying to achieve ?
- Who benefits from the processing ? In what way ?
- Are there any wider public benefits to the processing ?
- How important are those benefits ?
- What would the impact be if you couldn’t go ahead ?
- Would your use of the data be unethical or unlawful in any way ?
2) Necessity :
- Does this processing actually help to further that interest ?
- Is it a reasonable way to go about it ?
- Is there another less intrusive way to achieve the same result ?
3) Balancing :
- What is the nature of your relationship with the individual ?
- Is any of the data particularly sensitive or private ?
- Would people expect you to use their data in this way ?
- Are you happy to explain it to them ?
- Are some people likely to object or find it intrusive ?
- What is the possible impact on the individual ?
- How big an impact might it have on them ?
- Are you processing children’s data ?
- Are any of the individuals vulnerable in any other way ?
- Can you adopt any safeguards to minimise the impact ?
- Can you offer an opt-out ?
- Identify the relevant legitimate interests.
- Check that the processing is necessary and there is no less intrusive way to achieve the same result.
- Perform a balancing test, and be confident that the individual’s interests do not override those legitimate interests.
- Use individuals’ data in ways they would reasonably expect, unless you have a very good reason.
Our interpretation : use those data to improve user experience for example.
- Do not use people’s data in ways they would find intrusive or which could cause them harm, unless you have a very good reason.
Our interpretation : ask yourself if this data is representing a risk for the individuals.
- If you process children’s data, take extra care to make sure you protect their interests.
- Consider safeguards to reduce the impact where possible.
Our interpretation : Check if your web hosting provider is providing appropriate safeguards.
- Consider whether you can offer an opt out.
Our interpretation : Matomo is providing you the opt-out feature.
- If your LIA identifies a significant privacy impact, consider whether you also need to conduct a DPIA.
Our interpretation : A DPIA can easily be conducted by using this software from the French privacy commission.
- Regularly review your LIA and update it when circumstances change.
- Include information about your legitimate interests in your privacy information.
As you see, going for “Legitimate interests” requires a lot of written documentation. Let’s see how “Consent” differ.
What should I do if I am processing personal data with Matomo based on “Consent” ?
As previously mentioned, using “Consent” rather than “Legitimate interests” is more technical but less intense in terms of documentation. Like for “Legitimate interests”, ICO is providing a checklist for “Consent” which is divided into 3 key categories : 1) asking for consent, 2) recording consent, and 3) managing consent.
- Asking for consent :
- Check that consent is the most appropriate lawful basis for processing.
- Make the request for consent prominent and separate from your terms and conditions.
- Ask people to positively opt in. Don’t use pre-ticked boxes or any other type of default consent.
- Use clear, plain language that is easy to understand.
- Specify why you want the data and what you are going to do with it.
- Give individual (‘granular’) options to consent separately to different purposes and types of processing.
- Name your organisation and any third party controllers who will be relying on the consent.
- Tell individuals they can withdraw their consent.
- Ensure that individuals can refuse to consent without detriment.
- Avoid making consent a precondition of a service.
- If you offer online services directly to children, only seek consent if you have age-verification measures (and parental-consent measures for younger children) in place.
- Recording consent :
- Keep a record of when and how you got consent from the individual.
- Keep a record of exactly what you told them at the time.
- Managing consent :
- Regularly review consents to check that the relationship, the processing and the purposes have not changed.
- Have processes in place to refresh consent at appropriate intervals, including any parental consent.
- Consider using privacy dashboards or other preference-management tools as a matter of good practice.
- Make it easy for individuals to withdraw their consent at any time, and publicise how to do so.
- Act on withdrawals of consent as soon as you can.
- Don’t penalise individuals who wish to withdraw consent.
3 – Inform your visitor about it in a privacy notice
Privacy notices are an important part within the GDPR process. Read our blog post dedicated to privacy notices to learn more.
We really hope you enjoyed reading this blog post. Please have a look at our Matomo GDPR guide for more information.
The post Lawful basis for processing personal data under GDPR with Matomo appeared first on Analytics Platform - Matomo.
-
Playing Video on a Sega Dreamcast
9 mars 2011, par Multimedia Mike — Sega DreamcastHere’s an honest engineering question : If you were tasked to make compressed video play back on a Sega Dreamcast video game console, what video format would you choose ? Personally, I would choose RoQ, the format invented for The 11th Hour computer game and later used in Quake III and other games derived from the same engine. This post explains my reasoning.
Video Background
One of the things I wanted to do when I procured a used Sega Dreamcast back in 2001 was turn it into a set-top video playback unit. This is something that a lot of people tried to do, apparently, to varying degrees of success. Interest would wane in a few years as it became easier and easier to crack an Xbox and install XBMC. The Xbox was much better suited to playing codecs that were getting big at the time, most notably MPEG-4 part 2 video (DivX/XviD).The Dreamcast, while quite capable when it was released in 1999, was not very well-equipped to deal with an MPEG-type codec. I have recently learned that there are other hackers out there on the internet who are still trying to get the most out of this system. I was contacted for advice about how to make Theora perform better on the Dreamcast.
Interesting thing about consoles and codecs : Since you are necessarily distributing code along with your data, you have far more freedom to use whatever codecs you want for your audio and video data. This is why Vorbis and even Theora have seen quite a bit of use in video games, "internet standards" be darned. Thus, when I realized this application had no hard and fast requirement to use Theora, and that it could use any codec that fit the platform, my mind started churning. When I was programming the DC 10 years ago, I didn’t have access to the same wealth of multimedia knowledge that is currently available.Requirements Gathering
What do we need here ?- Codec needs to run on the Sega Dreamcast ; this eliminates codecs for which only binary decoder implementations are available
- Must decode 320x240 video at 30 fps ; higher resolutions up to 640x480 would be desirable
- Must deliver decent quality at 12X optical read speeds (DC drive speed)
- There must be some decent, preferably free, encoder readily available ; speed of encoding, however, is not important ; i.e., "take as long as you need, encoder"
Theora was the go-to codec because it’s just commonly known as "the free, open source video codec". But clearly it’s not suitable for, well... any purpose, really (sorry, easy target ; OW ! stop throwing things !). VP8/WebM — Theora’s heir apparent — would not qualify either, as my prior experiments have already demonstrated.
Candidates
What did the big boys use for video on the Dreamcast ? A lot of games relied on CRI’s Sofdec middleware which was MPEG-1 video and a custom ADPCM format. I don’t know if I have ever seen DC games that used MPEG-1 video at a higher resolution than 320x240 (though I have not searched exhaustively). The fact that CRI used a custom ADPCM format for this application may indicate that there wasn’t enough CPU power left over to decode a perceptual, transform-based audio codec alongside the 320x240 video.A few other DC games used 4X Technologies’ 4XM format. The most notable licensee was Alone in the Dark : The New Nightmare (DC version only ; PC version used Bink). This codec was DCT-based but incorporated 16-bit RGB colorspace into its design, presumably to optimize for applications like game consoles that couldn’t directly handle planar YUV. AITD:TNN’s videos were 640x360, a marked improvement over the typical Sofdec fare. I was about to write off 4XM as a contender due to lack of encoder, but the encoding tools are preserved on our samples site. A few other issues, though : The FFmpeg decoder doesn’t seem to work correctly as of this writing (and nobody has noticed yet, even though it’s tested via FATE).
What ideas do I have ? Right off the bat, I’m thinking vector quantizer (VQ). Vector quantizers are notoriously slow to compress but are blazingly fast to decompress which is why they were popular in the early days of video compression. First, there’s Cinepak. I fear that might be too simple for this application. Plus, I don’t know if existing (binary-only) compressors are very decent. It seems that they only ever had to handle small videos and I’ve heard that they can really fall over if anything more is demanded of them.
Sorenson Video 1 is another contender. FFmpeg has an encoder (which some allege is better than Sorenson’s original compressor). However, I fear that the wonky algorithm and colorspace might not mesh well with the Dreamcast.
My thinking quickly converged on RoQ. This was designed to run fullscreen (640x480) video on i486-class hardware. While RoQ fundamentally operates in a YUV colorspace, it’s trivial to convert it to any other colorspace during decoding and the image will be rendered in that colorspace. Plus, there are open source encoders available for the format (namely, several versions of Eric Lasota’s Switchblade encoder, one of which lives natively in FFmpeg), as well as the original proprietary encoder.
Which Library ?
There are several code choices here : FFmpeg (LGPL), Switchblade (GPL), and the original Quake 3 source code (GPL). There is one more option that I think might be easiest, which is the decoder Dr. Tim created when he reverse engineered the format in the first place. That has a very liberal "do whatever you like, but be nice and give me credit" license (probably qualifies as BSD).This code is no longer at its original home but the Wayback Machine still had a copy, which I have now mirrored (idroq.tar.gz).
Adaptation
Dr. Tim’s code still compiles and runs great on Linux (64-bit !) with SDL output. I would like to get it ported to the Dreamcast using the same SDL output, which KallistiOS supports. Then, there is the matter of fixing the longstanding chroma bug in the original sample decoder (described here). The decoder also needs to be modified to natively render RGB565 data, as that will work best with the DC’s graphics hardware.After making the code work, I want to profile it and test whether it can handle full-frame 640x480 playback at 30 frames/second. I will need to contrive a sample to achieve this.
Unfortunately, things went off the rails pretty quickly when I tried to get the RoQ decoder ported to DC/KOS. It looks like there’s a bug in KallistiOS’s minimalistic standard C library, or at least a discrepancy with my desktop Linux system. When you read to the end of a file and then seek backwards to someplace that isn’t the end, is the file still in EOF state ?
According to my Linux desktop :
open file ; feof() = 0 seek to end ; feof() = 0 read one more byte ; feof() = 1 seek back to start ; feof() = 0
According to KallistiOS :
open file ; feof() = 0 seek to end ; feof() = 0 read one more byte ; feof() = 1 seek back to start ; feof() = 1
Here’s the seek-test.c program I used to test this issue :
C :-
#include <stdio .h>
-
-
int main()
-
{
-
FILE *f ;
-
unsigned char byte ;
-
-
f = fopen("seek_test.c", "r") ;
-
fseek(f, 0, SEEK_END) ;
-
fread(&byte, 1, 1, f) ;
-
fseek(f, 0, SEEK_SET) ;
-
fclose(f) ;
-
-
return 0 ;
-
}
EOF
Speaking of EOF, I’m about done for this evening.What codec would you select for this task, given the requirements involved ?