在 Eclipse 中导入项目的一部分

Posted

技术标签:

【中文标题】在 Eclipse 中导入项目的一部分【英文标题】:Importing a part of a project in Eclipse 【发布时间】:2015-04-27 23:17:12 【问题描述】:

在 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);
                    

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

【问题讨论】:

"有没有办法导入项目的一部分(可能是一个模块)?" -- 这对项目的作者来说是个好问题。 【参考方案1】:

您并没有真正导入项目 - 您使用的是名为 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 这样的独立视频编码器可能更小,但在它可以读取和写入的格式/编解码器方面功能有限。

【讨论】:

【参考方案2】:

Eclipse 可以选择将项目、文件、src、包导入现有项目或新项目。 您可以导入文件,右键单击 Proyect > Import > General > Archive File。 或文件系统,如果是 src 或包。也许这可以帮助你。

【讨论】:

以上是关于在 Eclipse 中导入项目的一部分的主要内容,如果未能解决你的问题,请参考以下文章

idea中导入Eclipse项目及报错处理方法

IDEA中导入eclipse项目会受到.classpath和.project的影响

怎么在eclipse中导入gson和dom4

如何往eclipse中导入maven项目

如何在intellij IDEA中导入ECLIPSE的android项目

向eclipse中导入一个项目,最后变这样了,全都是红色波浪线提示错误