文章目录
- 一、报错信息
- 二、解决方案
一、报错信息
编译 Android 版本的 ijkplayer 时 , 执行 init-android.sh 脚本 , 报如下错误 ;
代码语言:javascript复制root@octopus:~/ijkplayer/ijkplayer-android# ./init-android.sh
git version 2.17.1
== pull ffmpeg base ==
正克隆到 'extra/ffmpeg'...
remote: Enumerating objects: 539054, done.
remote: Total 539054 (delta 0), reused 0 (delta 0), pack-reused 539054
接收对象中: 100% (539054/539054), 203.52 MiB | 101.00 KiB/s, 完成.
处理 delta 中: 100% (418341/418341), 完成.
== pull ffmpeg fork armv5 ==
正克隆到 'android/contrib/ffmpeg-armv5'...
检查连接中: 539054, 完成.
对象计数中: 539054, 完成.
Delta compression using up to 4 threads.
压缩对象中: 100% (119455/119455), 完成.
写入对象中: 100% (539054/539054), 完成.
Total 539054 (delta 418341), reused 539054 (delta 418341)
切换到一个新分支 'ijkplayer'
/root/ijkplayer/ijkplayer-android
== pull ffmpeg fork armv7a ==
正克隆到 'android/contrib/ffmpeg-armv7a'...
检查连接中: 539054, 完成.
对象计数中: 539054, 完成.
Delta compression using up to 4 threads.
压缩对象中: 100% (119455/119455), 完成.
写入对象中: 100% (539054/539054), 完成.
Total 539054 (delta 418341), reused 539054 (delta 418341)
切换到一个新分支 'ijkplayer'
/root/ijkplayer/ijkplayer-android
== pull ffmpeg fork arm64 ==
正克隆到 'android/contrib/ffmpeg-arm64'...
检查连接中: 539054, 完成.
对象计数中: 539054, 完成.
Delta compression using up to 4 threads.
压缩对象中: 100% (119455/119455), 完成.
写入对象中: 100% (539054/539054), 完成.
Total 539054 (delta 418341), reused 539054 (delta 418341)
切换到一个新分支 'ijkplayer'
/root/ijkplayer/ijkplayer-android
== pull ffmpeg fork x86 ==
正克隆到 'android/contrib/ffmpeg-x86'...
fatal: unable to access 'https://github.com/Bilibili/FFmpeg.git/': gnutls_handshake() failed: The TLS connection was non-properly terminated.
tools/pull-repo-ref.sh: 11: cd: can't cd to android/contrib/ffmpeg-x86
对象计数中: 25071, 完成.
Delta compression using up to 4 threads.
压缩对象中: 100% (6484/6484), 完成.
写入对象中: 100% (25071/25071), 完成.
Total 25071 (delta 15968), reused 25071 (delta 15968)
./init-android.sh: 第 37 行: cd: android/contrib/ffmpeg-x86: 没有那个文件或目录
root@octopus:~/ijkplayer/ijkplayer-android#
二、解决方案
分析 init-android.sh 脚本内容 :
代码语言:javascript复制function pull_fork()
{
echo "== pull ffmpeg fork $1 =="
sh $TOOLS/pull-repo-ref.sh $IJK_FFMPEG_FORK android/contrib/ffmpeg-$1 ${IJK_FFMPEG_LOCAL_REPO}
cd android/contrib/ffmpeg-$1
git checkout ${IJK_FFMPEG_COMMIT} -B ijkplayer
cd -
}
pull_fork "armv5"
pull_fork "armv7a"
pull_fork "arm64"
pull_fork "x86"
pull_fork "x86_64"
上述 shell 脚本中的 pull_fork 方法 , 接收的参数主要是用于创建目录 , 指定目录名称 ;
前面的几个版本的 ffmpeg , 如 : " armv5 " , “armv7a” , “arm64” , “x86” , 下载检出代码都很成功 ,
但是最后的 “x86_64” 版本 , 出现
代码语言:javascript复制fatal: unable to access 'https://github.com/Bilibili/FFmpeg.git/':
gnutls_handshake() failed: The TLS connection was non-properly terminated.
问题 , 下载代码失败 , 导致很后面的内容报错 ;
重复执行上述 ./init-android.sh 脚本 , 直到
个代码全部克隆完毕 ;