ffplay2 android 版正式公布

项目地址:https://github.com/DeYangLiu/AndroidPlayer/

下载链接:

看点: 

支持软键盘输入和历史记录。使用了EditText和内部存储。 这里考虑了历史记录的更新: 总共8条记录,新的放在后面,最前面被挤出,反复的忽略。

用ListView实现的简易文件浏览器。

用intent启动还有一个Activity。

ndk 调试。

移植ffmpeg 2.5和sdl2 到android的各种坑。


同一时候编译多个库
====
ln -s /mnt/OpenSource/SDL_image jni/
ln -s /mnt/OpenSource/SDL_image/showimage.c jni/src/
gvim jni/src/Android.mk
 LOCAL_SRC_FILES = ... showimage.c
 LOCAL_SHARED_LIBRARIES += SDL2_image

測试 cannot locate symbol atof
忘了SDLActivity.java里面加上SDL2_image
然后又出现cannot locate symbol "signal"

Q. how to judge android phone 32 or 64bit?
A: adb pull /system/bin/dalvikvm && file dalvikvm
当然我的手机是32bit的啦,网上有人须要用32bit的ndk的,我试了也没用。
迷茫中,下午又搜了一番,遇到[1]之后,事情出现转机。

ffmpeg4android
====
[1]下载下来不知道从哪里開始,
细致读了里面的shell脚本,明确了要下载ffmpeg源代码,
然后buildtest.sh。[1]的最初计划是和android source
tree以下编译的,可是在内地下载不了, 而u pelya 改造成能够单独编译。 
我一開始试最新的ffmpeg2.5,失败了。看到脚本里面仅仅支持到1.1,于是下载了[2]。
makefiles以下三个文件:
 Android_configure.mk -- 设置配置參数字符串
 Android_.mk -- libavutils libavcodec 等子文件夹都用到的编译參数。
 Android.mk -- 包括上面两个文件; 跟据config.mak设置APP_MODULES编译參数。
然后把ffmpeg源代码解压到$ffmpegdir,把makefiles以下的文件复制过去。
生成两个文件:
 jni/Android.mk
 jni/Application.mk
ln -s $ffmpegdir jni/ffmpeg
然后就能够编啦:
ndk-build -j8 2>&1 | tee build.log

由于SDL2本身自带一个mk,直接
ln -s $sdldir jni/SDL
在jni/Application.mk加上SDL2。

剩下还需一个jni測试入口:
cp -rf android-ndk-r10d/samples/hello-jni/jni/src jni/adapter
UI入口:
cp -rf android-ndk-r10d/samples/two-libs/src src
项目文件:
cp -rf android-ndk-r10d/samples/two-libs/{res, AndroidManifest.xml  default.properties}


git代码已使用静态链接。感谢[1]的指引。

ref

====
[1] git://git.code.sf.net/u/pelya/ffmpeg4android 
[2] http://ffmpeg.org/releases/ffmpeg-1.1.tar.bz2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译 Android 本的 FFmpegffplay 需要进行以下步骤: 1. 下载 FFmpeg 源代码,可以从官网或者 GitHub 上获取。 2. 安装 NDK,可以从 Android 官网下载 NDK。 3. 配置环境变量,将 NDK 的路径加入到 PATH 中。 4. 进入 FFmpeg 的源代码目录,使用以下命令进行配置: ``` ./configure \ --target-os=android \ --enable-cross-compile \ --enable-runtime-cpudetect \ --disable-asm \ --arch=arm \ --cc=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc \ --cross-prefix=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- \ --disable-stripping \ --nm=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-nm \ --sysroot=$NDK/platforms/android-14/arch-arm \ --enable-gpl \ --enable-shared \ --disable-static \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-doc \ --disable-symver \ --enable-small \ --enable-protocol=file \ --disable-encoders \ --disable-muxers \ --enable-demuxer=rtsp \ --disable-parsers \ --disable-bsfs \ --disable-protocols \ --disable-indevs \ --disable-outdevs \ --disable-filters \ --disable-postproc \ --disable-avdevice \ --disable-avfilter \ --disable-avformat \ --disable-swscale \ --disable-network \ --disable-iconv \ --disable-bzlib \ --disable-zlib \ --disable-openssl \ --disable-x265 \ --disable-x264 \ --disable-libxcb \ --disable-libxcb-shm \ --disable-libxcb-xfixes \ --disable-libxcb-shape \ --disable-securetransport \ --disable-videotoolbox \ --disable-audiotoolbox \ --disable-appkit \ --disable-coreimage \ --disable-cuda \ --disable-cuvid \ --disable-nvenc \ --disable-vaapi \ --disable-vdpau \ --disable-egl \ --disable-glx \ --disable-xlib \ --disable-mmal \ --disable-omx \ --disable-sndio \ --disable-oss \ --disable-alsa \ --disable-pulse \ --disable-jack \ --disable-sdl2 \ --disable-xlib \ --disable-libxcb \ --disable-vaapi \ --disable-vdpau \ --disable-lzma \ --disable-iconv \ --disable-libopenjpeg \ --disable-libwebp \ --disable-libzimg \ --disable-libkvazaar \ --disable-libopenh264 \ --disable-libsnappy \ --disable-libsoxr \ --disable-libtwolame \ --disable-libwavpack \ --disable-libxml2 \ --disable-libzmq \ --disable-libzvbi \ --disable-lzma \ --disable-sdl2 \ --disable-xlib \ --disable-libxcb \ --disable-vaapi \ --disable-vdpau \ --disable-libbluray \ --disable-libbs2b \ --disable-libcaca \ --disable-libcdio \ --disable-libdc1394 \ --disable-libfdk-aac \ --disable-libflite \ --disable-libfontconfig \ --disable-libfreetype \ --disable-libfribidi \ --disable-libgme \ --disable-libgsm \ --disable-libiec61883 \ --disable-libilbc \ --disable-libkvazaar \ --disable-libmodplug \ --disable-libmp3lame \ --disable-libopencore-amrnb \ --disable-libopencore-amrwb \ --disable-libopencv \ --disable-libopenh264 \ --disable-libopenjpeg \ --disable-libopus \ --disable-libpulse \ --disable-librtmp \ --disable-librubberband \ --disable-libshine \ --disable-libsmbclient \ --disable-libsnappy \ --disable-libsoxr \ --disable-libspeex \ --disable-libssh \ --disable-libtesseract \ --disable-libtheora \ --disable-libtwolame \ --disable-libv4l2 \ --disable-libvo-amrwbenc \ --disable-libvorbis \ --disable-libvpx \ --disable-libwavpack \ --disable-libwebp \ --disable-libx264 \ --disable-libx265 \ --disable-libxavs \ --disable-libxcb \ --disable-libxcb-shm \ --disable-libxcb-xfixes \ --disable-libxcb-shape \ --disable-libxvid \ --disable-libzimg \ --disable-libzmq \ --disable-libzvbi \ --disable-lzma \ --disable-sdl2 \ --disable-xlib \ --disable-libxcb \ --disable-vaapi \ --disable-vdpau \ --prefix=$(pwd)/android_build ``` 5. 使用 make 命令进行编译: ``` make -j4 ``` 其中 j4 表示使用 4 个线程进行编译,可以根据自己的 CPU 核数进行设置。 6. 编译完成后,使用以下命令进行安装: ``` make install ``` 7. 编译 ffplay,进入 FFmpeg 源代码目录,使用以下命令进行编译: ``` ./configure \ --enable-jni \ --enable-mediacodec \ --enable-decoder=h264 \ --disable-ffprobe \ --disable-ffserver \ --disable-avdevice \ --disable-avfilter \ --disable-avformat \ --disable-swresample \ --disable-swscale \ --disable-postproc \ --disable-network \ --disable-iconv \ --disable-bzlib \ --disable-zlib \ --disable-openssl \ --disable-x265 \ --disable-x264 \ --disable-libxcb \ --disable-libxcb-shm \ --disable-libxcb-xfixes \ --disable-libxcb-shape \ --disable-securetransport \ --disable-videotoolbox \ --disable-audiotoolbox \ --disable-appkit \ --disable-coreimage \ --disable-cuda \ --disable-cuvid \ --disable-nvenc \ --disable-vaapi \ --disable-vdpau \ --disable-egl \ --disable-glx \ --disable-xlib \ --disable-mmal \ --disable-omx \ --disable-sndio \ --disable-oss \ --disable-alsa \ --disable-pulse \ --disable-jack \ --disable-sdl2 \ --disable-xlib \ --disable-libxcb \ --disable-vaapi \ --disable-vdpau \ --disable-lzma \ --disable-iconv \ --disable-libopenjpeg \ --disable-libwebp \ --disable-libzimg \ --disable-libkvazaar \ --disable-libopenh264 \ --disable-libsnappy \ --disable-libsoxr \ --disable-libtwolame \ --disable-libwavpack \ --disable-libxml2 \ --disable-libzmq \ --disable-libzvbi \ --disable-lzma \ --disable-sdl2 \ --disable-xlib \ --disable-libxcb \ --disable-vaapi \ --disable-vdpau \ --disable-libbluray \ --disable-libbs2b \ --disable-libcaca \ --disable-libcdio \ --disable-libdc1394 \ --disable-libfdk-aac \ --disable-libflite \ --disable-libfontconfig \ --disable-libfreetype \ --disable-libfribidi \ --disable-libgme \ --disable-libgsm \ --disable-libiec61883 \ --disable-libilbc \ --disable-libkvazaar \ --disable-libmodplug \ --disable-libmp3lame \ --disable-libopencore-amrnb \ --disable-libopencore-amrwb \ --disable-libopencv \ --disable-libopenh264 \ --disable-libopenjpeg \ --disable-libopus \ --disable-libpulse \ --disable-librtmp \ --disable-librubberband \ --disable-libshine \ --disable-libsmbclient \ --disable-libsnappy \ --disable-libsoxr \ --disable-libspeex \ --disable-libssh \ --disable-libtesseract \ --disable-libtheora \ --disable-libtwolame \ --disable-libv4l2 \ --disable-libvo-amrwbenc \ --disable-libvorbis \ --disable-libvpx \ --disable-libwavpack \ --disable-libwebp \ --disable-libx264 \ --disable-libx265 \ --disable-libxavs \ --disable-libxcb \ --disable-libxcb-shm \ --disable-libxcb-xfixes \ --disable-libxcb-shape \ --disable-libxvid \ --disable-libzimg \ --disable-libzmq \ --disable-libzvbi \ --disable-lzma \ --disable-sdl2 \ --disable-xlib \ --disable-libxcb \ --disable-vaapi \ --disable-vdpau \ --prefix=$(pwd)/android_build ``` 8. 使用 make 命令进行编译: ``` make -j4 ``` 9. 编译完成后,使用以下命令进行安装: ``` make install ``` 10. 编译完成后,在 android_build/bin 目录下会生成 ffplay 可执行文件。 以上是编译 Android 本的 FFmpegffplay 的步骤,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值