All Projects → ford-prefect → gst-sync-server

ford-prefect / gst-sync-server

Licence: LGPL-2.1 License
A library for synchronised network playback applications

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to gst-sync-server

shairport-sync
AirPlay audio player. Shairport Sync adds multi-room capability with Audio Synchronisation
Stars: ✭ 5,532 (+9778.57%)
Mutual labels:  audio-streaming, multi-room-audio
Nodetube
Open-source YouTube alternative that offers video, audio and image uploads, livestreaming and built-in monetization
Stars: ✭ 2,066 (+3589.29%)
Mutual labels:  audio-streaming, video-streaming
2nfm
Share your screen and computer's audio via WebRTC!
Stars: ✭ 29 (-48.21%)
Mutual labels:  audio-streaming, video-streaming
Nymphcast
Audio and video casting system with support for custom applications.
Stars: ✭ 2,010 (+3489.29%)
Mutual labels:  audio-streaming, video-streaming
laav
Asynchronous Audio / Video Library for H264 / MJPEG / OPUS / AAC / MP2 encoding, transcoding, recording and streaming from live sources
Stars: ✭ 50 (-10.71%)
Mutual labels:  audio-streaming, video-streaming
node-snowmix
A Node.JS library for the Snowmix video mixer
Stars: ✭ 18 (-67.86%)
Mutual labels:  gstreamer
amazon-ivs-chime-web-demo
A demo web application intended as an educational tool for demonstrating how to load and play Amazon IVS streams alongside the Amazon Chime SDK.
Stars: ✭ 35 (-37.5%)
Mutual labels:  video-streaming
webcam-glass
Cross-platform tool for making video tutorials and video conferencing, blending the webcam over the screen.
Stars: ✭ 16 (-71.43%)
Mutual labels:  video-streaming
Me-TV
It's TV for me computer.
Stars: ✭ 39 (-30.36%)
Mutual labels:  gstreamer
bobcaygeon
Multi-room streaming, built on airplay
Stars: ✭ 19 (-66.07%)
Mutual labels:  audio-streaming
stream video server
demonstrates how to create video streaming server with the help of aiohttp and opencv
Stars: ✭ 15 (-73.21%)
Mutual labels:  video-streaming
GStreamer-Python
Fetch RTSP Stream using GStreamer in Python and get image in Numpy
Stars: ✭ 81 (+44.64%)
Mutual labels:  gstreamer
KTVideoMonitor
📹KTVideoMonitor视频监控Demo-基于ijkPlayer的网络播放器,支持HTTP、RTMP、HLS(m3u8)、本地视频等多种格式
Stars: ✭ 22 (-60.71%)
Mutual labels:  video-streaming
watch-any-movie
A Netflix Clone App built using React js , Material UI & OMDb API that allows searching of 1000+ movies and provides information about their plot, IMDB rating, MetaScore, Genre, and Year in which it is published, along with high-quality audio and video streaming.
Stars: ✭ 31 (-44.64%)
Mutual labels:  video-streaming
wifibroadcast osd
Mavlink OSD and video player
Stars: ✭ 21 (-62.5%)
Mutual labels:  gstreamer
video server
A golang_based streaming video website
Stars: ✭ 37 (-33.93%)
Mutual labels:  video-streaming
orcanode
Software for live-streaming and recording lossy or lossless compressed audio (HLS, DASH, FLAC) via AWS S3 buckets. ⭐
Stars: ✭ 23 (-58.93%)
Mutual labels:  audio-streaming
Tako-Play
A Mobile App To Watch Anime Online With No Ads !!
Stars: ✭ 78 (+39.29%)
Mutual labels:  video-streaming
rtsp2html5
A small and simple PHP-script to convert RTSP-stream from IP-cameras to HTML5-video (with switch to MJPEG on failure)
Stars: ✭ 15 (-73.21%)
Mutual labels:  video-streaming
janus-rtpforward-plugin
Plugin for Janus forwarding RTP and RTCP packets to an external UDP receiver/decoder, e.g. a GStreamer pipeline
Stars: ✭ 69 (+23.21%)
Mutual labels:  gstreamer

GStreamer Synchronised Network Playback

This is a library to help application developers easily write applications where multiple devices connected to a network need to play back media in sync.

Use cases include multi-room audio playback, video walls, and any other situation where it is required that possibly heteregenous devices on a network need to playback the same audio/video stream.

There is a talk about this library at:

You can read more at:

Examples

There is an example server and client in the examples directory. Once you've built the project, just run examples/test-server --help and examples/text-client --help to see how you can run these.

The example server expects a playlist file. The playlist file is a simple text line with each line containing a URI, a space, and the length of the media at that URI in nanoseconds (or -1 if it is unknown). An example might look like:

file:///some/local/foo.mp4 123456789
http://myhttpserver/bar.mkv -1
udp://192.168.0.0.1:5004 -1

The config file that can be passed to a server is a serialised GVariant. These are programmatically created using g_variant_print.

This example configuration was used to scale a video and play it across two displays, after cropping to adjust for bezels.

{
  "client1": <{
    "crop": <{
      "right": 973
    }>,
    "offset": <{
      "left": 449
    }>,
    "scale": <{
      "width": 1280,
      "height": 720
    }>
  }>,
  "client2": <{
    "crop": <{
      "left": 973
    }>,
    "offset": <{
      "right": 449
    }>,
    "scale": <{
      "width": 1280,
      "height": 720
    }>
  }>
}
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].