Recherche avancée

Médias (0)

Mot : - Tags -/xmlrpc

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (66)

  • Participer à sa traduction

    10 avril 2011

    Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
    Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
    Actuellement MediaSPIP n’est disponible qu’en français et (...)

  • MediaSPIP Player : problèmes potentiels

    22 février 2011, par

    Le lecteur ne fonctionne pas sur Internet Explorer
    Sur Internet Explorer (8 et 7 au moins), le plugin utilise le lecteur Flash flowplayer pour lire vidéos et son. Si le lecteur ne semble pas fonctionner, cela peut venir de la configuration du mod_deflate d’Apache.
    Si dans la configuration de ce module Apache vous avez une ligne qui ressemble à la suivante, essayez de la supprimer ou de la commenter pour voir si le lecteur fonctionne correctement : /** * GeSHi (C) 2004 - 2007 Nigel McNie, (...)

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

Sur d’autres sites (14702)

  • Encode Frames to Video with C Library

    31 juillet 2018, par NetherGranite

    For the sake of continuity, let us assume "RGB values" are the following :

    typedef struct RGB {
       uint8_t r, g, b;
    } rgb;

    However, if you feel that a different color space is more appropriate for this question, please use that instead.

    How might I go about writing 2D arrays of RGB values to a video in C given an output format and framerate ?

    Before I continue, I should specify that I wish to be able to do this all within one program. I am trying to add functionality to an application that would allow it to compile videos frame by frame without having to leave it.

    Additionally, my needs for this functionality are extremely basic ; I simply need to be able to set individual pixels to certain colors.

    The closest I have come to a solution so far is the C library FFmpeg. Allow me to describe what I was able to learn on my own :

    After looking through its documentation, I came across the function avcodec_send_frame(avctx, frame), whose parameters are of the types AVCodexContext* and const AVFrame* respectively. If these are not the right tools for what I am trying to do, please ignore the rest of the question and instead point me towards what I should be using.

    However, I do not know which fields of avctx and frame must be set manually and which do not. The reason I assume some do not is because both are extremely large structures, but correct me if I am wrong.

    Question 1 : What values of an AVCodecContext and AVFrame must be set ? Of these, what is/are the recommended value(s) for each of them ?

    Additionally, I was only able to find instructions on how to initialize an AVFrame (using av_frame_alloc() and av_frame_get_buffer()) but not for an AVCodexConstant.

    Question 2 : Is there a proper way to initialize an AVCodexConstant ? And just in case, is the method of initializing an AVFrame described above correct ? Do any of the fields of either have a proper method of initialization ?

    Also, I was not able to find official documentation on how to take this AVCodexConstant (which I assume contains the video information) and turn it into a video. I apologize if the documentation for this is easy to find and I just missed it.

    Question 3 : How do I turn an AVCodexConstant into a file of a given format ?

    And, given my limited knowledge :

    Question 4 : Are there any other parts to this process that I am missing, and do I have any of the above parts wrong ?


    Please keep in mind that I found out about FFmpeg for the first time very recently, and as a result, I am a complete beginner to this. Additionally, my experience with C is very limited, so I would greatly appreciate it if you could note which files need to be included with #include.

    Feel free to even go as far as recommending something other than FFmpeg, just as long as it is written in C. I do not need power-user options, but I would greatly prefer flexibility in what audio and video file types the library can handle.


    Addressing Potential Duplicates

    I appologize for how long this section is ; I just want to have my bases covered. I heavily apologize, however, if this is in fact a duplicate of a question that I was just unable to find.

    • ffmpeg C API documentation/tutorial [closed] — This question was too open-ended and received answers pointing the asker towards a tutorial at dranger.com, a tutorial that confusingly muddied the waters by focusing heavily on a graphics library of choice. Please do not take this as me saying it is bad ; I am just enough of a beginner that I could not wade through it all.
    • Encoding frames to video with ffmpeg — Although this question seems to have been asking the same thing, it is geared towards Unreal Engine 4, and the asker provided sample code, making it difficult for me to understand which of parts of the accepted answer were necessary for me and which were not.
    • How to write frames to a video file ? — While this also asked the same thing, the accepted answer simply provides a command instead of an explanation of code.
    • YUV Raw frames to video stream — While the accepted answer for this question is a command, the question states that it is looking for a way to encode frames generated by C++ code. Is there some way to run commands in code that I haven’t been able to find ?
    • Converting sequenced frames to video — Not only is the asker’s code written in Python, but it also seems to use already-existing image files as frames.
    • How to write bitmaps as frames to H.264 with x264 in C\C++ ? — The accepted answer seems to describe a process that would take multiple applications, but I could be wrong as I am enough of a beginner that I am not sure exactly what it means other than Step 3.
    • How to write bitmaps as frames to Ogg Theora in C\C++ ? — Although it isn’t a problem that the question specifies the ogg format, it is a problem that the accepted answer suggests libtheora, which appears to only work with ogg files.
  • Decoding VP8 On A Sega Dreamcast

    20 février 2011, par Multimedia Mike — Sega Dreamcast, VP8

    I got Google’s libvpx VP8 codec library to compile and run on the Sega Dreamcast with its Hitachi/Renesas SH-4 200 MHz CPU. So give Google/On2 their due credit for writing portable software. I’m not sure how best to illustrate this so please accept this still photo depicting my testbench Dreamcast console driving video to my monitor :



    Why ? Because I wanted to try my hand at porting some existing software to this console and because I tend to be most comfortable working with assorted multimedia software components. This seemed like it would be a good exercise.

    You may have observed that the video is blue. Shortest, simplest answer : Pure laziness. Short, technical answer : Path of least resistance for getting through this exercise. Longer answer follows.

    Update : I did eventually realize that the Dreamcast can work with YUV textures. Read more in my followup post.

    Process and Pitfalls
    libvpx comes with a number of little utilities including decode_to_md5.c. The first order of business was porting over enough source files to make the VP8 decoder compile along with the MD5 testbench utility.

    Again, I used the KallistiOS (KOS) console RTOS (aside : I’m still working to get modern Linux kernels compiled for the Dreamcast). I started by configuring and compiling libvpx on a regular desktop Linux system. From there, I was able to modify a number of configuration options to make the build more amenable to the embedded RTOS.

    I had to create a few shim header files that mapped various functions related to threading and synchronization to their KOS equivalents. For example, KOS has a threading library cleverly named kthreads which is mostly compatible with the more common pthread library functions. KOS apparently also predates stdint.h, so I had to contrive a file with those basic types.

    So I got everything compiled and then uploaded the binary along with a small VP8 IVF test vector. Imagine my surprise when an MD5 sum came out of the serial console. Further, visualize my utter speechlessness when I noticed that the MD5 sum matched what my desktop platform produced. It worked !

    Almost. When I tried to decode all frames in a test vector, the program would invariably crash. The problem was that the file that manages motion compensation (reconinter.c) needs to define MUST_BE_ALIGNED which compiles byte-wise block copy functions. This is necessary for CPUs like the SH-4 which can’t load unaligned data. Apparently, even ARM CPUs these days can handle unaligned memory accesses which is why this isn’t a configure-time option.

    Showing The Work
    I completed the first testbench application which ran the MD5 test on all 17 official IVF test vectors. The SH-4/Dreamcast version aces the whole suite.

    However, this is a video game console, so I had better be able to show the decoded video. The Dreamcast is strictly RGB— forget about displaying YUV data directly. I could take the performance hit to convert YUV -> RGB. Or, I could just display the intensity information (Y plane) rendered on a random color scale (I chose blue) on an RGB565 texture (the DC’s graphics hardware can also do paletted textures but those need to be rearranged/twiddled/swizzled).

    Results
    So, can the Dreamcast decode VP8 video in realtime ? Sure ! Well, I really need to qualify. In the test depicted in the picture, it seems to be realtime (though I wasn’t enforcing proper frame timings, just decoding and displaying as quickly as possible). Obviously, I wasn’t bothering to properly convert YUV -> RGB. Plus, that Big Buck Bunny test vector clip is only 176x144. Obviously, no audio decoding either.

    So, realtime playback, with a little fine print.

    On the plus side, it’s trivial to get the Dreamcast video hardware to upscale that little blue image to fullscreen.

    I was able to tally the total milliseconds’ worth of wall clock time required to decode the 17 VP8 test vectors. As you can probably work out from this list, when I try to play a 320x240 video, things start to break down.

    1. Processed 29 176x144 frames in 987 milliseconds.
    2. Processed 49 176x144 frames in 1809 milliseconds.
    3. Processed 49 176x144 frames in 704 milliseconds.
    4. Processed 29 176x144 frames in 255 milliseconds.
    5. Processed 49 176x144 frames in 339 milliseconds.
    6. Processed 48 175x143 frames in 2446 milliseconds.
    7. Processed 29 176x144 frames in 432 milliseconds.
    8. Processed 2 1432x888 frames in 2060 milliseconds.
    9. Processed 49 176x144 frames in 1884 milliseconds.
    10. Processed 57 320x240 frames in 5792 milliseconds.
    11. Processed 29 176x144 frames in 989 milliseconds.
    12. Processed 29 176x144 frames in 740 milliseconds.
    13. Processed 29 176x144 frames in 839 milliseconds.
    14. Processed 49 175x143 frames in 2849 milliseconds.
    15. Processed 260 320x240 frames in 29719 milliseconds.
    16. Processed 29 176x144 frames in 962 milliseconds.
    17. Processed 29 176x144 frames in 933 milliseconds.
  • Lawful basis for processing personal data under GDPR with Matomo

    30 avril 2018, par InnoCraft

    Disclaimer : 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 :

    1. define a lawful basis.
    2. document your choice.
    3. inform your visitor about it in a privacy notice.

    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 :

    1. Consent : the data subject has given consent to the processing of his or her personal data for one or more specific purposes.
    2. 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.
    3. Legal obligation : processing is necessary for compliance with a legal obligation to which the controller is subject.
    4. Vital interests : processing is necessary in order to protect the vital interests of the data subject or of another natural person.
    5. 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.
    6. 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.

    1. Asking for consent :
      1. Check that consent is the most appropriate lawful basis for processing.
      2. Make the request for consent prominent and separate from your terms and conditions.
      3. Ask people to positively opt in. Don’t use pre-ticked boxes or any other type of default consent.
      4. Use clear, plain language that is easy to understand.
      5. Specify why you want the data and what you are going to do with it.
      6. Give individual (‘granular’) options to consent separately to different purposes and types of processing.
      7. Name your organisation and any third party controllers who will be relying on the consent.
      8. Tell individuals they can withdraw their consent.
      9. Ensure that individuals can refuse to consent without detriment.
      10. Avoid making consent a precondition of a service.
      11. 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.
    2. Recording consent :
      1. Keep a record of when and how you got consent from the individual.
      2. Keep a record of exactly what you told them at the time.
    3. Managing consent :
      1. Regularly review consents to check that the relationship, the processing and the purposes have not changed.
      2. Have processes in place to refresh consent at appropriate intervals, including any parental consent.
      3. Consider using privacy dashboards or other preference-management tools as a matter of good practice.
      4. Make it easy for individuals to withdraw their consent at any time, and publicise how to do so.
      5. Act on withdrawals of consent as soon as you can.
      6. 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.