Opened 10 years ago
Last modified 8 years ago
#1758 closed enhancement
Support for OpenH264 v1.0.0 codec — at Version 11
Reported by: | bennylp | Owned by: | nanang |
---|---|---|---|
Priority: | normal | Milestone: | release-2.3 |
Component: | pjmedia | Version: | trunk |
Keywords: | Cc: | ||
Backport to 1.x milestone: | Backported: | no |
Description (last modified by bennylp)
Support for the open source implementation of H.264 codec from http://www.openh264.org.
Requirement:
- OpenH264 library version 1.0.0 release (download here)
Implementation features:
- Constrained Baseline, default level=30 (0x1e)
- packetization modes: 1, 0
- key frame request and indication
- obey remote's fmtp
Notes:
- currently transmission is hard coded to use only single NAL (packetization mode 0) regardless of remote's fmtp for interop reason. The same is also done in ffmpeg wrapper.
- whole frame for file encoding is implemented but currently doesn't work
Below are the steps to use the codec:
For GNU targets:
- Build the OpenH264 library and install it to a directory (with "make install"). By default it installs to /usr/local. You need to modify the Makefile to install it to different location (=prefix).
- Run PJSIP's configure. If you specify alternate location (prefix) to OpenH264 installation, specify the location with --with-openh264 option. E.g.:
./configure --with-openh264=/home/user/opt
- Add this to your config_site.h:
#define PJMEDIA_HAS_OPENH264_CODEC 1
For Visual Studio:
- Build the OpenH264 library with MinGW make & gcc, and install it to a directory (with "make install"). By default it installs to /usr/local. You need to modify the Makefile to install it to different location (=prefix).
- Create openh264.lib from openh264.def, note that the static lib libopenh264.a outputted by MinGW gcc cannot be used by VS, so we are going to use the dynamic lib version instead:
- open 'Visual Studio command prompt', e.g: Win Start Menu -> MS VS 2005 -> VS Tools -> VS 2005 Command Prompt
- change dir to OpenH264 source root directory
- run "lib /def:openh264.def", this will create openh264.lib, copy this file to the OpenH264 installation directory
- rename or copy libopenh264.dll to openh264.dll and put it in the system path
- Add OpenH264 include and library installation paths to Visual Studio search path settings.
- Add this to your config_site.h:
#define PJMEDIA_HAS_OPENH264_CODEC 1
For iOS:
- Follow the guidance for GNU targets above.
- Include libopenh264.a and iOS-SDK's libstdc++.dylib to application project in XCode.
- Better remove/rename libopenh264.dylib from the OpenH264 installation directory, as somehow it may cause crash on runtime (failed in loading dynamic lib).
Change History (11)
comment:1 Changed 10 years ago by bennylp
- Description modified (diff)
comment:2 Changed 10 years ago by bennylp
- Description modified (diff)
comment:3 Changed 10 years ago by bennylp
- Description modified (diff)
comment:4 Changed 10 years ago by bennylp
- Description modified (diff)
comment:5 Changed 10 years ago by bennylp
comment:6 Changed 10 years ago by bennylp
In 4846:
comment:7 Changed 10 years ago by bennylp
In r4863:
- Updated with the latest OpenH264 to fix compilation error and codec initialization error for packing mode
comment:8 Changed 10 years ago by nanang
In 4864:
comment:9 Changed 10 years ago by nanang
- Description modified (diff)
comment:10 Changed 10 years ago by bennylp
In 4867:
comment:11 Changed 10 years ago by bennylp
- Description modified (diff)
- Summary changed from Support for OpenH264 codec to Support for OpenH264 v1.0.0 codec
Note: See
TracTickets for help on using
tickets.
In 4815: