- Android mini API 16.
- H.264/AAC 硬编.
- H.264/AAC 软编.
- 前后摄像头切换.
clone libx264
到extra
目录,执行 sh tools/compile-x264.sh all
生成libx264.a
静态库
导入Streaming
到Android Studio
使用方式:
encoder = new Encoder.Builder()
// 是否使用软编
.setSoftEncoder(Encoder.SOFT_ENCODE)
// 设置CameraView
.setCameraView(mCameraView)
.build();
释放资源 调用代码如下:
encoder.stop();
export ANDROID_NDK=you_ndk_path
因为arm64和x86,x86-64使用了yasm,所以需要安装yasm,由于我使用的是mac,所以使用brew安装,brew install yasm
,brew安装文档brew
然后在终端运行
./build-android.sh
会去下载ffmpeg和x264的源码,编译完成之后会在tools
目录下的ffmpeg-build
下生成对应的libffmpeg.so,编译完成之后把项目导入Android Studio就可以了.
FFmpeg ffmpeg = FFmpeg.getInstance();
ffmpeg.setInputDataSource("you input path");
ffmpeg.setOutputDataSource("you output path");
//视频的宽
int videoWidth = ffmpeg.getVideoWidth();
//视频的高
int videoHeight = ffmpeg.getVideoHeight();
//视频的角度,90,180,270,360
doule roation = ffmpeg.getRotation();
int result = ffmpeg.setCompress(需要缩放的宽,需要缩放的高);
ffmpeg.release();
//result >= 0 success
if (result < 0) {
//error
}
下面是裁剪的效果图
FFmpeg ffmpeg = FFmpeg.getInstance();
ffmpeg.setInputDataSource("you input path");
ffmpeg.setOutputDataSource("you outpu path");
int result = ffmpeg.crop(x, y, width, height);
ffmpeg.release();
// result >= 0 success
if (result < 0) {
//error
}
采用FFmpeg + SDL2来进行解码和播放
wlanjie, 联系方式:qq:153920981 微信:w153920981