Recherche avancée

Médias (1)

Mot : - Tags -/3GS

Autres articles (77)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • XMP PHP

    13 mai 2011, par

    Dixit 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, par

    Les 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 InnoCraft

    Important 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_32

    I’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 argument

    I’ve already tried to :

    1. Check similar questions
    2. Escape ' with \
    3. 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 Lullaby

    I 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/s

    Most 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/s

    Is there a way to set the exact_stream_id automatically instead of check it everytime ?