All Projects → google → Shaka Player Embedded

google / Shaka Player Embedded

Licence: other
Shaka Player in a C++ Framework

Programming Languages

swift
15916 projects
cplusplus
227 projects

Projects that are alternatives of or similar to Shaka Player Embedded

Shaka Player
JavaScript player library / DASH & HLS client / MSE-EME player
Stars: ✭ 5,386 (+3420.26%)
Mutual labels:  video-player, dash, video-streaming, playback, hls, live, live-streaming
shaka-player-react
A simple React component wrapper for shaka-player
Stars: ✭ 79 (-48.37%)
Mutual labels:  hls, video-player, playback, dash, video-streaming
bigscreen-player
Simplified media playback for bigscreen devices
Stars: ✭ 62 (-59.48%)
Mutual labels:  live-streaming, live, playback, dash, video-streaming
Vidgear
A High-performance cross-platform Video Processing Python framework powerpacked with unique trailblazing features 🔥
Stars: ✭ 2,048 (+1238.56%)
Mutual labels:  hls, live-streaming, dash, video-streaming
Srs
SRS is a simple, high efficiency and realtime video server, supports RTMP, WebRTC, HLS, HTTP-FLV, SRT and GB28181.
Stars: ✭ 16,734 (+10837.25%)
Mutual labels:  hls, live, live-streaming, video-streaming
Rx Player
DASH/Smooth HTML5 Video Player
Stars: ✭ 600 (+292.16%)
Mutual labels:  video-player, dash, video-streaming, live-streaming
Abr Broadcaster
A real time encoder for Adaptive Bitrate Broadcast
Stars: ✭ 80 (-47.71%)
Mutual labels:  dash, hls, live, live-streaming
Awesome Video
A curated list of awesome streaming video tools, frameworks, libraries, and learning resources.
Stars: ✭ 397 (+159.48%)
Mutual labels:  dash, video-streaming, hls
Xgplayer
A HTML5 video player with a parser that saves traffic
Stars: ✭ 4,792 (+3032.03%)
Mutual labels:  video-player, dash, hls
Clappr
🎬 An extensible media player for the web.
Stars: ✭ 5,436 (+3452.94%)
Mutual labels:  video-player, dash, hls
hms-video-demo-android
HUAWEI Video Kit supports streaming media in 3GP, MP4, or TS format and compliant with HTTP/HTTPS, HLS, or DASH. The Kit also provides abundant playback controls, delivering personalized video experiences to users.
Stars: ✭ 22 (-85.62%)
Mutual labels:  hls, video-player, dash
Go Oryx
The go-oryx is SRS++, focus on real-time live streaming load-balancer.
Stars: ✭ 608 (+297.39%)
Mutual labels:  hls, live, live-streaming
Nginx Vod Module
NGINX-based MP4 Repackager
Stars: ✭ 1,378 (+800.65%)
Mutual labels:  dash, video-streaming, hls
Rtsp Stream
Out of box solution for RTSP - HLS live stream transcoding. Makes RTSP easy to play in browsers.
Stars: ✭ 349 (+128.1%)
Mutual labels:  video-streaming, hls, live-streaming
Python Ffmpeg Video Streaming
📼 Package media content for online streaming(DASH and HLS) using FFmpeg
Stars: ✭ 269 (+75.82%)
Mutual labels:  dash, video-streaming, hls
p2p-cdn-sdk-android
Free p2p cdn android github sdk to reduce video streaming costs of live and on demand video using webrtc by upto 90% and improve scalability by 6x - 🚀 Vadootv 🚀
Stars: ✭ 39 (-74.51%)
Mutual labels:  hls, live-streaming, dash
Nexplayer unity plugin
Stream videos in HLS & DASH with Widevine DRM using NexPlayer Video Streaming Player SDK for Unity on Android & iOS devices
Stars: ✭ 73 (-52.29%)
Mutual labels:  video-player, dash, hls
Docker Streaming Server
Live streaming server
Stars: ✭ 141 (-7.84%)
Mutual labels:  dash, video-streaming, hls
Indigo Player
Highly extensible, modern, JavaScript video player. Handles MPEG-Dash / HLS / MPEG-4 and is built on top of the HTML5 video element.
Stars: ✭ 1,173 (+666.67%)
Mutual labels:  video-player, dash, hls
Hls.js
HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.
Stars: ✭ 10,791 (+6952.94%)
Mutual labels:  video-streaming, hls, playback

Shaka Player Embedded

Shaka Player Embedded is a framework that runs Shaka Player in native (C++) apps. This gives a cross-platform interface to Shaka Player allowing native apps to use the player. Your native apps can now be built with the same features, behavior, and API as your Shaka-based web apps.

In addition to the C++ API, we provide a high-level wrapper for iOS called ShakaPlayer and ShakaPlayerView which can be used from either Objective-C or Swift.

Documentation: https://google.github.io/shaka-player-embedded/ Tutorials: https://google.github.io/shaka-player-embedded/usergroup0.html Releases: https://github.com/google/shaka-player-embedded/releases

Platform support

We only support iOS at this time, but other platforms could be added.

Because many on our team use Linux, there is a Linux port included to make it easier to work on non-iOS-specific features. Linux is not, however, a first-class target platform at this time.

API/ABI compatibility

This project follows semantic versioning, meaning we maintain backwards compatibility with all minor releases, including ABI. This means you can drop in a newer version of the compiled library and not have to recompile your main app (you'll need to re-sign it due to Apple requirements).

Minor releases (e.g. v1.1) will add new features in a reverse-compatible way, but major releases (e.g. v2.0) may break any compatibility. We'll mark deprecated features with compiler attributes to give you warnings about features that will be removed later. This may break API compatibility if you compile with -Werror, but you can suppress the warnings. Features will only be removed in major releases.

Announcements & Issues

If you are interested in release and survey announcements, please join our mailing list: https://groups.google.com/forum/#!forum/shaka-player-users

This is a very low-volume list that only admins of the project may post to.

For issues or to start a discussion, please use github issues: https://github.com/google/shaka-player-embedded/issues

Widevine support

Widevine support requires the Widevine CDM for iOS, which must be obtained separately from Widevine, under license. The Widevine CDM is not open-source.

Adding Widevine support requires compiling from source; you cannot use the pre-built versions. Follow the instructions in the Widevine CDM repo for how to build it.

This requires the use of at least v15.2.3 of the Widevine CDM.

Setting up for development

  1. The source is managed by Git at https://www.github.com/google/shaka-player-embedded. You will need these tools available on your development system:
  • Git v1.7.5+
  • Python v2.7
    • Requires installing package enum34
  • autoconf 2.57+
    • m4
    • automake 1.7+
    • perl

This does not require a C++ compiler as it uses a pre-compiled version of clang downloaded from Google Cloud Storage. However, it does require a C++11 compatible C++ library (installed with most compilers, e.g. gcc).

  1. Install Chromium depot tools, which contains ninja and other required tools. See https://www.chromium.org/developers/how-tos/install-depot-tools for details.

  2. Get the source

git clone https://github.com/google/shaka-player-embedded.git
cd shaka-player-embedded

We use git submodules to manage third-party dependencies. You can run git submodule update (or pass --recurse-submodules to git clone) to download all the submodules; or you can wait and have the configure script download only those you need.

  1. Configure and Build

You need to run configure to setup configuration settings. You can pass --help to see some of the options you can use. We don't support in-tree builds; you need to run configure in another directory.

Once configure is done, you can build using build.py. There is a Makefile that will run the script for you if you prefer.

mkdir foo
cd foo
../configure
make
  1. Copy the shared library

Once it is built, you can use the resulting shared library.

On iOS, there will be a ShakaPlayerEmbedded.framework folder that you use; there is also a ShakaPlayerEmbedded.FFmpeg.framework bundle that you need to include in your app, but you shouldn't use it directly since we don't maintain ABI for it.

On other platforms, there is a libshaka-player-embedded.dylib or a libshaka-player-embedded.so file you can use. Like iOS, there is a libshaka-player-embedded.ffmpeg.* file you need to include too.

If you are using a custom --eme-impl, you need to copy the respective shared libraries too, if needed.

Running the checks

If you intend to send a pull-request, you need to ensure the code complies with style guidelines. This is done with the shaka/tools/presubmit.py script, which can be run with make check.

To run all the checks, you also have to have clang-tidy installed. It needs to be installed on PATH, or you can pass --clang-tidy to the script to tell it where to find the binary.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].