Before you start
Depot Tools
Linux (Ubuntu/Debian)
$ ./build/install-build-deps.sh
Although the install-build-deps.sh script is the recommended method, it will install much more than you need. Here is a (hopefully complete) minimal list of packages to install (sudo apt-get install...):
Windows
- Visual Studio 2008 or newer, with all service packs installed.
- Using the free version Visual C++ Express does not work out of the box, but we think it should be possible by installing WDK, see Chromium's instructions for this (Additional Software, step 6). If you make it work, please let us know at the mailing list discuss-webrtc, and we will update this documentation.
- Microsoft SDK 7.1 Older versions might work as well, as long as they support Vista specific features (building on XP should be fine).
- Ensure the library and include directories for the SDK are set in MSVC|Tools|Options|Projects and Solutions|VC++ Directories (e.g. C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib).
- Microsoft DirectX SDK (June 2010) (others might work as well). Please check that this SDK gets installed like this:
- Verify MSVC|Tools|Options|Projects and Solutions|VC++ Directories has Include:
$(DXSDK_DIR)include
and Lib:$(DXSDK_DIR)lib\x86
. - Make sure the DirectX include directories appear first in the search path, otherwise you may get build errors.
- Verify MSVC|Tools|Options|Projects and Solutions|VC++ Directories has Include:
- Python
- For Visual 2010 some extra steps are needed:
- Install VS2010 SP1.
- In case VS2010 is not detected automatically by GYP or in case you have multiple versions of Visual Studio in your build machine, then to generate the .sln/.vcxproj, you need to set an environment variable: GYP_MSVS_VERSION=2010
- For test programs that use MFC, make sure that the solution links to the MFC libraries statically. This gets automatically set in VS2005, but there is a bug in solution file generator for VS2010.
OS X
- Install the Android NDK according to these instructions.
- Install the Android SDK according to these instructions. Note that there is a step which will require you to use a GUI. If you’re on a headless machine you can download all platforms by runningandroid update sdk --no-ui instead ofandroid.
# For clank build, set the ANDROID_SDK_ROOT and ANDROID_NDK_ROOT to
# the path you want to install them.
# Note: the directory name has to be 'android-sdk-linux',
# otherwise the install script wouldn't work.
export ANDROID_SDK_ROOT=/usr/local/google/bin/android-sdk-linux
# Note: the directory name has to be 'android-ndk-r7', otherwise the
# install script wouldn't work
export ANDROID_NDK_ROOT=/usr/local/google/bin/android-ndk-r7
Getting the code and building
$ gclient sync --force
$ gclient runhooks --force
GYP_MSVS_VERSION=<version>
before runhooks, or manually run the gyp command triggered by runhooks. From the trunk/ directory:
$ build/gyp_chromium --depth=. -G msvs_version=<version> webrtc.gyp
Sample Application
$ cd trunk
$ make peerconnection_server
$ make peerconnection_client
Use Visual Studio to open and build the trunk/webrtc.sln solution file. This will build both
peerconnection_server.exe
and
peerconnection_client.exe
.
On Mac:
$ cd trunk
$ open webrtc.xcodeproj/
This will open XCode. Build the
peerconnection_server
target using XCode.
It is also possible to use regular Make to build. To do this, set the environment variable
GYP_GENERATORS
to
make
(in bash, type
GYP_GENERATORS=make
) and then run
gclient sync
. With this, you can for instance import the project into Eclipse as a makefile project and use that instead of XCode.
How to Run
xcodebuild/Debug/
on Mac,
out/Debug/
on Linux and
build/Debug/
on Windows.
peerconnection_server
application. This is a simple web server that's built to exchange signaling messages between instances of
peerconnection_client
(Note: the client is Windows only).
peerconnection_client
running. Enabling loopback causes the client to set up a video/voice session with itself.
Server listening on port 8888
peerconnection_client
. This is a client application that uses the PeerConnection C++ API for setting up a video+voice session with a remote peer. The application uses the server to send signaling messages (messages generated by the API) between the peers.
- Connect to server. Here you specify the machine that is currently running the server. Hit "Connect" or press return.
- Select peer. When you've connected with the server, you'll see a list of other
peerconnection_client
instances (orserver_test.html
) that are currently connected. To connect with a peer, double click or select+press return. This will start the local capture components (mic+webcam) as well as exchange signaling messages with the peer via the server. You can verify this via the server console.
- Video chat. When the signalling messages have been exchanged, the PeerConnection API creates channels for the voice and video streams and you will see the remote video in full window.
On Mac, Linux
Open trunk/hird_party/libjingle/source/talk/examples/peerconnection/server/server_test.html
. Click connect. Observe that the peerconnection_server announces your connection. Now you can open one more tab with the page, connect that too (with a different name) and send messages between the peers.
Building for Android (on Linux)
gclient config https://webrtc.googlecode.com/svn/trunk
gclient sync
2. Generate makefiles:
source ./build/android/envsetup.sh
gclient runhooks
3. Build
make
from:http://blog.youkuaiyun.com/dotphoenix/article/details/7784218