Recherche avancée

Médias (0)

Mot : - Tags -/content

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

Autres articles (95)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Contribute to documentation

    13 avril 2011

    Documentation is vital to the development of improved technical capabilities.
    MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
    To contribute, register to the project users’ mailing (...)

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

Sur d’autres sites (8418)

  • Trying to get thumbnail from a video by using ffmpeg

    27 mars 2014, par Khaled Hasania

    I'm trying to get thumbnail from a video , i did test this code on a side project non Yii project and it's working fine here is my action code.

           $ffmpeg = "C:\\ffmpeg\\bin\\ffmpeg";
           $videoFile = $_FILES['Project']['tmp_name']['file'];
           $imageFile = Yii::app()->basePath ."/../1.jpg";
           $size = "200x200";
           $getFromSecond = 5;

           $cmd = "$ffmpeg -i $videoFile -an -ss $getFromSecond -s $size $imageFile";
           shell_exec($cmd);

    This action called throw ajax by using dropzone Yii extension.

      $imageFile = "E:\xampp\htdocs\tme\protected\..\1.jpg"
  • Determine if OpenCV has FFMpeg Support at Configuration Time

    17 février 2014, par archgoon

    I'm building my project with CMake, but I want to throw an error if OPENCV has not been compiled with FFMPEG support (as this will prevent a large amount of functinoality of my application). How can I modify my CMake scripts to check for this ?

  • video overwriting using ffmpeg - I want to Add video rotation code and rewrite the existing file..How can i do that ?

    27 octobre 2013, par Lakshmi Priya.K

    I want to rotate the .mov file which is in portrait mode by 90 degrees, for that i used the following code..
    It works but, it results in loss of video frames...

    My code is,

    public void encode(File source, File target, EncodingAttributes attributes,
           EncoderProgressListener listener, Integer i) throws IllegalArgumentException,
           InputFormatException, EncoderException {        
       String formatAttribute = attributes.getFormat();

       Float offsetAttribute = attributes.getOffset();

       Float durationAttribute = attributes.getDuration();

       QualityScale qualityScale = attributes.getQualityScale();

       AudioAttributes audioAttributes = attributes.getAudioAttributes();

       VideoAttributes videoAttributes = attributes.getVideoAttributes();

       if (audioAttributes == null && videoAttributes == null) {
           throw new IllegalArgumentException(
                   "Both audio and video attributes are null");
       }
       target = target.getAbsoluteFile();
       target.getParentFile().mkdirs();        
       FFMPEGExecutor ffmpeg = locator.createExecutor();
       if (offsetAttribute != null) {
           ffmpeg.addArgument("-ss");
           ffmpeg.addArgument(String.valueOf(offsetAttribute.floatValue()));
       }
       ffmpeg.addArgument("-i");
       ffmpeg.addArgument(source.getAbsolutePath());
       if (durationAttribute != null) {
           ffmpeg.addArgument("-t");
           ffmpeg.addArgument(String.valueOf(durationAttribute.floatValue()));
       }
       if (qualityScale != null) {
           ffmpeg.addArgument("-qscale:"+qualityScale.getQualityStreamSpecifier());
           ffmpeg.addArgument(String.valueOf(qualityScale.getQualityValue()));
       }
       if (videoAttributes == null) {
           ffmpeg.addArgument("-vn");
       } else {
           String codec = videoAttributes.getCodec();
           if (codec != null) {
               ffmpeg.addArgument("-vcodec");
               ffmpeg.addArgument(codec);
           }
           String tag = videoAttributes.getTag();
           if (tag != null) {
               ffmpeg.addArgument("-vtag");
               ffmpeg.addArgument(tag);
           }
           Integer bitRate = videoAttributes.getBitRate();
           if (bitRate != null) {
               ffmpeg.addArgument("-b");
               ffmpeg.addArgument(String.valueOf(bitRate.intValue()));
           }
           Integer frameRate = videoAttributes.getFrameRate();
           if (frameRate != null) {
               ffmpeg.addArgument("-r");
               ffmpeg.addArgument(String.valueOf(frameRate.intValue()));
           }
           VideoSize size = videoAttributes.getSize();
           if (size != null) {
               ffmpeg.addArgument("-s");
               ffmpeg.addArgument(String.valueOf(size.getWidth()) + "x"
                       + String.valueOf(size.getHeight()));
           }
           FilterGraph filterGraph = videoAttributes.getFilterGraph();
           if (filterGraph != null) {
               ffmpeg.addArgument("-vf");
               if(videoAttributes.getRotate() != null && videoAttributes.getRotate() == 90){                  
                   ffmpeg.addArgument("transpose=1");
               }else if(videoAttributes.getRotate() != null && videoAttributes.getRotate() == 180){
                   ffmpeg.addArgument("vflip,hflip");
               }              
               else {
                   if (filterGraph.isUseExpression()) {
                       ffmpeg.addArgument(filterGraph.getFilterGraphExpression());
                   }
               }          

           }

       }
       if (audioAttributes == null) {
           ffmpeg.addArgument("-an");
       } else {
           String codec = audioAttributes.getCodec();
           if (codec != null) {
               ffmpeg.addArgument("-acodec");
               ffmpeg.addArgument(codec);
           }
           Integer bitRate = audioAttributes.getBitRate();
           if (bitRate != null) {
               ffmpeg.addArgument("-ab");
               ffmpeg.addArgument(String.valueOf(bitRate.intValue()));
           }
           Integer channels = audioAttributes.getChannels();
           if (channels != null) {
               ffmpeg.addArgument("-ac");
               ffmpeg.addArgument(String.valueOf(channels.intValue()));
           }
           Integer samplingRate = audioAttributes.getSamplingRate();
           if (samplingRate != null) {
               ffmpeg.addArgument("-ar");
               ffmpeg.addArgument(String.valueOf(samplingRate.intValue()));
           }
           Integer volume = audioAttributes.getVolume();
           if (volume != null) {
               ffmpeg.addArgument("-vol");
               ffmpeg.addArgument(String.valueOf(volume.intValue()));
           }
       }
       ffmpeg.addArgument("-f");
       ffmpeg.addArgument(formatAttribute);
       ffmpeg.addArgument("-y");
       ffmpeg.addArgument(target.getAbsolutePath());      
       try {
           ffmpeg.execute();
       } catch (IOException e) {
           throw new EncoderException(e);
       }
       try {
           String lastWarning = null;
           long duration;
           long progress = 0;
           RBufferedReader reader = null;
           reader = new RBufferedReader(new InputStreamReader(ffmpeg
                   .getErrorStream()));
           MultimediaInfo info = parseMultimediaInfo(source, reader);
           if (durationAttribute != null) {
               duration = (long) Math
                       .round((durationAttribute.floatValue() * 1000L));
           } else {
               duration = info.getDuration();
               if (offsetAttribute != null) {
                   duration -= (long) Math
                           .round((offsetAttribute.floatValue() * 1000L));
               }
           }
           if (listener != null) {
               listener.sourceInfo(info);
           }
           int step = 0;
           String line;
           while ((line = reader.readLine()) != null) {
               System.out.println("line::::"+line);

               if (step == 0) {
                   if (line.startsWith("WARNING: ")) {
                       if (listener != null) {
                           listener.message(line);
                       }
                   } else if (!line.startsWith("Output #0")) {
                       //throw new EncoderException(line);
                   } else {
                       step++;
                   }
               } else if (step == 1) {
                   if (!line.startsWith("  ")) {
                       step++;
                   } else {
                       System.out.println("line>>>>>>"+line);
                       Hashtable table1 = new Hashtable();
                       Matcher m = ROTATE_INFO_PATTERN.matcher(line);
                       while (m.find()) {
                           if (table1 == null) {
                               table1 = new Hashtable();
                           }
                           String key = m.group(1);
                           String value = m.group(2);
                           table1.put(key, value);
                       }
                       System.out.println("Table values"+table1.get("rotate"));                
                       if(table1.get("rotate") != null){
                           Object videoRotateValue = table1.get("rotate");
                           int rotate = Integer.valueOf(videoRotateValue.toString());
                           switch(rotate){
                           case 90:
                                   videoAttributes.setRotate(rotate);
                                   if(i == 0){
                                       i++;                                        
                                       encode(source, target, attributes, null, i);                                        
                                   }

                           break;
                           case 180:                      
                               videoAttributes.setRotate(rotate);
                               if(i == 0){
                                   i++;
                                   encode(source, target, attributes, null, i);                                        
                               }

                       break;
                           case 270: System.out.println("case 3 :: "+videoRotateValue);
                           break;
                           }
                       }
                   }
               }
               if (step == 2) {
                   if (!line.startsWith("Stream mapping:")) {
                       throw new EncoderException(line);
                   } else {
                       step++;
                   }
               } else if (step == 3) {
                   if (!line.startsWith("  ")) {
                       step++;
                   }
               }
               if (step == 4) {
                   line = line.trim();
                   if (line.length() > 0) {
                       Hashtable table = parseProgressInfoLine(line);
                       if (table == null) {
                           if (listener != null) {
                               listener.message(line);
                           }
                           lastWarning = line;
                       } else {
                           if (listener != null) {
                               String time = (String) table.get("time");
                               if (time != null) {
                                   int dot = time.indexOf('.');
                                   if (dot > 0 && dot == time.length() - 2
                                           && duration > 0) {
                                       String p1 = time.substring(0, dot);
                                       String p2 = time.substring(dot + 1);
                                       try {
                                           long i1 = Long.parseLong(p1);
                                           long i2 = Long.parseLong(p2);
                                           progress = (i1 * 1000L)
                                                   + (i2 * 100L);
                                           int perm = (int) Math
                                                   .round((double) (progress * 1000L)
                                                           / (double) duration);
                                           if (perm > 1000) {
                                               perm = 1000;
                                           }
                                           listener.progress(perm);
                                       } catch (NumberFormatException e) {
                                           ;
                                       }
                                   }
                               }
                           }

                           lastWarning = null;
                       }
                   }
               }
           }
           if (lastWarning != null) {
               if (!SUCCESS_PATTERN.matcher(lastWarning).matches()) {
                   throw new EncoderException(lastWarning);
               }
           }
       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       } finally {
           ffmpeg.destroy();
       }
    }

    Please advise, how to achieve video rotation without any video Frame loss

    Thanks In Advance

    Lakshmi Priya . K