[![CircleCI](https://img.shields.io/circleci/project/github/RedSparr0w/node-csgo-parser.svg)]()
[![GitHub release](https://img.shields.io/badge/version-3.22-green.svg)]()
[![GitHub release](https://img.shields.io/badge/%E4%BD%9C%E8%80%85-Huangyong-ff69b4.svg)]()
<link href="http://kevinburke.bitbucket.org/markdowncss/markdown.css" rel="stylesheet"></link>
## 安卓端集成可用的执行ffmpeg命令的库
本代码封装自:https://androidlearnersite.wordpress.com/2017/03/17/ffmpeg-video-editor/
安卓应用纯java代码编辑你需要的功能,不需要自己写C代码和NDK,只需要关注逻辑实现。
最新版本 ,[3.22_02 点击下载](http://pan.baidu.com/s/1hsvh0jy)。
提取密码:30hi
拓展库下载:[libx264](http://pan.baidu.com/s/1eSImjv0)
提取密码:8u1i
### [英文文档](https://github.com/hiliving/VideoEdit/blob/master/README_EN.md)
### 主要功能:
>文件处理
+ 1.视频压缩
-s 控制视频分辨率(如160X320)
-b 比特率(例如 150K)
这两个参数直接决定压缩质量,分辨率高,比特率增加,都可以提升画质,但是同时也会增加文件体积。
//常规的压缩代码
ffmpeg -y -i /sdcard/videokit/in.mp4 -strict experimental -s 160x120 -r 25 -vcodec mpeg4 -b 150k -ab 48000 -ac 2 -ar 22050 /sdcard/videokit/out.mp4
//使用h264编码,需要拓展库
ffmpeg -y -i /sdcard/videokit/in.mp4 -strict experimental -vcodec libx264 -preset ultrafast -crf 24 -acodec aac -ar 44100 -ac 2 -b:a 96k -s 320x240 -aspect 4:3 /sdcard/videokit/out3.mp4
建议使用数组格式的命令,可以避免校验出现的问题。例如:
String[] complexCommand = {"ffmpeg","-y" ,"-i", "/sdcard/video kit/in.mp4","-strict","experimental","-s", "160x120","-r","25", "-vcodec", "mpeg4", "-b", "150k", "-ab","48000", "-ac", "2", "-ar", "22050", "/sdcard/video kit/out.mp4"};
+ 2.音频压缩
String commandStr = "ffmpeg -y -i /sdcard/vk2/in.wav -ar 44100 -ac 2 -ab 64k -f mp3 /sdcard/videokit/out.mp3";
音频裁剪
String commandStr ={"ffmpeg","-y","-i","/storage/emulated/0/vk2/in.mp3","-strict","experimental","-acodec","copy","-ss","00:00:00","-t","00:00:03.000","/storage/emulated/0/videokit/out.mp3"};
+ 3.视频旋转
旋转90度
ffmpeg -y -i /sdcard/videokit/in.mp4 -strict experimental -vf transpose=1 -s 160x120 -r 30 -aspect 4:3 -ab 48000 -ac 2 -ar 22050 -b 2097k /sdcard/video_output/out.mp4
+ 4.视频画面局部裁剪
ffmpeg -y -i /sdcard/videokit/short.mp4 -strict experimental -vf crop=100:100:0:0 -s 320x240 -r 15 -aspect 3:4 -ab 12288 -vcodec mpeg4 -b 2097152 -sample_fmt s16 /sdcard/videokit/out.mp4
+ 5.从视频内提取一帧保存为图片
ffmpeg -y -i /sdcard/videokit/in.mp4 -strict experimental -an -r 1/2 -ss 00:00:00.000 -t 00:00:03 /sdcard/videokit/filename%03d.jpg
+ 6.从视频中提取音频文件
//示例1
ffmpeg -y -i /sdcard/videokit/in.avi -strict experimental -acodec copy /sdcard/videokit/out.mp3
//示例2
ffmpeg -y -i /sdcard/videokit/in.mp4 -strict experimental -vn -ar 44100 -ac 2 -ab 256k -f mp3 /sdcard/videokit/out.mp3
+ 7.对视频中的音频重新编码
ffmpeg -y -i /sdcard/in.mp4 -strict experimental -vcodec copy -acodec libmp3lame -ab 64k -ac 2 -b 1200000 -ar 22050 /sdcard/out.mp4
+ 8.改变视频的分辨率,4:3 or 16:9
ffmpeg -y -i /sdcard/in.mp4 -strict experimental -vf transpose=3 -s 320x240 -r 15 -aspect 3:4 -ab 12288 -vcodec mpeg4 -b 2097152 -sample_fmt s16 /sdcard/out.mp4
+ 9.从视频中剪辑一段时间的视频
ffmpeg -ss 00:00:01.000 -y -i /sdcard/videokit/in.mp4 -strict experimental -t 00:00:02.000 -s 320x240 -r 15 -vcodec mpeg4 -b 2097152 -ab 48000 -ac 2 -b 2097152 -ar 22050 /sdcard/videokit/out.mp4
+ 10.音频转码
ffmpeg -y -i /sdcard/videokit/big.wav /sdcard/videokit/small.mp3
+ 11.视频添加水印
// test with watermark.png 128x128, add it to /sdcard/videokit/
String[] complexCommand = {"ffmpeg","-y" ,"-i", "/sdcard/videokit/in.mp4","-strict","experimental", "-vf", "movie=/sdcard/videokit/watermark.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out]","-s", "320x240","-r", "30", "-b", "15496k", "-vcodec", "mpeg4","-ab", "48000", "-ac", "2", "-ar", "22050", "/sdcard/videokit/out.mp4"};
>流以及更多场景处理
+ 0.从安卓设备推流到PC设备,并播放。
// APP中使用这条命令 ( 192.168.1.11 是电脑的IP)
ffmpeg -i /sdcard/videokit/2.mpg -strict experimental -f mpegts udp://192.168.1.11:8090
// (192.168.1.14 是安卓设备的 IP)
ffplay -f mpegts -ast 1 -vst 0 -ar 48000 udp://192.168.1.14:8090
+ 1.从相机预览获取原始格式的视频流。
Parameters parameters = camera.getParameters();
imageFormat = parameters.getPreviewFormat();
if (imageFormat == ImageFormat.NV21) {
Camera.Size previewSize = parameters.getPreviewSize();
frameWidth = previewSize.width;
frameHeight = previewSize.height;
Rect rect = new Rect(0, 0, frameWidth, frameHeight);
YuvImage img = new YuvImage(data, ImageFormat.NV21, frameWidth, frameHeight, null);
try {
outStream.write(data);
outStream.flush();
}
}
执行编码命令
"ffmpeg -f rawvideo -pix_fmt nv21 -s 640x480 -r 15 -i " + Environment.getExternalStorageDirectory().getAbsolutePath().toString() + "/yuv.data rtmp://host/stream.flv"
+ 2.从一台设备接收另一台设备的视频流,并保持为文件。
【记得添加网络权限】
//第一台设备:
ffmpeg -i /sdcard/one3.mp4 -f mpegts udp://192.168.0.107:8090
//
//第二台设备:
String[] complexCommand = {"ffmpeg","-y" ,"-i", "udp://192.168.0.108:8090","-strict","experimental","-crf", "30","-preset", "ultrafast", "-acodec", "aac", "-ar", "44100", "-ac", "2", "-b:a", "96k", "-vcodec", "libx264", "-r", "25", "-b:v", "500k", "-f", "flv", "/sdcard/videokit/t.flv"};
+ 3.H264编码(需要拓展库)
//例子1
ffmpeg -y -i /sdcard/Video/1.MTS -strict experimental -vcodec libx264 -preset ultrafast -crf 24 /sdcard/videokit/out.mp4
//例子2
ffmpeg -y -i /sdcard/videokit/m.mkv -strict experimental -vcodec libx264 -preset ultrafast -crf 24 -sn /sdcard/videokit/m2.mkv
+ 4.添加字幕
//例子1
ffmpeg -y -i /sdcard/videokit/m2.mkv -i /sdcard/videokit/in.srt -strict experimental -vcodec libx264 -preset ultrafast -crf 24 -scodec copy /sdcard/videokit/mo.mkv
//例子2
ffmpeg -y -i /sdcard/videokit/m2.mkv -i /sdcard/videokit/in.srt -strict experimental -scodec copy /sdcard/videokit/outm3.mkv
+ 5.将一个mp3音频文件转为m4a格式
ffmpeg -i /sdcard/videokit/in.mp3 /sdcard/videokit/out.m4a
+ 6.将一个视频和一个音频文件渲染为一个H.264编码的视频(需要额外的编码库)
ffmpeg -y -i /sdcard/videokit/in.mp4 -strict experimental -vcodec libx264 -crf 24 -acodec aac /sdcard/videokit/out.mkv
+ 7.添加复古滤镜
commandStr = "ffmpeg -y -i /sdcard/videokit/in.mp4 -strict experimental -vf curves=vintage -s 640x480 -r 30 -aspect 4:3 -ab 48000 -ac 2 -ar 22050 -b 2097k -vcodec mpeg4 /sdcard/videokit/curve.mp4";
+ 8.黑白滤镜
commandStr = "ffmpeg -y -i /sdcard/videokit/in.mp4 -strict experimental -vf hue=s=0 -vcodec mpeg4 -b 2097152 -s 320x240 -r 30 /sdcard/videokit/out.mp4";
+ 9.色彩通道滤镜,类似PS中�
没有合适的资源?快使用搜索试试~ 我知道了~
Android端可用的执行ffmpeg命令的库.zip
共141个文件
xml:44个
java:24个
so:15个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 170 浏览量
2024-12-06
01:18:48
上传
评论
收藏 40.22MB ZIP 举报
温馨提示
Android端可用的执行ffmpeg命令的库 ## Android端集成可用的执行ffmpeg命令的库 本代码封装自https://androidlearnersite.wordpress.com/2017/03/17/ffmpeg-video-editor/Android应用纯java代码编辑你需要的功能,不需要自己写C代码和NDK,只需要关注逻辑实现。最新版本 , 3.22_02 点击下载。 提取密码30hi 拓展库下载libx264 提取密码8u1i英文文档主要功能文件处理1.视频压缩 -s 控制视频分辨率(如160X320) -b 比特率(例如 150K) 这两个参数直接决定压缩质量,分辨率高,比特率增加,都可以提升画质,但是同时也会增加文件体积。 //常规的压缩代码 ffmpeg -y -i /sdcard/videokit/in.mp4 -strict experimental -s 160x120 -r 25 -vcodec mpeg4 -b 150k -ab 48000 -ac 2 -ar 22
资源推荐
资源详情
资源评论
收起资源包目录
Android端可用的执行ffmpeg命令的库.zip (141个子文件)
ffmpeg4android_lib-release.aar 5.94MB
ffmpeg4android_lib-debug.aar 2KB
resources-debug-androidTest.ap_ 3KB
gradlew.bat 2KB
GeneralUtils.class 14KB
ProgressCalculator.class 4KB
LoadJNI.class 4KB
LicenseCheckJNI.class 983B
R$string.class 788B
BuildConfig.class 610B
R.class 591B
R$style.class 534B
R$id.class 461B
R$menu.class 459B
CommandValidationException.class 428B
Prefs.class 417B
R$attr.class 370B
libvideokit.so.ess 4.9MB
libvideokit.so.ess 4.9MB
.gitignore 118B
.gitignore 7B
build.gradle 1KB
build.gradle 542B
build.gradle 364B
settings.gradle 38B
gradlew 5KB
gradle-wrapper.jar 52KB
classes.jar 14KB
GeneralUtils.java 15KB
Camera2Activity.java 11KB
TranscodeActivity.java 9KB
CaptureActivity.java 6KB
ProgressCalculator.java 5KB
LoadJNI.java 4KB
FFmpegUtils.java 4KB
LocalVideoCompress.java 4KB
MainActivity.java 3KB
CameraPreview.java 2KB
LicenseCheckJNI.java 1KB
R.java 1KB
R.java 1KB
R.java 1KB
R.java 1KB
ExampleInstrumentedTest.java 748B
BuildConfig.java 472B
BuildConfig.java 471B
BuildConfig.java 451B
ExampleUnitTest.java 400B
App.java 311B
Prefs.java 164B
CommandValidationException.java 151B
CommonListAdapter.java 117B
values.json 17KB
menu.json 544B
README.md 14KB
README_EN.md 21B
ic_launcher_round.png 14KB
ic_launcher.png 10KB
ic_launcher_round.png 10KB
ic_launcher.png 8KB
ic_launcher_round.png 6KB
ic_launcher.png 5KB
ic_launcher_round.png 4KB
ic_launcher.png 3KB
ic_launcher_round.png 2KB
ic_launcher.png 2KB
proguard-rules.pro 937B
gradle.properties 730B
compile-file-map.properties 468B
compile-file-map.properties 394B
compile-file-map.properties 390B
gradle-wrapper.properties 230B
libvideokit.so 11.75MB
libvideokit.so 11.75MB
libvideokit.so 11.75MB
libvideokit.so 11.75MB
libvideokit.so 11.75MB
liblicense-jni.so 13KB
liblicense-jni.so 13KB
liblicense-jni.so 13KB
liblicense-jni.so 13KB
liblicense-jni.so 13KB
libloader-jni.so 13KB
libloader-jni.so 13KB
libloader-jni.so 13KB
libloader-jni.so 13KB
libloader-jni.so 13KB
dependency.store 5B
dependency.store 5B
dependency.store 5B
访问地址.text 81B
资源内容.txt 863B
R.txt 394B
R.txt 394B
R.txt 394B
tag.txt 26B
标签.txt 6B
merger.xml 3KB
merger.xml 3KB
merger.xml 3KB
共 141 条
- 1
- 2
资源评论
徐浪老师
- 粉丝: 8542
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 精选毕设项目-水浒传.zip
- 精选毕设项目-探趣各大社交平台.zip
- 精选毕设项目-贪吃蛇游戏.zip
- 精选毕设项目-腾讯云小程序一站式解决方案.zip
- 精选毕设项目-淘票票电影.zip
- 精选毕设项目-题库:选择选项,切换至下一题.zip
- 精选毕设项目-天津旅游局.zip
- 精选毕设项目-天气预报 (2).zip
- 精选毕设项目-同乐居商城:购物车合算.zip
- 基于SpringBoot的OA办公系统论文
- Android调用摄像头扫码接口集成
- 超声无损检测合成孔径PSM算法、对应comsol模型,效果看图 代码为matlab书写,行行注释 模型为comsol建立,模型大小,阵元参数,激励信号等可调,基于参数化扫描,一键运行及导出信号,不用
- 精选毕设项目-同乐居外卖点餐.zip
- 精选毕设项目-图片展示.zip
- 三相电压型SVPWM整流器仿真matlab simulink,双闭环pi PI控制(电压外环电流内环),输出电压700V,(可自行调节)单位功率因数1运行,含负载实验 资料讲解
- 精选毕设项目-图片.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功