1. 程式人生 > >linphone原始碼下載及下載失敗解決方法

linphone原始碼下載及下載失敗解決方法

linphone是一款跨平臺的給予SIP協議網路電話開源框架支援Android、IOS、Windows等平臺。

一、linphone原始碼下載

原始碼有多平臺版本可供下載,官方網址

  • linphone-desktop:
    git clone git://git.linphone.org/linphone-desktop.git –recursive

  • linphone-iphone:
    git clone git://git.linphone.org/linphone-iphone.git –recursive

  • linphone-android:
    git clone git://git.linphone.org/linphone-android.git –recursive

  • linphone-windows10:
    git clone git://git.linphone.org/linphone-windows10.git –recursive

  • linphone-bb10:
    git clone git://git.linphone.org/linphone-bb10.git –recursive

但上面下載方法非常慢,而且可能中途下載失敗。
我的下載方式是番習習土嗇,大家都懂的。我的是用VPS+shadowsocks-Qt5+proxychains
關於VPS+shadowsocks-Qt5+proxychains的內容不是本文重點,所以不在這裡介紹,有興趣的可以自行搜尋。
但遇到的問題是即使是使用番習習土嗇,雖然會出現下載失敗。所以,下面以下載linphone-android原始碼為例介紹下下載失敗解決方法。
用代理下載:

proxychains git clone git://git.linphone.org/linphone-android.git --recursive

二、linphone原始碼下載失敗解決方法

1)下載失敗問題1之正常模組如ffmpeg:

這裡寫圖片描述
解決方法1:
依次執行下面命令,可繼續接著下載,類似斷點續傳的意思:

git submodule sync 
git submodule update --init --recursive

如果用的是VPS+shadowsocks-Qt5+proxychains,記得加下proxychains,加快下載速度。

proxychains
git submodule sync proxychains git submodule update --init --recursive

2)下載失敗問題2之特殊模組openh264:

這裡寫圖片描述
解決方法2:
下載openh264模組(https://github.com/cisco/openh264)git地址,與其他大部分模組git地址是linphone官方git://git.linphone.org/XXX.git的不同,用代理的方式無法下載。所以,此時,用上面解決方法1無論嘗試多少次結果都是下載失敗。因此,下載openh264模組不走代理,直接用git clone:

git clone https://github.com/cisco/openh264

3)下載失敗問題3之特殊模組mswebrtc:

這裡寫圖片描述
解決方法3:
模組mswebrtc有點特殊,因為用從git://git.linphone.org/mswebrtc.git地址下載submodules/mswebrtc後,會接著從git://git.linphone.org/webrtc.git地址下載其子模組submodules/mswebrtc/webrtc,但因為沒有這個子模組路徑,所以無法clone。
因為mswebrtc資料夾裡的webrtc內容下載失敗,但其他內容是全的,所以,只要把缺少的webrtc內容下載下來就好了。

git clone git://git.linphone.org/webrtc.git

或者走代理,速度快

proxychains git clone git://git.linphone.org/webrtc.git

4)下載失敗問題4之分模組下載:

下載失敗一般都是submodules中模組下載中斷,所以比較通用的解決方案是一個模組一個模組的下載,缺哪個下哪個。各模組的下載地址可以在.gitmodules檔案中找到。如模組ffmpeg下載失敗,則可以通過下面命令挽回:

git clone git://git.linphone.org/ffmpeg.git submodules/externals/ffmpeg --recursive

或者走代理,速度快

proxychains git clone git://git.linphone.org/ffmpeg.git submodules/externals/ffmpeg --recursive

下面是linphone-android中.gitmodules檔案內容:

[submodule “submodules/linphone”]
path = submodules/linphone
url = git://git.linphone.org/linphone.git
[submodule “submodules/externals/gsm”]
path = submodules/externals/gsm
url = git://git.linphone.org/gsm.git
[submodule “submodules/externals/speex”]
path = submodules/externals/speex
url = git://git.linphone.org/speex.git
[submodule “submodules/externals/ffmpeg”]
path = submodules/externals/ffmpeg
url = git://git.linphone.org/ffmpeg.git
ignore = dirty
[submodule “submodules/externals/x264”]
path = submodules/externals/x264
url = git://git.linphone.org/x264.git
ignore = dirty
[submodule “submodules/msx264”]
path = submodules/msx264
url = git://git.linphone.org/msx264.git
[submodule “submodules/externals/opencore-amr”]
path = submodules/externals/opencore-amr
url = git://git.linphone.org/opencore-amr.git
ignore = dirty
[submodule “submodules/msamr”]
path = submodules/msamr
url = git://git.linphone.org/msamr.git
[submodule “submodules/externals/libvpx”]
path = submodules/externals/libvpx
url = git://git.linphone.org/libvpx.git
ignore = dirty
[submodule “submodules/bzrtp”]
path = submodules/bzrtp
url = git://git.linphone.org/bzrtp.git
[submodule “submodules/externals/srtp”]
path = submodules/externals/srtp
url = git://git.linphone.org/srtp.git
[submodule “submodules/mssilk”]
path = submodules/mssilk
url = git://git.linphone.org/mssilk.git
[submodule “submodules/bcg729”]
path = submodules/bcg729
url = git://git.linphone.org/bcg729.git
[submodule “submodules/belle-sip”]
path = submodules/belle-sip
url = git://git.linphone.org/belle-sip.git
[submodule “submodules/externals/antlr3”]
path = submodules/externals/antlr3
url = git://git.linphone.org/antlr3.git
ignore = dirty
[submodule “submodules/externals/libxml2”]
path = submodules/externals/libxml2
url = git://git.gnome.org/libxml2.git
ignore = dirty
[submodule “submodules/externals/libupnp”]
path = submodules/externals/libupnp
url = git://git.linphone.org/libupnp.git
[submodule “submodules/externals/opus”]
path = submodules/externals/opus
url = git://git.linphone.org/opus.git
ignore = dirty
[submodule “submodules/mswebrtc”]
path = submodules/mswebrtc
url = git://git.linphone.org/mswebrtc.git
[submodule “submodules/msopenh264”]
path = submodules/msopenh264
url = git://git.linphone.org/msopenh264.git
[submodule “submodules/externals/openh264”]
path = submodules/externals/openh264
url = https://github.com/cisco/openh264
ignore = dirty
[submodule “submodules/mscodec2”]
path = submodules/mscodec2
url = git://git.linphone.org/mscodec2.git
[submodule “submodules/bctoolbox”]
path = submodules/bctoolbox
url = git://git.linphone.org/bctoolbox.git
[submodule “submodules/externals/mbedtls”]
path = submodules/externals/mbedtls
url = git://git.linphone.org/mbedtls.git
ignore = dirty
[submodule “submodules/cmake-builder”]
path = submodules/cmake-builder
url = git://git.linphone.org/linphone-cmake-builder.git
[submodule “submodules/externals/bv16-floatingpoint”]
path = submodules/externals/bv16-floatingpoint
url = git://git.linphone.org/bv16-floatingpoint.git
[submodule “submodules/belr”]
path = submodules/belr
url = git://git.linphone.org/belr.git
[submodule “submodules/belcard”]
path = submodules/belcard
url = git://git.linphone.org/belcard.git
[submodule “submodules/bcunit”]
path = submodules/bcunit
url = git://git.linphone.org/bcunit.git
[submodule “submodules/externals/vo-amrwbenc”]
path = submodules/externals/vo-amrwbenc
url = git://git.linphone.org/vo-amrwbenc.git
[submodule “submodules/externals/codec2”]
path = submodules/externals/codec2
url = git://git.linphone.org/codec2
[submodule “submodules/externals/libjpeg-turbo”]
path = submodules/externals/libjpeg-turbo
url = git://git.linphone.org/libjpeg-turbo.git
[submodule “submodules/mediastreamer2”]
path = submodules/mediastreamer2
url = git://git.linphone.org/mediastreamer2.git
[submodule “submodules/oRTP”]
path = submodules/oRTP
url = git://git.linphone.org/ortp.git
[submodule “submodules/bcmatroska2”]
path = submodules/bcmatroska2
url = git://git.linphone.org/bcmatroska2.git