Recherche avancée

Médias (3)

Mot : - Tags -/pdf

Autres articles (47)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-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

Sur d’autres sites (10360)

  • avfilter/formats : Fix heap-buffer overflow when merging channel layouts

    13 août 2020, par Andreas Rheinhardt
    avfilter/formats : Fix heap-buffer overflow when merging channel layouts
    

    The channel layouts accepted by ff_merge_channel_layouts() are of two
    types : Ordinary channel layouts and generic channel layouts. These are
    layouts that match all layouts with a certain number of channels.
    Therefore parsing these channel layouts is not done in one go ; instead
    first the intersection of the ordinary layouts of the first input
    list of channel layouts with the ordinary layouts of the second list is
    determined, then the intersection of the ordinary layouts of the first
    one and the generic layouts of the second one etc. In order to mark the
    ordinary channel layouts that have already been matched as used they are
    zeroed. The inner loop that does this is as follows :

    for (j = 0 ; j < b->nb_channel_layouts ; j++)
    if (a->channel_layouts[i] == b->channel_layouts[j])
    ret->channel_layouts[ret_nb++] = a->channel_layouts[i] ;
    a->channel_layouts[i] = b->channel_layouts[j] = 0 ;

    (Here ret->channel_layouts is the array containing the intersection of
    the two input arrays.)

    Yet the problem with this code is that after a match has been found, the
    loop continues the search with the new value a->channel_layouts[i].
    The intention of zeroing these elements was to make sure that elements
    already paired at this stage are ignored later. And while they are indeed
    ignored when pairing ordinary and generic channel layouts later, it has
    the exact opposite effect when pairing ordinary channel layouts.

    To see this consider the channel layouts A B C D E and E D C B A. In the
    first round, A and A will be paired and added to ret->channel_layouts.
    In the second round, the input arrays are 0 B C D E and E D C B 0.
    At first B and B will be matched and zeroed, but after doing so matching
    continues, but this time it will search for 0, which will match with the
    last entry of the second array. ret->channel_layouts now contains A B 0.
    In the third round, C 0 0 will be added to ret->channel_layouts etc.
    This gives a quadratic amount of elements, yet the amount of elements
    allocated for said array is only the sum of the sizes of a and b.

    This issue can e.g. be reproduced by
    ffmpeg -f lavfi -i anullsrc=cl=7.1 \
    - af 'aformat=cl=mono|stereo|2.1|3.0|4.0,aformat=cl=4.0|3.0|2.1|stereo|mono' \
    - f null -

    The fix is easy : break out of the inner loop after having found a match.

    Reviewed-by : Nicolas George <george@nsup.org>
    Signed-off-by : Andreas Rheinhardt <andreas.rheinhardt@gmail.com>

    • [DH] libavfilter/formats.c
  • How to read percentage from ffmpeg command in java ?

    23 juillet 2019, par Prasab R

    I am trying to convert video file to specific format by executing ffmpeg command. In that process I want to read percentage by using timepattern format. Somehow I am not able to do it.

    I have tried using the below code. Specially I am getting null in the while loop condition.

    import java.io.*;
    import java.util.Scanner;
    import java.util.regex.Pattern;

    class Test {
     public static void main(String[] args) throws IOException {
       ProcessBuilder pb = new ProcessBuilder("ffmpeg","-i","in.webm","out.mp4");
       final Process p = pb.start();

       new Thread() {
         public void run() {

           Scanner sc = new Scanner(p.getErrorStream());

           // Find duration
           Pattern durPattern = Pattern.compile("(?&lt;=Duration: )[^,]*");
           String dur = sc.findWithinHorizon(durPattern, 0);
           if (dur == null)
             throw new RuntimeException("Could not parse duration.");
           String[] hms = dur.split(":");
           double totalSecs = Integer.parseInt(hms[0]) * 3600
                            + Integer.parseInt(hms[1]) *   60
                            + Double.parseDouble(hms[2]);
           System.out.println("Total duration: " + totalSecs + " seconds.");

           // Find time as long as possible.
           Pattern timePattern = Pattern.compile("(?&lt;=time=)[\\d.]*");
           String match;
           while (null != (match = sc.findWithinHorizon(timePattern, 0))) {
             double progress = Double.parseDouble(match) / totalSecs;
             System.out.printf("Progress: %.2f%%%n", progress * 100);
           }
         }
       }.start();

     }
    }

    I am expecting a value in the while condition, but it coming as null.enter code here

  • dashenc : Write segment timelines properly if the timeline has gaps

    28 novembre 2014, par Martin Storsjö
    dashenc : Write segment timelines properly if the timeline has gaps
    

    Write a new start time if the duration of the previous segment
    didn’t match the start of the next one. Check that segments
    actually are continuous before writing a repeat count.

    This makes sure timestamps deduced from the timeline actually
    match the real start timestamp as written in filenames (if
    using a template containing $Time$).

    Signed-off-by : Martin Storsjö <martin@martin.st>

    • [DH] libavformat/dashenc.c