Android 编译ffmpeg仅用于将图像转换为视频(带声音)
好的,我已经使用Guardian项目源代码成功编译了android的ffmpeg。现在二进制文件的大小约为10MB。但因为它必须要接电话,所以我只希望它尽可能小。Android 编译ffmpeg仅用于将图像转换为视频(带声音),android,build,ffmpeg,Android,Build,Ffmpeg,好的,我已经使用Guardian项目源代码成功编译了android的ffmpeg。现在二进制文件的大小约为10MB。但因为它必须要接电话,所以我只希望它尽可能小。 现在,Guardian项目代码有一个文件(goto link to see),它表示要更改该文件以添加/删除功能。但我不知道什么是什么。有人能帮我整理一下吗。理想情况下,我可以禁用一些东西 谢谢, 关于这个项目的规模,我不知道你能做些什么 关于将图像转换为视频,您可以执行以下操作: 公共静态字符串转换(文件){ 这实际上是从输入视频中
现在,Guardian项目代码有一个文件(goto link to see),它表示要更改该文件以添加/删除功能。但我不知道什么是什么。有人能帮我整理一下吗。理想情况下,我可以禁用一些东西 谢谢,
关于这个项目的规模,我不知道你能做些什么 关于将图像转换为视频,您可以执行以下操作: 公共静态字符串转换(文件){
这实际上是从输入视频中获取每一帧并创建另一个.mp4视频。您可以将其重写为文件夹中每一帧的代码(或类似的内容)。关于项目的大小,我不知道您可以做什么 关于将图像转换为视频,您可以执行以下操作: 公共静态字符串转换(文件){
这实际上是从输入视频中获取每一帧并创建另一个.mp4视频。您可以将其重写为文件夹中每一帧的代码(或类似的内容).hi-wamasa,如何使用javacv合并音频和视频?在android中可能吗?我已经使用javacv从图像列表中获取了视频。@rams是的,这是可能的。很抱歉这么晚才回复你,正在休假。在这个链接中,你可能会得到一些好的答案hi-wamasa,如何使用javacv合并音频和视频?可能吗在android中?我已经使用javacv从图像列表中获得了视频。@是的,这是可能的。很抱歉这么晚才回复你,我正在度假。你可能会在这个链接中得到一些好的答案
FFmpegFrameGrabber frameGrabber =
new FFmpegFrameGrabber(file.getAbsolutePath());
String newName = file.getName();
newName =
newName.replace("." + FileManager.getExtension(file),
"_RECODED.mp4");
String newFilePath = file.getParent() + "/" + newName;
FFmpegFrameRecorder recorder;
Frame frame = new Frame();
recorder = new FFmpegFrameRecorder(newFilePath, 250, 250);
recorder.setFrameRate(20);
recorder.setFormat("mp4");
recorder.setAudioChannels(2);
recorder.setPreset("veryfast");
try {
long startTime = System.currentTimeMillis();
System.out.println("" + startTime);
Log.d("Tempo", "" + startTime);
frameGrabber.start();
recorder.start();
while (true) {
try {
frame = frameGrabber.grabFrame();
if (frame == null) {
System.out.println("!!! Failed cvQueryFrame");
break;
}
recorder.record(frame);
} catch (Exception e) {
Log.e("converter", e.getMessage());
}
}
frameGrabber.stop();
frameGrabber.release();
recorder.stop();
recorder.release();
long stopTime = System.currentTimeMillis();
System.out.println(""+stopTime);
} catch (Exception e) {
e.printStackTrace();
}
return newFilePath;
}