繁体   English   中英

在Eclipse中导入项目的一部分

[英]Importing a part of a project in Eclipse

在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 Visual编码器,因此理论上您可以坚持使用它。 请记住,MPEG-4 Visual不如H.264高效,并且会以相同的比特率生成相同质量或更低质量的更大文件。

但这取决于你的建造方式。 如果除了libx264之外你真的没有任何其他功能,并且你的版本很大,那么如果你想保留ffmpeg,你就无法做到这一点。 像x264这样的独立视频编码器可能更小,但在可读写的格式/编解码器方面功能有限。

Eclipse可以选择将proyects,files,src,packages导入现有的proyect或新的proyect。 您可以导入文件,右键单击Proyect>导入>常规>存档文件。 或文件系统if是src或包。 也许这可以帮到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM