Skip to content

pjproject help

Nikola edited this page Nov 30, 2018 · 3 revisions
  1. LoginPreferencesHelp/GuideAbout Trac

  2. WikiTimelineRoadmapBrowse SourceView TicketsSearch

  3. wiki:Getting-Started/Autoconf

  4. UpStart PageIndexHistory

  5. Last modified 14 months ago

  6. Building Linux, *nix, *BSD, and MacOS X Targets with GNU Build Systems

  7. Getting Started

  8. Preparation

  9. Get the source code

  10. Disk Space Requirements

  11. Build Preparation

  12. Build for Desktop

  13. Windows

  14. Linux

  15. MacOS X

  16. Python

  17. Build for Mobile

  18. iOS: Apple iPhone, iPad, and iPod Touch

  19. Android

  20. BlackBerry 10 (BB10)

  21. Windows Mobile

  22. Windows Phone 8.x and UWP

  23. Symbian...

  24. Build for Other

  25. Next: Using the libraries

  26. Running pjsip Applications

  27. Building Application using PJSIP with GNU Tools

  28. Video User's Guide (2.0 onwards)

  29. See Also

  30. Installing OpenSSL on Windows

  31. Using Subversion

  32. Visual Studio Build Configurations

  33. Using Eclipse with PJSIP

  34. S60 3rd Edition devices

  35. Supported Targets

  36. Requirements

  37. Tools and development libraries

  38. Video Support (for 2.0 and above)

  39. Host requirements

  40. Running configure

  41. Using Default Settings

  42. Features Customization

  43. Configuring Debug Version and Other Customizations

  44. Configuring TLS Support

  45. Cross Compilation

  46. Running make

  47. Build Customizations

  48. Optional: Installing PJSIP

  49. Next: Using pjsip libraries in your applications

  50. Supported Targets

  51. The autoconf based GNU build system can be used to build the libraries/applications for the following targets:

  52. Linux/uC-Linux (i386, Opteron, Itanium, MIPS, PowerPC, etc.),

  53. MacOS X (PowerPC),

  54. mingw (i386),

  55. FreeBSD and maybe other BSD's (i386, Opteron, etc.),

  56. RTEMS with cross compilation (ARM, powerpc),

  57. etc.

  58. Requirements

  59. Tools and development libraries

  60. In order to use PJSIP's GNU build system, these typical GNU tools are needed:

  61. GNU make (other make will not work),

  62. GNU binutils for the target, and

  63. GNU gcc for the target.

  64. In addition, the following libraries are optional, but they will be used if they are present:

  65. ALSA header files/libraries (optional) if ALSA support is wanted.

  66. OpenSSL header files/libraries (optional) if TLS support is wanted.

  67. Video Support (for 2.0 and above)

  68. The following components are needed for video:

  69. Linux: Video4Linux2 (v4l2) development library.

  70. ​SDL version 2.0

  71. libyuv (Recommended) for format conversion and video manipulation. Follow the instructions in ticket #1937 (or ticket #1776 if you are using PJSIP 2.5.1 or older). Alternatively, you can use ffmpeg as explained below.

  72. OpenH264 (Recommended): Follow the instructions in ticket #1947 (or ticket #1758 if you use PJSIP before version 2.6). Alternatively, you can use VideoToolbox (only for Mac) or ffmpeg as explained below.

  73. VideoToolbox (for Mac only, supported since PJSIP version 2.7), define this in your config_site.h: #define PJMEDIA_HAS_VID_TOOLBOX_CODEC 1

  74. ​ffmpeg development library. ffmpeg is used for format conversion and video manipulation; as well as video codecs: H.264 (together with libx264) and H263P/H263-1998. So, if you already use libyuv AND H.264 (OpenH264 or VideoToolbox), and you don't need H.263, then this is optional. We tested with ffmpeg version 1.x (1.2.5) to 0.x (from 0.5.1 (from circa 2009) to 0.10). Since #1897 we have added support for ffmpeg 2.8, however note that on applying the ticket, older ffmpeg will no longer be supported. To enable H.264 support in ffmpeg (this is not required if you already have H.264 codec (via OpenH264 or VideoToolbox)):

  75. You need newer releases (October 2011 onwards), and it needs libz too. On Mac OS X: You may need to rebuild libbz2 if you have an old libbz2 for older system.

  76. Build with at least:

  77. $ ./configure --enable-shared --disable-static --enable-memalign-hack

  78.                   # add other options if needed, e.g: optimization, install dir, search path 
    
  79.                   # particularly CFLAGS and LDFLAGS for x264
    
  80.                   # to enable H264, add "--enable-gpl --enable-libx264"
    
  81. $ make && make install

  82. ​libx264. We tested with the latest from git (as of October 2011):

  83. $ ./configure --enable-static # add options if needed, e.g: optimization, install dir, search path

  84. $ make && make install-lib-static # default install dir is /usr/local

  85. Optional: ​Qt development SDK for building the video GUI sample. We tested with version 4.6 or later.

  86. without this you can still enjoy video with pjsua console application

  87. Host requirements

Clone this wiki locally