Recherche avancée

Médias (1)

Mot : - Tags -/copyleft

Autres articles (66)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

Sur d’autres sites (8899)

  • swscale/cms : add color management subsystem

    29 novembre 2024, par Niklas Haas
    swscale/cms : add color management subsystem
    

    The underlying color mapping logic was ported as straightforwardly as possible
    from libplacebo, although the API and glue code has been very heavily
    refactored / rewritten. In particular, the generalization of gamut mapping
    methods is replaced by a single ICC intent selection, and constants have been
    hard-coded.

    To minimize the amount of overall operations, this gamut mapping LUT now embeds
    a direct end-to-end transformation to the output color space ; something that
    libplacebo does in shaders, but which is prohibitively expensive in software.

    In order to preserve compatibility with dynamic tone mapping without severely
    regressing performance, we add the ability to generate a pair of "split" LUTS,
    one for encoding the input and output to the perceptual color space, and a
    third to embed the tone mapping operation. Additionally, this intermediate
    space could be used for additional subjective effect (e.g. changing
    saturation or brightness).

    The big downside of the new approach is that generating a static color mapping
    LUT is now fairly slow, as the chromaticity lobe peaks have to be recomputed
    for every single RGB value, since correlated RGB colors are not necessarily
    aligned in ICh space. Generating a split 3DLUT significantly alleviates this
    problem because the expensive step is done as part of the IPT input LUT, which
    can share the same hue peak calculation at least for all input intensities.

    • [DH] libswscale/Makefile
    • [DH] libswscale/cms.c
    • [DH] libswscale/cms.h
  • FFmpeg loudnorm : what does dynamic mode mean ? [closed]

    6 novembre 2023, par Javita Funky

    FFmpeg experts

    


    I have numerous audios that i'd like to normalize by the same reference with FFmpeg loudnorm filter. But every time I do the 1st pass of normalization, normalization type reverts to "dynamic".

    


    From here I know, that the loudnorm filter uses windows of 3 seconds of audio to calculate short-term loudness in the source and adjust the destination to meet the target parameters.
As most of my files are shotert than 3 seconds, I have to add some silence to them to make files at least 3 seconds long.

    


    Knowing that I do the 1st pass, but it reverts to dynamic mode (Normalization Type : Dynamic) every time

    


    Pass 1

    


    ffmpeg -i input.ogg -af apad,atrim=0:3,loudnorm=I=-17.2:TP=-2:LRA=7:print_format=summary -f null -


    


    I get

    


    Input Integrated:    -17.4 LUFS
Input True Peak:      -0.9 dBTP
Input LRA:             0.3 LU
Input Threshold:     -28.9 LUFS

Output Integrated:   -16.1 LUFS
Output True Peak:     -2.0 dBTP
Output LRA:            0.0 LU
Output Threshold:    -27.2 LUFS

Normalization Type:   Dynamic
Target Offset:        -1.1 LU


    


    FFmpeg documentation says "Target LRA shouldn’t be lower than source LRA and the change in integrated loudness shouldn’t result in a true peak which exceeds the target TP. If any of these conditions aren’t met, normalization mode will revert to dynamic. Options are true or false. Default is true."

    


    As I can see, none of these conditions are met, but normalization type still gets reverted to "dynamic". As an experiment I tried to change my target integrated loudness, TP and LRA in all different ways, but i still get normalization type "dynamic" every time

    


      

    1. Does it mean that "dynamic mode" applies instead of "linear mode" when I do the 2nd step (actual normalization) ?
    2. 


    3. What does this "dynamic type" mean, and how is it different from "linear" ?
    4. 


    5. Why this even happens and what do I do wrong ?
    6. 


    


  • ffmpeg - How to (programmatically) copy a stream's side data ?

    25 mars 2021, par waldenCalms

    My app is a tag editor (eg ID3) written in Swift for macOS. I'm using ffmpeg as my library to perform the tag editing. When the user is done editing, the app should save the changes to (essentially) a modified copy of the original file. I'm able to copy everything I need (from input -> output file) EXCEPT "side data".

    


    In other words, I'm doing the programmatic equivalent of :

    


    ffmpeg -i input.mp3 -metadata key1=value1 -metadata key2=value2 -codec copy output.mp3


    


    So, output.mp3 must be identical to input.mp3, except for the few metadata changes made by the user.

    


    What I have working so far

    


    I'm able to copy the audio stream and all associated metadata (tags), as is, from input.mp3 to output.mp3.

    


    The problem

    


    My input.mp3 happens to have some side data (see below), which does not get copied over to output.mp3. How to copy side data ? To be honest, I don't even know what side data is, and the documentation is not very helpful.

    


    ffprobe gives the following output (snippet) for the input.mp3's side data that looks like :

    


    Side data:
      replaygain: track gain - -9.200000, track peak - unknown, album gain - unknown, album peak - unknown,


    


    I want THIS ^ to get copied over to output.mp3, but it does not :(

    


    Relevant code snippet (format context initialization code omitted for conciseness)

    


    let inAudioStream = inFormatContext!.pointee.streams.advanced(by: Int(audio_stream_index)).pointee!.pointee&#xA;var outAudioStream = outFormatContext!.pointee.streams.advanced(by: Int(audio_stream_index)).pointee!.pointee&#xA;            &#xA;/* Free existing side data*/&#xA;            &#xA;for i in 0..* Copy side data if present */&#xA;            &#xA;if let srcSideData = inAudioStream.side_data {&#xA;                &#xA;    let rawPtr: UnsafeMutableRawPointer? = av_mallocz_array(Int(inAudioStream.nb_side_data),&#xA;                                                            MemoryLayout<avpacketsidedata>.size)&#xA;                &#xA;    outAudioStream.side_data = UnsafeMutablePointer<avpacketsidedata>(OpaquePointer(rawPtr))&#xA;    outAudioStream.nb_side_data = inAudioStream.nb_side_data&#xA;                &#xA;    for i in 0..(OpaquePointer(data))&#xA;    }&#xA;}&#xA;            &#xA;status = avformat_write_header(outFormatContext, nil)&#xA;</avpacketsidedata></avpacketsidedata>

    &#xA;

    I got this logic from this page. Is this ^ the right way to copy a stream's side data to the corresponding stream in the output file ? If not, how to do it ?

    &#xA;

    I have also tried the following functions with no luck :

    &#xA;

    av_stream_new_side_data(...)&#xA;av_stream_add_side_data(...)&#xA;

    &#xA;

    Please ask for details if required, and I will provide them. Thanks very much !

    &#xA;