如何使用 cygwin 和 android ndk r9c 在 Windows 上编译 ffmpeg-2.2.2

2024-01-28

有人编译成功了吗

Windows 上的 ffmpeg-2.2.2 与 cygwin 和 android ndkr9c ?

或者可以给我指一个最新的教程吗?

(http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/ http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/不适合我 我得到 Makefile:2: config.mak: 没有这样的文件... cygwin admin devel gnome 已完全安装并 make -v ok )

我需要将视频转换为图像(用于动态壁纸)...你知道更好的吗 方法还是 ffmpeg 最好?

thx


从罗马开始tutorial http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/。 以下更改适用于 Windows:您应该使用NDK make.exe,不是来自cygwin。所以,我简单地写了d:/dev/Android/ndk/prebuilt/windows-x86_64/bin/make.exe in my build_android.sh。由于某种奇怪的原因,我无法运行make clean- 但我现在只是选择忽略这个问题。

遵循教程后,不要忘记设置

TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64

另外,使用混合样式的路径,即d:/dev/whatever并不是cygwin style /cygdrive/d/dev/whatever。注意不要使用带空格的路径 - 也不用于ndk安装,也不用于ffmpeggit 克隆。

With FFmpeg 2.2, 您可以使用--target-os=android for ./configure,而不是破坏./configure文件中描述的step 2.

在我的机器上,我没有pr and od命令。我选择简单地伪造它们,写

echo 'cat $3' > ./pr
echo 'echo od' > ./od

这些不会破坏构建。

所以,我的构建过程如下:

git clean -d -f -x
./configure --enable-shared --disable-static --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avdevice --disable-doc --disable-symver --cross-prefix=d:/android-ndk-r9c/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64/bin/arm-linux-androideabi- --target-os=android --arch=arm --enable-cross-compile --sysroot=d:/android-ndk-r9c/platforms/android-9/arch-arm/ --extra-cflags="-Os -fpic"

编译确实会显示一些警告,但是.so文件全部生成。

为了启用 NEON,我使用了

--extra-cflags="-Os -fpic -marm -march=armv7-a -mfloat-abi=softfp -mfpu=neon"
--extra-ldflags="-Wl,--fix-cortex-a8"

Now, libavcodec.so could not be built anymore: too many files on the linker list. So, after it crashed, I launched the linker manually:

$ d:/Dev/Android/ndk/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64//bin/arm-linux-androideabi-gcc  -shared -Wl,-Bsymbolic -Wl,--version-script,libavcodec/libavcodec.ver -Llibavcodec -Llibavdevice -Llibavfilter -Llibavformat -Llibavresample -Llibavutil -Llibpostproc -Llibswscale -Llibswresample -Wl,--fix-cortex-a8  --sysroot=d:/Dev/Android/ndk/platforms/android-9/arch-arm/ -isysroot d:/Dev/Android/ndk/platforms/android-9/arch-arm/ -Wl,--as-needed -Wl,--warn-common -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample @libavcodec/libavcodec.list -lswresample -lavutil -lm -lz -pthread -o libavcodec/libavcodec.so.55
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 cygwin 和 android ndk r9c 在 Windows 上编译 ffmpeg-2.2.2 的相关文章

随机推荐