Recherche avancée

Médias (2)

Mot : - Tags -/rotation

Autres articles (76)

  • 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 (...)

  • 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 (...)

  • Menus personnalisés

    14 novembre 2010, par

    MediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
    Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
    Menus créés à l’initialisation du site
    Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)

Sur d’autres sites (8135)

  • How to record all dynamic videos in the process of capturing screen video with ffmpeg from a python program ?

    4 décembre 2020, par fengnix

    I have many robotframework test cases and in the first case, a ffmpeg command like the following is invoked to record the whole running process :

    


    ffmpeg -framerate 30 -f gdigrab -i desktop -c:v libx264rgb -crf 0 -preset ultrafast output.mkv


    


    Whenever I firstly run all cases and then manuually run the above command from an addition command console, the recorded video always looks fine, it looks like all contents on the screen can be correctly captured.

    


    However, once I execute the command the same as the above one in the first case by call the following code :

    


    p=subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)


    


    and then in the final test case the record process is stopped by calling the following code to tell ffmpeg that we want to stop the recording :

    


    p.stdin.write(bytes("q",'UTF-8'))  


    


    the final result video only contain correct contents of the "start" and the "end" of the whole process, but all other contents no longer changed and seemd just a static image, which means all the dynamic effects on the screen cannot be captured.

    


    Could anyone be so kind as to let me know what the matter is and how to solve it ?

    


  • Crop video into a 4x4 grid/tiles/matrix efficiently via command-line ffmpeg ?

    22 avril 2017, par Dylan

    Hello Stackoverflow community !

    I dread having to ask questions, but there seems to be no efficient way to take a single input video and apply a matrix transformation/split the video into equal sized pieces, preferably 4x4=16 segments per input.

    I tried using all the libraries such as ffmpeg and mencoder, but having 16 outputs can be as slow as 0.15x. The goal of my project is the split the video into 16 segments, rearrange those segments and combine back into a final video ; later reversing the process in HTML5 canvas. Here is a picture to help you understand what I am talking about :
    the source but also the final destination after reorganizing the pieces

    after the segments are exported, I will recombine the pieces in a puzzle manner (they are also inverted and rotated but unrelated)

    I do not believe you can do this all in one command, so my goal is to crop into 16 mapped outputs quickly, then reassemble them in a different order. But I can do the other parts myself. Ideally there would be a way to move pixel blocks eg 100x100 and just move them around. My math is not strong enough..
    I really appreciate the work you guys do !

    admin@dr.com

  • how to set ffmpeg bitrate, frame per second when scalling from low to high resolution/ high to low

    21 janvier 2015, par user2303069

    I’m developing a video sharing app for mobile device users. I noticed if I convert video with ffmpeg from a low(ex 240x320) to a higher resolution(ex 480x-1) the video looses quality and also there is no sound at the end. My question to you is how should I filter(how many fps,bitrate ect) the converted file ? In terms of parameters, how should I convert to make sure the video comes out in good quality at it’s destination(the user who will play it on their mobile device[Android/BlackBerry]).

    Here is my current code(java) :

    /************************  CONVERTING    TIME   *************************
                          method to convert video-clip
    */
    if(sn.toString().trim().startsWith("<>")){
       String info=sn.toString().trim().substring(2);
       String scale=info.substring(0, info.indexOf("."));
       String width=scale.substring(0, scale.indexOf("x"));
       String name=info.substring(info.indexOf(".")+1, info.length());
       String to = null;
       String from;

       try{
           //calculate to and from
           to=name.substring(0, name.indexOf("$"));
           from=name.substring(name.indexOf("$")+1, name.lastIndexOf("$"));
           gui.textArea1.append("\nStart converting...: to="+to+" from="+from+" fileName="+name);
       }catch(NullPointerException npe){
           gui.textArea1.append("\nNullpointer in calculate name in converting: "+npe.getMessage());
       }

       final Path videoIn = Paths.get("c:\\wamp\\www\\iclips\\videoMessages\\"+name);
       final Path encodingFile = Paths.get("c:\\wamp\\www\\iclips\\videoMessages\\scaled-"+name);
       final Path errorFile = Paths.get("c:\\ffmpeg\\bin\\error.txt");
       String pro;
       int w=Integer.parseInt(width);

       if(w<=240){
           pro="baseline";
       }else if(w>240&&w<=480){
           pro="main";
       }else if(w>480){
           pro="high";
       }else{
           pro="baseline";
       }
       //int retCode;

       try {
           Files.deleteIfExists(encodingFile);
           Files.deleteIfExists(errorFile);

           final ProcessBuilder pb
               = new ProcessBuilder("c:\\ffmpeg\\bin\\ffmpeg.exe",
                   "-i", videoIn.toString(),
                   "-y",
                   "-vf", "scale="+width+":-1",
                   // "-pix_fmt","yuv420p",  
                   "-vcodec", "libx264",
                   "-vprofile", pro,    
                   "c:\\wamp\\www\\iclips\\videoMessages\\scaled-"+name
           ); //or other command....                    

           pb.redirectError(errorFile.toFile());
           pb.redirectOutput(encodingFile.toFile());

           final Process p = pb.start();
           try {
               p.waitFor();
               if(p.exitValue()==0){
                   gui.textArea1.append("\n+++++++++++++Vic-^clip converted successfully:"
                           + " ExitValue=["+String.valueOf(p.exitValue())+"] ++++++++++++++");
                   if(Files.deleteIfExists(videoIn)){
                       gui.textArea1.append("\n"+videoIn.toString()+" deleted!");
                   }
                   sendMsg("Scalling successfull:-)   Video-clip name=scaled-"+name+"_", "\nSent scaled successfull "+username);
                   NotifyClientOfScaledVideoMessage(to,"^scaled-"+name+"_");
               }else{
                   gui.textArea1.append("\nSomething went wrong with process-convert: ExitValue="+String.valueOf(p.exitValue()));
                   sendMsg("Unable to scale video, try again._", "\nSent scaled failed to "+username);
               }
           } catch (InterruptedException e) {
               gui.textArea1.append("\nInterrupted process convert: "+e.getMessage());
           }
       } catch (IOException e) {
           // deal with e here
           gui.textArea1.append("\nIOException in Convert Video: "+e.getMessage());
       }
    }

    Thank you very much.