栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java类jar 实现 转视频格式 fvl转mp4,avi(简洁)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java类jar 实现 转视频格式 fvl转mp4,avi(简洁)

首先要使用一个工具包 

 FFmpeg 是一款非常好用处理音视频的工具包,可以转各种文件,可以安装在win,linux上使用,我们也可以使用java代码来在项目中调用电脑中的安装的FFmpeg,不过这不够自由,如果代码迁移平台就要适配其他平台的FFmpeg。所以如果能有人把这个FFmpeg做出jar包依赖那操作起来就很方便了,于是jave就有了

这是官网

1.首先要引入第三方的国外大神包,

  ws.schild
  jave-core
  2.4.6


  ws.schild
  jave-native-win64
  2.4.6
jar里面内置了FFmpeg win,linux的安装预编译版本 ,可以通过提供的Java运行工作 2.然后是代码展示
package com.sino.test;

import ws.schild.jave.*;
import java.io.File;




public class ChangeVideo {
    public static void main(String[] args) throws EncoderException {
        File file = new File("/big_buck_bunny_720p_1mb.flv");
       if(!check(file)){
           return ;
       }
        File source = new File("/big_buck_bunny_720p_1mb.flv");
        //源文件
        File target = new File("t/arget.mp4");
        //目标文件(需要生成的文件)
        AudioAttributes audio = new AudioAttributes();
        //音频设置类
        audio.setCodec("libmp3lame");
        //音频编码格式
//        audio.setBitRate(new Integer(56000));
//设置比特率,可以不填有默认值
//        audio.setChannels(new Integer(1));
//设置将在重新编码的音频通道的数量(1 = 单声道,2 = 立体声)可以不填有默认值。
//        audio.setSamplingRate(new Integer(22050));
//它为新的重新编码的音频流设置采样率 可以不填有默认值。。
        VideoAttributes video = new VideoAttributes();
        //视频设置类
        video.setCodec("h264");
        //音频编码--必填 重要 亲测测试得到
        //flv 转 mp4 用 h264 
        //flv 转 avi 用 rawvideo
        EncodingAttributes attrs = new EncodingAttributes();
        attrs.setFormat("mp4");
        //设置产出文件的类型
        attrs.setAudioAttributes(audio);
        //audio 属性
        attrs.setVideoAttributes(video);
        //video 属性
        Encoder encoder = new Encoder();
        //创建编译器
        MultimediaObject mediaObject=new MultimediaObject(source);
        EncoderProgressListener encoderProgressListener = new EncoderProgressListener() {
        //编译器过程监听器
            public void sourceInfo(MultimediaInfo multimediaInfo) {

                System.out.println("信息"+multimediaInfo);
            }

            public void progress(int i) {
                System.out.println(i+"%");
            }

            public void message(String s) {
                System.out.println(s);
            }
        };
        encoder.encode(mediaObject, target, attrs,encoderProgressListener) ;
        //编译器启动
    }
    
    public static boolean check(File file){
        if(!file.exists()){
            System.out.println("文件不存在");
            return false;
        }
        return true;
    }
    
}

总结:这个jar还是很方便的,jar里面还有很多属性支持很多类型,可以去官网翻阅文档试一试,当然官方文档不提供中文。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1031380.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号