gpt4 book ai didi

java - 在 Eclipse 中导入项目的一部分

转载 作者:行者123 更新时间:2023-11-29 05:10:35 24 4
gpt4 key购买 nike

在 Eclipse 上,我将 FFmpeg 作为一个项目导入,以减少我的 android 应用程序的选定视频大小。但是我的 .apk 大小从 2MB 增加到 24MB。

此项目包含许多用于视频编辑的额外属性。但是我只使用一个命令行来降低我的视频分辨率。我添加的代码:

LoadJNI vk = new LoadJNI();
try {
String workFolder = getApplicationContext()
.getFilesDir().getAbsolutePath();

String[] complexCommand = {
"ffmpeg",
"-y",
"-i",
"/storage/emulated/0/DCIM/Camera/20150224_125355.mp4",
"-strict", "experimental", "-s", "160x120",
"-r", "25", "-vcodec", "mpeg4", "-b", "150k",
"-ab", "48000", "-ac", "2", "-ar", "22050",
"/storage/emulated/0/TempFolder/out.mp4" };
vk.run(complexCommand, workFolder,
getApplicationContext());

Log.i("test", "ffmpeg4android finished successfully");
} catch (Throwable e) {
Log.e("test", "vk run exception.", e);
}

总而言之,有没有办法导入项目的一部分(也许作为一个模块)?还是我必须找到另一种方法来减小我的视频大小?

最佳答案

您并没有真正导入一个项目——您使用的是一个名为 ffmpeg 的二进制文件,它是一个可执行文件,包含静态编译到一个包中的所有第三方库。您无法将此文件缩小。您只能在启用较少库的情况下编译它。

当您不带任何参数运行 ffmpeg 二进制文件时,它会显示编译前设置的各种 --enable 选项。例如,我的 ffmpeg 几乎包含所有内容:

configuration: --prefix=/usr/local/Cellar/ffmpeg/2.6 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc --enable-libxvid --enable-libfontconfig --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-librtmp --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfaac --enable-libass --enable-ffplay --enable-libspeex --enable-libschroedinger --enable-libfdk-aac --enable-openssl --enable-libopus --enable-frei0r --enable-libcaca --enable-libsoxr --enable-libquvi --enable-libvidstab --enable-libx265 --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags='-I/usr/local/Cellar/openjpeg/1.5.1_1/include/openjpeg-1.5 ' --enable-nonfree --enable-vda

例如,如果您有 --enable-libfaac,您的 ffmpeg 包含一个 FAAC 音频编码器,这不是绝对必要的,并且会增加二进制文件的大小。您正在使用从 github.com/faywong/ffmpeg4android 编译的任何二进制文件确实如此——因此您需要更改 ffmpeg4android 构建 ffmpeg 二进制文件的方式以包含更少的内容。

如果您计划使用 AAC 音频编码 H.264 视频,则实际有用的 ffmpeg 的绝对最小构建将仅包括 libx264。为此,您必须使用 --enable-libx264 配置 ffmpeg。但是在你的问题中,你的命令有 mpeg4 作为编解码器,这是 ffmpeg 中内置的 MPEG-4 视觉编码器,所以理论上你可以坚持这样做。请记住,MPEG-4 Visual 的效率不如 H.264,并且会以相同的质量生成更大的文件,或者以相同的比特率生成更低质量的文件。

但这取决于您的构建方式。如果除了 libx264 之外你真的没有启用任何东西,并且你的构建那么大,那么如果你想保留 ffmpeg,你无能为力。像 x264 这样的独立视频编码器可能更小,但在它可以读取和写入的格式/编解码器方面的能力有限。

关于java - 在 Eclipse 中导入项目的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28727887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com