100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 【错误记录】编译 ijkplayer 报错 (fatal error: libyuv.h: No such file or directory #include “libyuv.h“ )

【错误记录】编译 ijkplayer 报错 (fatal error: libyuv.h: No such file or directory #include “libyuv.h“ )

时间:2020-11-25 16:08:22

相关推荐

【错误记录】编译 ijkplayer 报错 (fatal error: libyuv.h: No such file or directory #include “libyuv.h“ )

文章目录

一、报错信息二、解决方案

参考 /bilibili/ijkplayer 项目的编译过程 ;

一、报错信息

在编译完 ffmpeg 之后 , 执行

./compile-ijk.sh all

命令 , 编译 ijkplayer ;

这也是最后一条命令 ;

执行后报错 :

root@octopus:~/ijkplayer/ijkplayer-android/android# ./compile-ijk.sh allprofiler build: NO[armeabi-v7a] Prebuilt : libijkffmpeg.so <= /root/ijkplayer/ijkplayer-android/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 <= ff_ffpipenode.c[armeabi-v7a] Compile thumb : ijkplayer <= ijkmeta.c/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/ff_ffplay.c: In function 'convert_image':/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/ff_ffplay.c:526:5: warning: 'avcodec_encode_video2' is deprecated (declared at /root/ijkplayer/ijkplayer-android/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);^/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/ff_ffplay.c: In function 'stream_close':/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/ff_ffplay.c:1041:9: warning: implicit declaration of function 'ijk_soundtouch_destroy' [-Wimplicit-function-declaration]ijk_soundtouch_destroy(is->handle);^/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/ff_ffplay.c: In function 'audio_decode_frame':/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/ff_ffplay.c:2589:13: warning: implicit declaration of function 'ijk_soundtouch_translate' [-Wimplicit-function-declaration]int ret_len = ijk_soundtouch_translate(is->handle, is->audio_new_buf, (float)(ffp->pf_playback_rate), (float)(1.0f/ffp->pf_playback_rate),^/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/ff_ffplay.c: In function 'stream_open':/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/ff_ffplay.c:3655:9: warning: implicit declaration of function 'ijk_soundtouch_create' [-Wimplicit-function-declaration]is->handle = ijk_soundtouch_create();^/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/ff_ffplay.c:3655:20: warning: assignment makes pointer from integer without a castis->handle = ijk_soundtouch_create();^[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/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/android/pipeline/ffpipenode_android_mediacodec_vdec.c: In function 'feed_input_buffer2':/root/ijkplayer/ijkplayer-android/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 /root/ijkplayer/ijkplayer-android/android/contrib/build/ffmpeg-armv7a/output/include/libavcodec/avcodec.h:4707) [-Wdeprecated-declarations]av_packet_split_side_data(&pkt);^/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/android/pipeline/ffpipenode_android_mediacodec_vdec.c:550:17: warning: 'avcodec_decode_video2' is deprecated (declared at /root/ijkplayer/ijkplayer-android/android/contrib/build/ffmpeg-armv7a/output/include/libavcodec/avcodec.h:4994) [-Wdeprecated-declarations]change_ret = avcodec_decode_video2(new_avctx, frame, &got_picture, avpkt);^/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/android/pipeline/ffpipenode_android_mediacodec_vdec.c: In function 'feed_input_buffer':/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/android/pipeline/ffpipenode_android_mediacodec_vdec.c:757:9: warning: 'av_packet_split_side_data' is deprecated (declared at /root/ijkplayer/ijkplayer-android/android/contrib/build/ffmpeg-armv7a/output/include/libavcodec/avcodec.h:4707) [-Wdeprecated-declarations]av_packet_split_side_data(&pkt);^/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijkplayer/android/pipeline/ffpipenode_android_mediacodec_vdec.c:797:17: warning: 'avcodec_decode_video2' is deprecated (declared at /root/ijkplayer/ijkplayer-android/android/contrib/build/ffmpeg-armv7a/output/include/libavcodec/avcodec.h:4994) [-Wdeprecated-declarations]change_ret = avcodec_decode_video2(new_avctx, frame, &got_picture, avpkt);^[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[armeabi-v7a] Compile thumb : ijkplayer <= ijkiomanager.c[armeabi-v7a] Compile thumb : ijkplayer <= ijkiocache.c[armeabi-v7a] Compile thumb : ijkplayer <= ijkioffio.c[armeabi-v7a] Compile thumb : ijkplayer <= ijkioandroidio.c[armeabi-v7a] Compile thumb : ijkplayer <= ijkioprotocol.c[armeabi-v7a] Compile thumb : ijkplayer <= ijkioapplication.c[armeabi-v7a] Compile thumb : ijkplayer <= ijkiourlhook.c[armeabi-v7a] Compile thumb : ijkplayer <= ijkasync.c[armeabi-v7a] Compile thumb : ijkplayer <= ijkurlhook.c[armeabi-v7a] Compile thumb : ijkplayer <= ijklongurl.c[armeabi-v7a] Compile thumb : ijkplayer <= ijksegment.c[armeabi-v7a] Compile thumb : ijkplayer <= ijkdict.c[armeabi-v7a] Compile thumb : ijkplayer <= ijkutils.c[armeabi-v7a] Compile thumb : ijkplayer <= ijkthreadpool.c[armeabi-v7a] Compile thumb : ijkplayer <= ijktree.c[armeabi-v7a] Compile thumb : ijkplayer <= ijkfifo.c[armeabi-v7a] Compile++ thumb: ijkplayer <= ijkstl.cppcc1plus: warning: command line option '-std=c99' is valid for C/ObjC but not for C++[armeabi-v7a] Compile thumb : ijksdl <= ijksdl_aout.c[armeabi-v7a] Compile thumb : ijksdl <= ijksdl_audio.c[armeabi-v7a] Compile thumb : ijksdl <= ijksdl_egl.c[armeabi-v7a] Compile thumb : ijksdl <= ijksdl_error.c[armeabi-v7a] Compile thumb : ijksdl <= ijksdl_mutex.c[armeabi-v7a] Compile thumb : ijksdl <= ijksdl_stdinc.c[armeabi-v7a] Compile thumb : ijksdl <= ijksdl_thread.c[armeabi-v7a] Compile thumb : ijksdl <= ijksdl_timer.c[armeabi-v7a] Compile thumb : ijksdl <= ijksdl_vout.c[armeabi-v7a] Compile thumb : ijksdl <= ijksdl_extra_log.c[armeabi-v7a] Compile thumb : ijksdl <= color.c[armeabi-v7a] Compile thumb : ijksdl <= common.c[armeabi-v7a] Compile thumb : ijksdl <= renderer.c[armeabi-v7a] Compile thumb : ijksdl <= renderer_rgb.c[armeabi-v7a] Compile thumb : ijksdl <= renderer_yuv420p.c[armeabi-v7a] Compile thumb : ijksdl <= renderer_yuv444p10le.c[armeabi-v7a] Compile thumb : ijksdl <= shader.c[armeabi-v7a] Compile thumb : ijksdl <= rgb.fsh.c[armeabi-v7a] Compile thumb : ijksdl <= yuv420p.fsh.c[armeabi-v7a] Compile thumb : ijksdl <= yuv444p10le.fsh.c[armeabi-v7a] Compile thumb : ijksdl <= mvp.vsh.c[armeabi-v7a] Compile thumb : ijksdl <= ijksdl_vout_dummy.c[armeabi-v7a] Compile thumb : ijksdl <= ijksdl_vout_overlay_ffmpeg.c[armeabi-v7a] Compile thumb : ijksdl <= image_convert.c[armeabi-v7a] Compile thumb : ijksdl <= android_audiotrack.c/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/jni/ijkmedia/ijksdl/ffmpeg/abi_all/image_convert.c:26:20: fatal error: libyuv.h: No such file or directory#include "libyuv.h"^compilation terminated.make: *** [/root/ijkplayer/ijkplayer-android/android/ijkplayer/ijkplayer-armv7a/src/main/obj/local/armeabi-v7a/objs/ijksdl/ffmpeg/abi_all/image_convert.o] Error 1make: *** Waiting for unfinished jobs..../root/ijkplayer/ijkplayer-android/androidprofiler build: NO

搜索整个目录 , 确实没有 “libyuv.h” 文件 ;

二、解决方案

在根目录下 , 有一个 init-android-libyuv.sh 脚本 ,

执行该 init-android-libyuv.sh 脚本 , 就可以自动下载并安装 libyuv;

在 ijkplayer-android 目录中 , 执行

./init-android-soundtouch.sh

命令 , 下载 libyuv 依赖库 , 之后编译 ijkplayer 需要用到 ;

执行过程 :

root@octopus:~/ijkplayer/ijkplayer-android# root@octopus:~/ijkplayer/ijkplayer-android# ./init-android-libyuv.sh == pull libyuv base ==正克隆到 'extra/libyuv'...remote: Enumerating objects: 12767, done.remote: Total 12767 (delta 0), reused 0 (delta 0), pack-reused 12767接收对象中: 100% (12767/12767), 2.60 MiB | 839.00 KiB/s, 完成.处理 delta 中: 100% (10540/10540), 完成.== pull libyuv fork ==正克隆到 'ijkmedia/ijkyuv'...对象计数中: 12767, 完成.Delta compression using up to 4 threads.压缩对象中: 100% (2210/2210), 完成.写入对象中: 100% (12767/12767), 完成.Total 12767 (delta 10540), reused 12767 (delta 10540)分支 'ijk-r0.2.1-dev' 设置为跟踪来自 'origin' 的远程分支 'ijk-r0.2.1-dev'。切换到一个新分支 'ijk-r0.2.1-dev'/root/ijkplayer/ijkplayer-androidroot@octopus:~/ijkplayer/ijkplayer-android# root@octopus:~/ijkplayer/ijkplayer-android#

执行完毕后 , 在 ijkplayer-android/ijkmedia 目录中就可以看到 ijkyuv 目录 ;

再次执行 , 就不会报上述错误 ;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。