OpenH264

Jump to: navigation, search

This page contains details about agreement in between Cisco and openSUSE project

Background

openSUSE Project has more than 100 000 users which is the current limit for free redistribution of Cisco's OpenH264 codec.

We were inspired by Fedora and started a discussion regarding how to simplify codec installation in openSUSE.

We have approached Cisco and agreed on re-distribution via a Cisco-owned infrastructure to openSUSE users.

Source and License

The code source is available at https://github.com/cisco/openh264 under a BSD license. The binary is released under this agreement from Cisco: http://www.openh264.org/BINARY_LICENSE.txt

Where is OpenH264 built?

Open264 codec for openSUSE is currently built inside a hidden OBS project multimedia:libs:cisco-openh264. The project is accessible only to maintainers. This is currently Pharaoh_Atem Talk - ContributionsPharaoh_Atem Talk - Contributions, justaugustus Talk - Contributions (Cisco), jdetiber Talk - Contributions (Cisco), and lkocman Talk - Contributions The Current OpenH264 package reviewers consist of Community as well as Cisco employees User:Pharaoh_Atem User:Pharaoh_Atem, justaugustus Talk - Contributions (Cisco), jdetiber Talk - Contributions (Cisco)

At the moment we can build OpenH264 packages for Fedora, Debian, and openSUSE. We're open to discussion

How is OpenH264 distributed?

For the time being the current workflow is to send Cisco an email with an archive containing OpenH264 rpm packages to Cisco.

We've already discussed potential improvements to the existing workflow but we're trying to make one step at a time.

Archive with binary packages is generated by a script from OSRT and attached to an email sent to one of our Cisco contacts. http://ciscobinary.openh264.org/

The repository metadata is published by OBS under https://codecs.opensuse.org/openh264/

Installation

If the repository is not enabled by default on your system, then you can install any one of the openSUSE-repos packages (openSUSE-repos-Tumbleweed, openSUSE-repos-Leap, or openSUSE-repos-MicroOS, depending on your system) which includes the repo definition. Now, Installing gstreamer-1.20-plugin-openh264 (on Leap) / gstreamer-plugin-openh264 (on Tumbleweed/MicroOS) will automatically pull-in libopenh264-7. So, you have to also install mozilla-openh264 in order to make sure you get all of those three packages.

Alternatively you can enable the repo, and install the packages manually by running:

 # Leap
 sudo zypper ar http://codecs.opensuse.org/openh264/openSUSE_Leap repo-openh264
 sudo zypper in gstreamer-1.20-plugin-openh264 mozilla-openh264
 
 # Tumbleweed or MicroOS  
 sudo zypper ar http://codecs.opensuse.org/openh264/openSUSE_Tumbleweed repo-openh264
 sudo zypper in gstreamer-plugin-openh264 mozilla-openh264

Agreement about the content of the archive

The .zip archive must be created and sent by one of multimedia:libs:cisco-openh264 project maintainers (a reliable person).

The archive must contain only packages with Cisco OpenH264 and related OpenH264 GStreamer plugins. The package will be signed in OBS by openSUSE key, so the origin of the package can be verified.

The addition of any other content outside of our agreement (especially other codecs) to the archive would lead to a violation of the re-distribution agreement with Cisco.

Which files are currently hosted on the Cisco infra

This section is here for the time being until we establish improved delivery pipeline.

Contents of the 15.4.zip archive handed over to Cisco. This archive was then extracted on the ciscobinary host on 14th of December by jdetiber Talk - Contributions . Archive with rpms was generated by OSRT from openSUSE:Factory:openh264:POST

Example of hosted file http://ciscobinary.openh264.org/libopenh264-7-2.3.1-8.suse1500.1.x86_64.rpm


 gstreamer-1.18-plugin-openh264-1.18.6-1.suse1500.1.x86_64.rpm
 gstreamer-1.18-plugin-openh264-debuginfo-1.18.6-1.suse1500.1.x86_64.rpm
 gstreamer-1.18-plugin-openh264-debugsource-1.18.6-1.suse1500.1.x86_64.rpm
 gstreamer-1.20-plugin-openh264-1.20.3-1.suse1500.1.x86_64.rpm
 gstreamer-1.20-plugin-openh264-debuginfo-1.20.3-1.suse1500.1.x86_64.rpm
 gstreamer-1.20-plugin-openh264-debugsource-1.20.3-1.suse1500.1.x86_64.rpm
 libopenh264-7-2.3.1-8.suse1500.1.x86_64.rpm
 libopenh264-7-debuginfo-2.3.1-8.suse1500.1.x86_64.rpm
 libopenh264-devel-2.3.1-8.suse1500.1.x86_64.rpm
 mozilla-openh264-2.3.1-8.suse1500.1.x86_64.rpm
 mozilla-openh264-debuginfo-2.3.1-8.suse1500.1.x86_64.rpm
 openh264-debugsource-2.3.1-8.suse1500.1.x86_64.rpm
 gstreamer-1.18-plugin-openh264-1.18.6-1.suse1500.1.aarch64.rpm
 gstreamer-1.18-plugin-openh264-debuginfo-1.18.6-1.suse1500.1.aarch64.rpm
 gstreamer-1.18-plugin-openh264-debugsource-1.18.6-1.suse1500.1.aarch64.rpm
 gstreamer-1.20-plugin-openh264-1.20.3-1.suse1500.1.aarch64.rpm
 gstreamer-1.20-plugin-openh264-debuginfo-1.20.3-1.suse1500.1.aarch64.rpm
 gstreamer-1.20-plugin-openh264-debugsource-1.20.3-1.suse1500.1.aarch64.rpm
 libopenh264-7-2.3.1-8.suse1500.1.aarch64.rpm
 libopenh264-7-debuginfo-2.3.1-8.suse1500.1.aarch64.rpm
 libopenh264-devel-2.3.1-8.suse1500.1.aarch64.rpm
 mozilla-openh264-2.3.1-8.suse1500.1.aarch64.rpm
 mozilla-openh264-debuginfo-2.3.1-8.suse1500.1.aarch64.rpm
 openh264-debuginfo-2.3.1-8.suse1500.1.aarch64.rpm
 openh264-debugsource-2.3.1-8.suse1500.1.aarch64.rpm
 gstreamer-1.18-plugin-openh264-1.18.6-1.suse1500.1.ppc64le.rpm
 gstreamer-1.18-plugin-openh264-debuginfo-1.18.6-1.suse1500.1.ppc64le.rpm
 gstreamer-1.18-plugin-openh264-debugsource-1.18.6-1.suse1500.1.ppc64le.rpm
 gstreamer-1.20-plugin-openh264-1.20.3-1.suse1500.1.ppc64le.rpm
 gstreamer-1.20-plugin-openh264-debuginfo-1.20.3-1.suse1500.1.ppc64le.rpm
 gstreamer-1.20-plugin-openh264-debugsource-1.20.3-1.suse1500.1.ppc64le.rpm
 libopenh264-7-2.3.1-8.suse1500.1.ppc64le.rpm
 libopenh264-7-debuginfo-2.3.1-8.suse1500.1.ppc64le.rpm
 libopenh264-devel-2.3.1-8.suse1500.1.ppc64le.rpm
 mozilla-openh264-2.3.1-8.suse1500.1.ppc64le.rpm
 mozilla-openh264-debuginfo-2.3.1-8.suse1500.1.ppc64le.rpm
 openh264-debuginfo-2.3.1-8.suse1500.1.ppc64le.rpm
 openh264-debugsource-2.3.1-8.suse1500.1.ppc64le.rpm
 gstreamer-1.18-plugin-openh264-1.18.6-1.suse1500.1.s390x.rpm
 gstreamer-1.18-plugin-openh264-debuginfo-1.18.6-1.suse1500.1.s390x.rpm
 gstreamer-1.18-plugin-openh264-debugsource-1.18.6-1.suse1500.1.s390x.rpm
 gstreamer-1.20-plugin-openh264-1.20.3-1.suse1500.1.s390x.rpm
 gstreamer-1.20-plugin-openh264-debuginfo-1.20.3-1.suse1500.1.s390x.rpm
 gstreamer-1.20-plugin-openh264-debugsource-1.20.3-1.suse1500.1.s390x.rpm
 libopenh264-7-2.3.1-8.suse1500.1.s390x.rpm
 libopenh264-7-debuginfo-2.3.1-8.suse1500.1.s390x.rpm
 libopenh264-devel-2.3.1-8.suse1500.1.s390x.rpm
 mozilla-openh264-2.3.1-8.suse1500.1.s390x.rpm
 mozilla-openh264-debuginfo-2.3.1-8.suse1500.1.s390x.rpm
 openh264-debuginfo-2.3.1-8.suse1500.1.s390x.rpm
 openh264-debugsource-2.3.1-8.suse1500.1.s390x.rpm

Manual publishing workflow

The current workflow is handled via set of scripts in openSUSE Release Tools (OSRT). Docs can be found here.

Firefox config changes

(Copied from Fedora.) Type about:config into the Firefox address/URL field and accept the warning.

From the Search field type in 264 and a handful of options will appear. Give the following Preference Names a value of true by double-clicking on false:

media.gmp-gmpopenh264.autoupdate
media.gmp-gmpopenh264.enabled
media.gmp-gmpopenh264.provider.enabled
media.peerconnection.video.h264_enabled

Restart Firefox

After restarting, the following string in about:config will change to the current version that has been installed from the web:

media.gmp-gmpopenh264.version