Recherche avancée

Médias (0)

Mot : - Tags -/xmlrpc

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

Autres articles (89)

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

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

  • Support de tous types de médias

    10 avril 2011

    Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)

Sur d’autres sites (13993)

  • Issues in executing FFmpeg command in Java code in Linux

    12 août 2017, par Tina J

    I have problems executing this ffmpeg command in my java code :

    ffmpeg -i sample.mp4 -i ad.mp4 -filter_complex "[0:v]trim=0:15,setpts=PTS-STARTPTS[v0]; [1:v]trim=0:5,setpts=PTS-STARTPTS[v1]; [0:v]trim=20:30,setpts=PTS-STARTPTS[v2]; [v0][v1][v2]concat=n=3:v=1:a=0[out]" -map "[out]" output.mp4

    I used the getRuntime() method below, but that doesn’t work for me. Even if I simply remove the ", still it doesn’t work. When I simply copy-paste the equivalent string in terminal, it works.

    String c1=" -i "+dir+"sample.mp4 "+"-i "+dir+"ad.mp4 -fi‌​lter_complex [0:v]‌​trim=0:15,setpts=PTS‌​-STARTPTS[v0]; [1:v]trim=0:5,setpts=PTS-STARTPTS[v1]; [0:v]trim=20:30,setpts=PTS-STARTPTS[v2]; [v0][v1][v2]concat=n=3:v=1:a=0[out] -map [out] "+dir+"output.‌​mp4";
    RunCommand("ffmpeg"+c1);

    Using this method :

    private static void RunCommand(String command) throws InterruptedException {
       try {
           // Execute command
           Process proc = Runtime.getRuntime().exec(command);
           System.out.println(proc.exitValue());

           // Get output stream to write from it
           // Read the output

           BufferedReader reader =  
                   new BufferedReader(new InputStreamReader(proc.getInputStream()));
           String line = "";
           while((line = reader.readLine()) != null) {
               System.out.print(line + "\n");
               //              System.out.println(ads.get(0));
           }
           proc.waitFor();  

       } catch (IOException e) {
       }
    }

    This one doesn’t work also, and printing the exit value shows this :

    Exception in thread "main" java.lang.IllegalThreadStateException: process hasn't exited
       at java.lang.UNIXProcess.exitValue(UNIXProcess.java:423)
       at parser.Parser.RunCommand(Parser.java:106)
       at parser.Parser.commandGenerator2(Parser.java:79)
       at parser.Parser.main(Parser.java:44)

    If I move the proc.waitFor(); before printing the exit value, it is 1.

    What is the problem ? Why it doesn’t run in Java code ?

  • ffmpeg or ffprobe extracting realtime

    18 avril 2014, par wxJunkie

    I have TB's of AV and DV files. I want to run a script that will enable me to find the real start time + end time AND the navigation (latitude & longitude) that is embedded in the audio of each of the clips that I have and export the list perhaps to a .txt or .doc list. I use a SMPTE reader now that can read the time that is embedded in the video, so there has to be a script that will pull those certain criteria's out ?

    I have ran several codes in the past that has given me :
    duration : 00:01:23.83 start : 0.0000000, bitrate 28771 kb/s etc.
    I always get 'start : 0.0000000' for each clip and I need the real start time of each clip.

    Is this possible ?

  • Slow, robotic audio encoding with Humble-Video api (ffmpeg)

    30 novembre 2017, par Walker Knapp

    I have a program that is trying to parse pcm_s16le audio samples from a .wav file and encode it into mp3 using the Humble-Video api.
    This isn’t what the final program is trying to do, but it outlines the problem I’m encountering.
    The issue is that the output audio files sound robotic and slow.

    input.wav (Just some random audio from a video game, ignore the wonky size headers) : https://drive.google.com/file/d/1nQOJGIxoSBDzprXExyTVNyyipSKQjyU0/view?usp=sharing

    output.mp3 :
    https://drive.google.com/file/d/1MfEFw2V7TiKS16SqSTv3wrbh6KoankIj/view?usp=sharing

    output.wav : https://drive.google.com/file/d/1XtDdCtYao0kS0Qe2l6JGu1tC5xvqt62f/view?usp=sharing

    import io.humble.video.*;

    import java.io.*;

    public class AudioEncodingTest {

       private static AudioChannel.Layout inLayout = AudioChannel.Layout.CH_LAYOUT_STEREO;
       private static int inSampleRate = 44100;
       private static AudioFormat.Type inFormat = AudioFormat.Type.SAMPLE_FMT_S16;
       private static int bytesPerSample = 2;

       private static File inFile = new File("input.wav");

       public static void main(String[] args) throws IOException, InterruptedException {
           render("output.mp3");
           render("output.wav");
       }

       public static void render(String filename) throws IOException, InterruptedException {

           //Starting everything up.

           Muxer muxer = Muxer.make(new File(filename).getAbsolutePath(), null, null);
           Codec codec = Codec.guessEncodingCodec(muxer.getFormat(), null, null, null, MediaDescriptor.Type.MEDIA_AUDIO);

           AudioFormat.Type findType = null;
           for(AudioFormat.Type type : codec.getSupportedAudioFormats()) {
               if(findType == null) {
                   findType = type;
               }
               if(type == inFormat) {
                   findType = type;
                   break;
               }
           }

           if(findType == null){
               throw new IllegalArgumentException("Couldn't find valid audio format for codec: " + codec.getName());
           }

           Encoder encoder = Encoder.make(codec);
           encoder.setSampleRate(44100);
           encoder.setTimeBase(Rational.make(1, 44100));
           encoder.setChannels(2);
           encoder.setChannelLayout(AudioChannel.Layout.CH_LAYOUT_STEREO);
           encoder.setSampleFormat(findType);
           encoder.setFlag(Coder.Flag.FLAG_GLOBAL_HEADER, true);

           encoder.open(null, null);
           muxer.addNewStream(encoder);
           muxer.open(null, null);

           MediaPacket audioPacket = MediaPacket.make();
           MediaAudioResampler audioResampler = MediaAudioResampler.make(encoder.getChannelLayout(), encoder.getSampleRate(), encoder.getSampleFormat(), inLayout, inSampleRate, inFormat);
           audioResampler.open();

           MediaAudio rawAudio = MediaAudio.make(1024/bytesPerSample, inSampleRate, 2, inLayout, inFormat);
           rawAudio.setTimeBase(Rational.make(1, inSampleRate));

           //Reading

           try(BufferedInputStream reader = new BufferedInputStream(new FileInputStream(inFile))){
               reader.skip(44);

               int totalSamples = 0;

               byte[] buffer = new byte[1024];
               int readLength;
               while((readLength = reader.read(buffer, 0, 1024)) != -1){
                   int sampleCount = readLength/bytesPerSample;

                   rawAudio.getData(0).put(buffer, 0, 0, readLength);
                   rawAudio.setNumSamples(sampleCount);
                   rawAudio.setTimeStamp(totalSamples);

                   totalSamples += sampleCount;

                   rawAudio.setComplete(true);

                   MediaAudio usedAudio = rawAudio;

                   if(encoder.getChannelLayout() != inLayout ||
                           encoder.getSampleRate() != inSampleRate ||
                           encoder.getSampleFormat() != inFormat){
                           usedAudio = MediaAudio.make(
                                   sampleCount,
                                   encoder.getSampleRate(),
                                   encoder.getChannels(),
                                   encoder.getChannelLayout(),
                                   encoder.getSampleFormat());
                           audioResampler.resample(usedAudio, rawAudio);
                   }

                   do{
                       encoder.encodeAudio(audioPacket, usedAudio);
                       if(audioPacket.isComplete()) {
                           muxer.write(audioPacket, false);
                       }
                   } while (audioPacket.isComplete());
               }
           }
           catch (IOException e){
               e.printStackTrace();
               muxer.close();
               System.exit(-1);
           }

           muxer.close();

       }
    }

    Edit

    I’ve gotten wave file exporting to work, however mp3s remain the same, which is very confusing. I changed the section counting how many samples each buffer of bytes is.

    MediaAudio rawAudio = MediaAudio.make(1024, inSampleRate, channels, inLayout, inFormat);
       rawAudio.setTimeBase(Rational.make(1, inSampleRate));

       //Reading

       try(BufferedInputStream reader = new BufferedInputStream(new FileInputStream(inFile))){
           reader.skip(44);

           int totalSamples = 0;

           byte[] buffer = new byte[1024 * bytesPerSample * channels];
           int readLength;
           while((readLength = reader.read(buffer, 0, 1024 * bytesPerSample * channels)) != -1){
               int sampleCount = readLength/(bytesPerSample * channels);

               rawAudio.getData(0).put(buffer, 0, 0, readLength);
               rawAudio.setNumSamples(sampleCount);
               rawAudio.setTimeStamp(totalSamples);