• 转载:xuggle学习-IContainer2


     public static void main(String[] args)
      {
        String filename = "c:/0824.flv";
        // Create a Xuggler container object
        IContainer container = IContainer.make();
        
        // Open up the container
        if (container.open(filename, IContainer.Type.READ, null) < 0)
          throw new IllegalArgumentException("could not open file: " + filename);
        
        // query how many streams the call to open found
        int numStreams = container.getNumStreams();
        System.out.printf("file "%s": %d stream%s; ",
            filename,
            numStreams,
            numStreams == 1 ? "" : "s");
        System.out.printf("duration (ms): %s; ", container.getDuration() == Global.NO_PTS ? "unknown" : "" + container.getDuration()/1000);
        System.out.printf("start time (ms): %s; ", container.getStartTime() == Global.NO_PTS ? "unknown" : "" + container.getStartTime()/1000);
        System.out.printf("file size (bytes): %d; ", container.getFileSize());
        System.out.printf("bit rate: %d; ", container.getBitRate());
        System.out.printf("
    ");
    
        // and iterate through the streams to print their meta data
        for(int i = 0; i < numStreams; i++)
        {
          // Find the stream object
          IStream stream = container.getStream(i);
          // Get the pre-configured decoder that can decode this stream;
          IStreamCoder coder = stream.getStreamCoder();
          
          // and now print out the meta data.
          System.out.printf("stream %d: ",    i);
          System.out.printf("type: %s; ",     coder.getCodecType());
          System.out.printf("codec: %s; ",    coder.getCodecID());
          System.out.printf("duration: %s; ", stream.getDuration() == Global.NO_PTS ? "unknown" : "" + stream.getDuration());
          System.out.printf("start time: %s; ", container.getStartTime() == Global.NO_PTS ? "unknown" : "" + stream.getStartTime());
          System.out.printf("language: %s; ", stream.getLanguage() == null ? "unknown" : stream.getLanguage());
          System.out.printf("timebase: %d/%d; ", stream.getTimeBase().getNumerator(), stream.getTimeBase().getDenominator());
          System.out.printf("coder tb: %d/%d; ", coder.getTimeBase().getNumerator(), coder.getTimeBase().getDenominator());
          
          if (coder.getCodecType() == ICodec.Type.CODEC_TYPE_AUDIO)
          {
            System.out.printf("sample rate: %d; ", coder.getSampleRate());
            System.out.printf("channels: %d; ",    coder.getChannels());
            System.out.printf("format: %s",        coder.getSampleFormat());
          } else if (coder.getCodecType() == ICodec.Type.CODEC_TYPE_VIDEO)
          {
            System.out.printf(" %d; ",  coder.getWidth());
            System.out.printf("height: %d; ", coder.getHeight());
            System.out.printf("format: %s; ", coder.getPixelType());
            System.out.printf("frame-rate: %5.2f; ", coder.getFrameRate().getDouble());
          }
          System.out.printf("
    ");
        }
        
      }
  • 相关阅读:
    在win8.1 64位环境下有关Oracle的安装和卸载
    动手又动脑
    二柱子四则运算(课堂练习)
    Java学生成绩绩点管理系统
    小学期第八周收获
    小学期第七周收获
    小学期第六周收获
    小学期第五周收获
    《大道至简》读后感
    小学期第四周收获
  • 原文地址:https://www.cnblogs.com/jietz0407-com/p/6517996.html
Copyright © 2020-2023  润新知