Coder Social home page Coder Social logo

lacuz / epmedia Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yangjie10930/epmedia

0.0 2.0 0.0 2.82 MB

基于FFmpeg开发的视频处理框架,简单易用,帮助新手快速使用视频处理功能。包含以下功能:剪辑,裁剪,旋转,镜像,合并,分离,转码,添加LOGO,添加滤镜,添加背景音乐。

Java 100.00%

epmedia's Introduction

EpMedia

基于FFmpeg开发的视频处理框架,简单易用,帮助新手快速使用视频处理功能。包含以下功能:剪辑,裁剪,旋转,镜像,合并,分离,转码,添加LOGO,添加滤镜,添加背景音乐。

使用方法:

  • 添加gradle依赖:
compile 'com.github.yangjie10930:EpMedia:v0.1'

单个视频处理:

  • 创建待处理视频:
EpVideo epVideo = new EpVideo(url);
  • 剪辑
//一个参数为剪辑的起始时间,第二个参数为持续时间,单位:秒
epVideo.clip(1,2);//从第一秒开始,剪辑两秒
  • 裁剪
//参数分别是裁剪的宽,高,起始位置X,起始位置Y
epVideo.crop(480,360,0,0);
  • 旋转和镜像
//第一个参数为旋转角度,第二个参数为是否镜像,仅支持90,180,270度旋转
epVideo.rotation(90,true);
  • 添加文字
//参数分别是添加位置的X,Y坐标,文字的字号(单位px),文字颜色,字体文件的路径,内容
epVideo.addText(10,10,35,"red",ttfPath,text);
  • 添加logo
//添加图片类
//参数为图片路径,X,Y,图片的宽,高,是否是动图(仅支持png,jpg,gif图片,如果是gif图片,最后一个参数为true)
EpDraw epDraw = new EpDraw(filePath,10,10,50,50,false);
epVideo.addDraw(epDraw);
  • 添加自定义滤镜
//自定义滤镜,ffmpeg命令支持的滤镜都支持
epVideo.addFilter(filter);
  • 处理单个视频
EpVideo epVideo = new EpVideo(url);
EpEditor epEditor = new EpEditor(this);
//输出选项,参数为输出文件路径(目前仅支持mp4格式输出)
EpEditor.OutputOption outputOption = new EpEditor.OutputOption(outFile);
outputOption.width = 480;//输出视频宽,如果不设置则为原始视频宽高
outputOption.height = 360;//输出视频高度
outputOption.frameRate = 30;//输出视频帧率,默认30
outputOption.bitRate = 10;//输出视频码率,默认10
epEditor.exec(epVideo, outputOption, new OnEditorListener() {
			@Override
			public void onSuccess() {
				
			}

			@Override
			public void onFailure() {

			}
});
  • 添加背景音乐
EpEditor epEditor = new EpEditor(this);
//参数分别是视频路径,音频路径,输出路径,原始视频音量(1为100%,0.7为70%,以此类推),添加音频音量
epEditor.music(videoPath, audioPath, outfilePath, 1, 0.7, new OnEditorListener() {
			@Override
			public void onSuccess() {
				
			}

			@Override
			public void onFailure() {

			}
});

多个视频处理&合并

  • 合并视频
ArrayList<EpVideo> epVideos = new ArrayList<>();
epVideos.add(new EpVideo(url));//视频1
epVideos.add(new EpVideo(url2));//视频2
epVideos.add(new EpVideo(url3));//视频3
EpEditor epEditor = new EpEditor(this);
//输出选项,参数为输出文件路径(目前仅支持mp4格式输出)
EpEditor.OutputOption outputOption = new EpEditor.OutputOption(outFile);
outputOption.width = 480;//输出视频宽,默认480
outputOption.height = 360;//输出视频高度,默认360
outputOption.frameRate = 30;//输出视频帧率,默认30
outputOption.bitRate = 10;//输出视频码率,默认10
epEditor.merge(epVideos, outputOption, new OnEditorListener() {
	@Override
	public void onSuccess() {

	}

	@Override
	public void onFailure() {

	}
});

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.