当前位置:网站首页>Ijkplayer compilation process record
Ijkplayer compilation process record
2022-06-13 06:27:00 【That's right】
Environmental Science : ubuntu 20 - x64
Source code : ijkPlayer and ffmpeg Source code from github Transferred to the gitee On .
First step Install and develop common tools and libraries
Tools
install git, make, yasm, curl, wget
Library content .
apt-get install libncurses5 libncurses5-dev openssl
android development environment
gradle、 java-11、android_sdk、android_ndk
The second step from gitee.com Cloned ijkPlayer Source code , modify init-android.sh Medium github.com Download address . as follows :
IJK_FFMPEG_UPSTREAM=https://gitee.com/ljblqtechcom/FFmpeg.git
IJK_FFMPEG_FORK=https://gitee.com/ljblqtechcom/FFmpeg.git
IJK_FFMPEG_COMMIT=ff3.4--ijk0.8.7--20180103--001
IJK_FFMPEG_LOCAL_REPO=extra/ffmpeg
And then execute ./init-android.sh It is normal to pull the source code , Otherwise, the general report Gnutls Error of , I tried to recompile git-2.7 Source code , It's not solved .
Use this method to pull the source code okay.
The third step compile 、 and ndk Version selection
I'm using android-ndk-r14b-linux-x86_64.zip edition , I have used several versions and failed to compile .
Download address https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip
Baidu SkyDrive :
link :https://pan.baidu.com/s/1IuaSirZ4FoGEdkFVeJVykg
Extraction code :37mq
– From Baidu network disk super member V1 The share of
3.1 Export environment variables
export ANDROID_SDK=~/Android/Sdk
export ANDROID_NDK=~/Android/Sdk/ndk/android-ndk-r14b
export PATH=$PATH:$ANDROID_NDK:$ANDROID_SDK:$ANDROID_SDK/platform-tools
3.2 modify compile_ffmpeg.sh and compile_ijk.sh Adaptation platform .
Put these two scripts in the adaptation platform armv5 Removed , as follows :
#ACT_ABI_64="armv5 armv7a arm64 x86 x86_64"
ACT_ABI_64="armv7a arm64 x86 x86_64"
The two files are modified in the same way .
3.3 compile ffmpeg Dependency library and ijkplayer library
[email protected]:~/ljbPlayer/ijkplayer/android/contrib$ ./compile-ffmpeg.sh
====================
[*] check archs
====================
FF_ALL_ARCHS = armv7a arm64 x86 x86_64
FF_ACT_ARCHS = armv7a
====================
[*] check env armv7a
====================
FF_ARCH=armv7a
FF_BUILD_OPT=
--------------------
[*] make NDK standalone toolchain
--------------------
build on Linux x86_64
ANDROID_NDK=/home/robot/Android/Sdk/ndk/android-ndk-r14b
IJK_NDK_REL=14.1.3816874
NDKr14.1.3816874 detected
--------------------
[*] check ffmpeg env
--------------------
--------------------
[*] configurate ffmpeg
--------------------
reuse configure
--------------------
[*] compile ffmpeg
--------------------
INSTALL doc/examples/avio_dir_cmd.c
INSTALL doc/examples/avio_reading.c
INSTALL doc/examples/decode_audio.c
INSTALL doc/examples/decode_video.c
...... Omit part
INSTALL libavutil/libavutil.pc
--------------------
[*] link ffmpeg
--------------------
-Wl,--fix-cortex-a8
link compat/*.o
link libavcodec/*.o
link libavcodec/arm/*.o
link libavfilter/*.o
link libavformat/*.o
link libavutil/*.o
link libavutil/arm/*.o
link libswresample/*.o
link libswresample/arm/*.o
link libswscale/*.o
link libswscale/arm/*.o
--------------------
[*] create files for shared ffmpeg
--------------------
compile ffmpeg Dynamic library succeeded .
[email protected]:~/ljbPlayer/ijkplayer/android$ ./compile-ijk.sh all
profiler build: NO
[armeabi-v7a] Prebuilt : libijkffmpeg.so <= /home/robot/ljbPlayer/ijkplayer/android/contrib/build/ffmpeg-armv7a/output/
[armeabi-v7a] Compile thumb : ijkplayer <= ff_cmdutils.c
[armeabi-v7a] Compile thumb : ijkplayer <= ff_ffplay.c
[armeabi-v7a] Compile thumb : ijkplayer <= ff_ffpipeline.c
[armeabi-v7a] Compile thumb : ijkplayer <= ijkmeta.c
[armeabi-v7a] Compile thumb : ijkplayer <= ijkplayer.c
[armeabi-v7a] Compile thumb : ijkplayer <= ffpipeline_ffplay.c
[armeabi-v7a] Compile thumb : ijkplayer <= ffpipenode_ffplay_vdec.c
[armeabi-v7a] Compile thumb : ijkplayer <= ffmpeg_api_jni.c
[armeabi-v7a] Compile thumb : ijkplayer <= ijkplayer_android.c
[armeabi-v7a] Compile thumb : ijkplayer <= ijkplayer_jni.c
[armeabi-v7a] Compile thumb : ijkplayer <= ffpipeline_android.c
[armeabi-v7a] Compile thumb : ijkplayer <= ffpipenode_android_mediacodec_vdec.c
[armeabi-v7a] Compile thumb : ijkplayer <= allformats.c
[armeabi-v7a] Compile thumb : ijkplayer <= ijklivehook.c
[armeabi-v7a] Compile thumb : ijkplayer <= ijkmediadatasource.c
[armeabi-v7a] Compile thumb : ijkplayer <= ijkio.c
/home/robot/ljbPlayer/ijkplayer/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/ff_ffplay.c: In function 'convert_image':
/home/robot/ljbPlayer/ijkplayer/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/ff_ffplay.c:526:5: warning: 'avcodec_encode_video2' is deprecated (declared at /home/robot/ljbPlayer/ijkplayer/android/contrib/build/ffmpeg-armv7a/output/include/libavcodec/avcodec.h:5509) [-Wdeprecated-declarations]
ret = avcodec_encode_video2(img_info->frame_img_codec_ctx, &avpkt, dst_frame, &got_packet);
^
/home/robot/ljbPlayer/ijkplayer/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/android/pipeline/ffpipenode_android_mediacodec_vdec.c: In function 'feed_input_buffer2':
/home/robot/ljbPlayer/ijkplayer/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/android/pipeline/ffpipenode_android_mediacodec_vdec.c:509:9: warning: 'av_packet_split_side_data' is deprecated (declared at /home/robot/ljbPlayer/ijkplayer/android/contrib/build/ffmpeg-armv7a/output/include/libavcodec/avcodec.h:4707) [-Wdeprecated-declarations]
av_packet_split_side_data(&pkt);
....... Omit part
[armeabi-v7a] Compile thumb : ijksdl <= image_convert.c
[armeabi-v7a] Compile thumb : ijksdl <= android_nativewindow.c
[armeabi-v7a] Compile thumb : ijksdl <= ijksdl_vout_android_nativewindow.c
[armeabi-v7a] Compile thumb : ijksdl <= ijksdl_vout_android_surface.c
[armeabi-v7a] Compile thumb : ijksdl <= ijksdl_vout_overlay_android_mediacodec.c
[armeabi-v7a] Install : libijkffmpeg.so => libs/armeabi-v7a/libijkffmpeg.so
[armeabi-v7a] SharedLibrary : libijksdl.so
[armeabi-v7a] Install : libijksdl.so => libs/armeabi-v7a/libijksdl.so
[armeabi-v7a] SharedLibrary : libijkplayer.so
[armeabi-v7a] Install : libijkplayer.so => libs/armeabi-v7a/libijkplayer.so
/home/robot/ljbPlayer/ijkplayer/android
profiler build: NO
[arm64-v8a] Install : libijkffmpeg.so => libs/arm64-v8a/libijkffmpeg.so
[arm64-v8a] Install : libijkplayer.so => libs/arm64-v8a/libijkplayer.so
[arm64-v8a] Install : libijksdl.so => libs/arm64-v8a/libijksdl.so
/home/robot/ljbPlayer/ijkplayer/android
profiler build: NO
[x86] Install : libijkffmpeg.so => libs/x86/libijkffmpeg.so
[x86] Install : libijkplayer.so => libs/x86/libijkplayer.so
[x86] Install : libijksdl.so => libs/x86/libijksdl.so
/home/robot/ljbPlayer/ijkplayer/android
profiler build: NO
[x86_64] Install : libijkffmpeg.so => libs/x86_64/libijkffmpeg.so
[x86_64] Install : libijkplayer.so => libs/x86_64/libijkplayer.so
[x86_64] Install : libijksdl.so => libs/x86_64/libijksdl.so
/home/robot/ljbPlayer/ijkplayer/android
Compiling ijkplayer The whole process , Special attention should be paid to ndk edition , I use ndk14 edition . There are many pits in the higher version .
Next we will use ijkPlayer Write a support H264 Raw stream playback Demo.
边栏推荐
- Uniapp hides the scroll bar of scroll view
- 二分查找
- Echart rectangular tree diagram: simple implementation of rectangular tree diagram
- 端午安康,使用祝福话语生成词云吧
- 华为开发者认证与DevEco Studio编译器下载
- Commit specification
- Wechat applet (get location)
- App performance test: (I) startup time
- RN Metro packaging process and sentry code monitoring
- 推荐扩容工具,彻底解决C盘及其它磁盘空间不够的难题
猜你喜欢

Super model logo online design and production tool
![[solution] camunda deployment process should point to a running platform rest API](/img/ef/5b893e9c315c10db6c1db46b4c3f5a.jpg)
[solution] camunda deployment process should point to a running platform rest API

《MATLAB 神经网络43个案例分析》:第11章 连续Hopfield神经网络的优化——旅行商问题优化计算

【虚拟机】 VMware虚拟机占用空间过大解决

You should consider upgrading via

Echart柱状图:x轴显示value,y轴显示类别

After clicking the uniapp e-commerce H5 embedded applet, the page prompts "the page iframe does not support referencing non business domain names"

华为开发者认证与DevEco Studio编译器下载

c语言对文件相关的处理和应用

《MATLAB 神经网络43个案例分析》:第10章 离散Hopfield神经网络的分类——高校科研能力评价
随机推荐
Kotlin base generics
Not in the following list of legal domain names, wechat applet solution
ADB shell sendent debug input event
synchronized浅析
The jadx decompiler can decompile jars and apks
Echart line chart: when multiple lines have the same name, the legend is still displayed
Recent problems
【Kernel】驱动编译的两种方式:编译成模块、编译进内核(使用杂项设备驱动模板)
[solution] camunda deployment process should point to a running platform rest API
SSM framework integration -- > simple background management
High burst solution 2
本地文件秒搜工具 Everything
After clicking the uniapp e-commerce H5 embedded applet, the page prompts "the page iframe does not support referencing non business domain names"
Wechat applet uploads pictures (preview deletion limits the size and number of pictures)
Huawei developer certification and deveco studio compiler Download
The boys x pubgmobile linkage is coming! Check out the latest game posters
[FAQs for novices on the road] about technology management
MFS explanation (VI) -- MFS chunk server installation and configuration
Common websites and tools
Kotlin foundation extension