<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java壓縮音頻視頻工具類

      /**
       * TODO
       *
       * @author Administrator
       * @version 1.0
       * @date 2021/11/5 16:55
       */
      public class vedio {
          /**
           * 傳視頻File對象(這是一個具體的文件),返回壓縮后File對象信息
           *
           * @param source
           */
          public static File compressionVideo(File source, String picName) {
              if (source == null) {
                  return null;
              }
              String newPath = source.getAbsolutePath().substring(0, source.getAbsolutePath().lastIndexOf(File.separator)).concat(File.separator).concat(picName);
              File target = new File(newPath);
              try {
                  MultimediaObject object = new MultimediaObject(source);
                  AudioInfo audioInfo = object.getInfo().getAudio();
                  // 根據(jù)視頻大小來判斷是否需要進行壓縮,
                  int maxSize = 5;
                  double mb = Math.ceil(source.length() / 1048576);
                  int second = (int) object.getInfo().getDuration() / 1000;
                  BigDecimal bd = new BigDecimal(String.format("%.4f", mb / second));
                  System.out.println("開始壓縮視頻了--> 視頻每秒平均 " + bd + " MB ");
                  // 視頻 > 5MB, 或者每秒 > 0.5 MB 才做壓縮, 不需要的話可以把判斷去掉
                  boolean temp = mb > maxSize || bd.compareTo(new BigDecimal(0.5)) > 0;
      //            if(temp){
                  long time = System.currentTimeMillis();
                  //TODO 視頻屬性設置
      //            int maxBitRate = 128000;
                  int maxBitRate = 16000;
      //            int maxSamplingRate = 44100;
                  int maxSamplingRate = 16000;
                  int bitRate = 100000;
      //            int bitRate = 800000;
                  int maxFrameRate = 20;
      //            int maxWidth = 1280;
                  int maxWidth = 720;
      
                  AudioAttributes audio = new AudioAttributes();
                  // 設置通用編碼格式10                   audio.setCodec("aac");
                  // 設置最大值:比特率越高,清晰度/音質越好
                  // 設置音頻比特率,單位:b (比特率越高,清晰度/音質越好,當然文件也就越大 128000 = 182kb)
                  if (audioInfo.getBitRate() > maxBitRate) {
                      audio.setBitRate(new Integer(maxBitRate));
                  }
      
                  // 設置重新編碼的音頻流中使用的聲道數(shù)(1 =單聲道,2 = 雙聲道(立體聲))。如果未設置任何聲道值,則編碼器將選擇默認值 0。
                  audio.setChannels(audioInfo.getChannels());
                  // 采樣率越高聲音的還原度越好,文件越大
                  // 設置音頻采樣率,單位:赫茲 hz
                  // 設置編碼時候的音量值,未設置為0,如果256,則音量值不會改變
                  // audio.setVolume(256);
                  if (audioInfo.getSamplingRate() > maxSamplingRate) {
                      audio.setSamplingRate(maxSamplingRate);
                  }
      
                  //TODO 視頻編碼屬性配置
                  ws.schild.jave.info.VideoInfo videoInfo = object.getInfo().getVideo();
                  VideoAttributes video = new VideoAttributes();
                  video.setCodec("h264");
                  //設置音頻比特率,單位:b (比特率越高,清晰度/音質越好,當然文件也就越大 800000 = 800kb)
                  if (videoInfo.getBitRate() > bitRate) {
                      video.setBitRate(bitRate);
                  }
      
                  // 視頻幀率:15 f / s  幀率越低,效果越差
                  // 設置視頻幀率(幀率越低,視頻會出現(xiàn)斷層,越高讓人感覺越連續(xù)),視頻幀率(Frame rate)是用于測量顯示幀數(shù)的量度。所謂的測量單位為每秒顯示幀數(shù)(Frames per Second,簡:FPS)或“赫茲”(Hz)。
                  if (videoInfo.getFrameRate() > maxFrameRate) {
                      video.setFrameRate(maxFrameRate);
                  }
      
                  // 限制視頻寬高
                  int width = videoInfo.getSize().getWidth();
                  int height = videoInfo.getSize().getHeight();
                  if (width > maxWidth) {
                      float rat = (float) width / maxWidth;
                      video.setSize(new VideoSize(maxWidth, (int) (height / rat)));
                  }
      
                  EncodingAttributes attr = new EncodingAttributes();
      //                attr.setFormat("mp4");
                  attr.setAudioAttributes(audio);
                  attr.setVideoAttributes(video);
      
                  // 速度最快的壓縮方式, 壓縮速度 從快到慢: ultrafast, superfast, veryfast, faster, fast, medium,  slow, slower, veryslow and placebo.
      //                attr.setPreset(PresetUtil.VERYFAST);
      //                attr.setCrf(27);
      //                // 設置線程數(shù)
      //                attr.setEncodingThreads(Runtime.getRuntime().availableProcessors()/2);
      
                  Encoder encoder = new Encoder();
                  encoder.encode(new MultimediaObject(source), target, attr);
                  System.out.println("壓縮總耗時:" + (System.currentTimeMillis() - time) / 1000);
                  return target;
      //            }
              } catch (Exception e) {
                  e.printStackTrace();
              } finally {
                  if (target.length() > 0) {
                      source.delete();
                  }
              }
              return source;
          }
      
          public static void main(String[] args) {
              File f = new File("E://big.mp4");
              File file = compressionVideo(f, "22.mp4");
          }
      }
      posted @ 2021-11-10 10:00  反轉蘋果派  閱讀(478)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 自拍亚洲综合在线精品| 窝窝午夜色视频国产精品破| 国产av亚洲精品ai换脸电影 | 国产精品伦理一区二区三| 仲巴县| 国产精品午夜无码AV天美传媒| 夜夜爽妓女8888888视频| 亚洲日本中文字幕天天更新| 成人无号精品一区二区三区| 熟女国产精品一区二区三| 綦江县| 欧美人与禽2o2o性论交| 少妇被无套内谢免费看| 国产成人午夜福利院| 久久亚洲精品中文字幕馆| 日韩放荡少妇无码视频| 精品亚洲国产成人av在线| 国产喷水1区2区3区咪咪爱AV| 午夜一区二区三区视频| 国产在线精品一区二区三区直播| 久久88香港三级台湾三级播放| 白嫩少妇bbw撒尿视频| 国产成人精品一区二三区| 国产精品国产三级国快看| 国产片av在线观看国语| 内黄县| 亚洲日本欧洲二区精品| 欧美高清狂热视频60一70| 国产玩具酱一区二区三区| 久久精品国产亚洲av高| 宅男久久精品国产亚洲av麻豆| 国产精品亚洲二区在线看| 亚洲乱亚洲乱妇50p| 国产成人一区二区免av| 南漳县| 日韩人妻无码精品久久| 天干天干夜啦天干天干国产| 国产福利深夜在线播放| 东京热加勒比无码少妇| 久久精品成人免费看| 国产精品va无码一区二区|