Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Updating s/gst-switch/voctomix/
  • Loading branch information
mithro committed Mar 15, 2017
1 parent 63fed3c commit 0f84e33
Show file tree
Hide file tree
Showing 10 changed files with 119 additions and 23 deletions.
17 changes: 12 additions & 5 deletions Home.md
Expand Up @@ -24,7 +24,7 @@ Google Summer of Code (or similar project-based program) students should first h

If you are just interested in contributing and this is your first visit, head over to the [[Contribute]] page.

If you have a Digilent Atlys Board, head over to the [HDMI2USB Wiki](https://github.com/timvideos/HDMI2USB/wiki) and specifically look at the [Digilent Atlys Board: Getting Started](https://github.com/timvideos/HDMI2USB/wiki/Digilent-Atlys-Board%3A-Getting-Started) page.
If you are interested in our open source hardware, head over to the [HDMI2USB](https://hdmi2usb.tv) website.

***

Expand All @@ -36,9 +36,8 @@ If you have a Digilent Atlys Board, head over to the [HDMI2USB Wiki](https://git
| -------- | ---------------------------------------------------- | ------------ |
| <img src="https://code.timvideos.us/favicon.ico" class="favicon"> **TimVideos.us** | [(C)](https://github.com/timvideos) [(M)](https://groups.google.com/group/timvideos) [(I)](irc://irc.freenode.org/#timvideos) | Parent project. |
| [[HDMI2USB]] | [(C)](https://github.com/timvideos/HDMI2USB) [(M)](https://groups.google.com/group/hdmi2usb?hl=en-GB) [(I)](irc://irc.freenode.org/#hdmi2usb) | HDMI2USB is hardware for capturing HDMI, DVI and DisplayPort data. By capturing in high quality what is being presented locally it facilitates sharing with remote users and creates great recording for later viewing. The HDMI2USB hardware can also capture the HDMI output from cameras. |
| [[gst-switch]] | [(C)](https://github.com/timvideos/gst-switch)&nbsp;[(M)](https://groups.google.com/group/gst-switch)&nbsp;[(I)](irc://irc.freenode.org/#gst-switch) | [[gst-switch]] aims to do interactive live mixing of incoming video streams, designed to meet the needs of conference recording. Designed as a flexible replacement for DVSwitch, and based around GStreamer. |
| speakertrack | [(C)](https://github.com/timvideos/gst-switch) | Speakertrack is an extension to GStreamer and gst-switch to allow automatic tracking of speakers using remotely-operated PTZ cameras rather then relying on a camera operator. |
| [Streaming System](https://github.com/timvideos/streaming-system) | [(C)](https://github.com/timvideos/streaming-system) [(M)](https://groups.google.com/group/timvideos) [(I)](irc://irc.freenode.org/#timvideos) | Streaming-system is a comprehensive video conferencing package that allows users to set up and deploy a live streaming system. It includes a website, setup scripts and watchdog code. |
| [[voctomix]] | [(C)](https://github.com/voc/voctomix)&nbsp;[(M)](https://groups.google.com/group/timvideos)&nbsp;[(I)](irc://irc.hackint.eu/#voctomix) | [[voctomix]] aims to do interactive live mixing of incoming video streams, designed to meet the needs of conference recording. Designed as a flexible replacement for DVSwitch using Gstreamer and based on the original [[gst-switch]] design. |

### Partner Projects

Expand All @@ -47,5 +46,13 @@ Projects not developed by TimVideos.us, but extensively used by us.
| Name | <small>(C)ode<br>(M)ailing&nbsp;List<br>(I)RC</small>| Description | Used By |
| -------- | ---------------------------------------------------- | ----------- | ------- |
| <img src="https://cdn2.hubspot.net/hub/313203/file-521910805-png/Layout/images/favicon.png" class="favicon"> **flumotion** | [(C)](https://code.flumotion.com/cgit/) [(M)](http://lists.fluendo.com/mailman/listinfo) [(I)](irc://irc.freenode.org/#fluendo) | Flumotion is an award winning streaming software created in 2006 by a group of open source developers and multimedia experts. Flumotion Streaming Software allows broadcasters and companies to stream content live and on demand in all the leading formats from a single server. | Used for live video streaming. |
| <img src="http://gstreamer.freedesktop.org/planet/images/gstgotchi.png" class="favicon"> **gstreamer** | [(C)](http://cgit.freedesktop.org/gstreamer) [(M)](http://gstreamer.freedesktop.org/lists/) [(I)](irc://irc.freenode.org/#gstreamer) | GStreamer is a library for constructing graphs of media-handling components. The applications it supports range from simple Ogg/Vorbis playback, audio/video streaming to complex audio (mixing) and video (non-linear editing) processing. Applications can take advantage of advances in codec and filter technology transparently. Developers can add new codecs and filters by writing a simple plugin with a clean, generic interface. | Used by **gst-switch**, **speakertrack** and **flumotion**. |
| **eventstreamer** | [(C)](https://github.com/lukejohnosmahi/eventstreamr) | EventStreamer is a single and multi room audio visual stream management. It is designed to scale down for a single monthly LUG talk and scale up for conferences such as linux.conf.au. The base OS image forms the foundation for eventstreamr. The goals are simple: every host has the base image installed, the base image includes all software required to perform all roles and simple setup script to go from imaged to production. | Used by **linux.conf.au 2014** and **[PLUG](http://plug.org.au)**. |
| <img src="http://gstreamer.freedesktop.org/planet/images/gstgotchi.png" class="favicon"> **gstreamer** | [(C)](http://cgit.freedesktop.org/gstreamer) [(M)](http://gstreamer.freedesktop.org/lists/) [(I)](irc://irc.freenode.org/#gstreamer) | GStreamer is a library for constructing graphs of media-handling components. The applications it supports range from simple Ogg/Vorbis playback, audio/video streaming to complex audio (mixing) and video (non-linear editing) processing. Applications can take advantage of advances in codec and filter technology transparently. Developers can add new codecs and filters by writing a simple plugin with a clean, generic interface. | Used by **voctomix** and **flumotion**. |
| **axiom** | [(C)](https://github.com/apertus-open-source-cinema) [(M)](https://www.apertus.org/mailinglists) [(I)](irc://irc.freenode.org/#apertus) | The goal of the global community-driven apertus° project is to create a variety of powerful, affordable, free (in terms of liberty), sustainable and open digital cinema tools that we as filmmakers love to use. The AXIOM product line is the result of this ongoing endeavor and after successful crowd funding and receiving an EU Innovation grant is well on track to redefine the industry well beyond the DIY garages and hobbyist labs the project started in. Hollywood has discovered the AXIOM as the first chance to reclaim control of the tools and therefore cinematography. | |

### Deprecated Projects

| Name | <small>(C)ode<br>(M)ailing&nbsp;List<br>(I)RC</small>| Description | Used By |
| -------- | ---------------------------------------------------- | ----------- | ------- |
| [[gst-switch]] | [(C)](https://github.com/timvideos/gst-switch)&nbsp;[(M)](https://groups.google.com/group/gst-switch)&nbsp;[(I)](irc://irc.freenode.org/#gst-switch) | [[gst-switch]] aims to do interactive live mixing of incoming video streams, designed to meet the needs of conference recording. Designed as a flexible replacement for DVSwitch, and based around GStreamer. |
| speakertrack | [(C)](https://github.com/timvideos/gst-switch) | Speakertrack is an extension to GStreamer and gst-switch to allow automatic tracking of speakers using remotely-operated PTZ cameras rather then relying on a camera operator. |

4 changes: 2 additions & 2 deletions _includes/sidebar.html
Expand Up @@ -15,9 +15,9 @@
<li><a href="{% page_url hdmi2usb %}">HDMI2USB</a></li>
</ul>
</li>
<li class="{% active_class gst-switch %}">
<li class="{% active_class voctomix %}">
<ul>
<li><a href="{% page_url gst-switch %}">gst-switch</a></li>
<li><a href="{% page_url voctomix %}">voctomix</a></li>
</ul>
</li>
<li class="{% active_class streaming-system %}">
Expand Down
5 changes: 4 additions & 1 deletion _references.md
@@ -1,6 +1,8 @@

<!-- gst-switch References -->

[voctomix]: /projects/voctomix/
[gst-switch]: /projects/gst-switch/
[DVSwitch]: http://dvswitch.alioth.debian.org/wiki/
[GStreamer]: http://gstreamer.freedesktop.org/
[DV]: https://en.wikipedia.org/wiki/DV
Expand All @@ -14,7 +16,8 @@

<!-- HDMI2USB References -->

[Protoboard]: /HDMI2USB.html#digilent-atlys-prototype-board
[HDMI2USB]: https://hdmi2usb.tv/
[Protoboard]: https://hdmi2usb.tv/digilent-atlys/
[Atlys]: http://digilentinc.com/Products/Detail.cfm?NavPath=2,400,836&Prod=ATLYS
[SDI]: http://en.wikipedia.org/wiki/Serial_digital_interface
[MJPEG]: http://en.wikipedia.org/wiki/MJPEG
Expand Down
9 changes: 4 additions & 5 deletions css/bootstrap.min.css

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion css/styles.css
Expand Up @@ -14,7 +14,6 @@ html, body {

iframe {
width: 100%;
height: 99%;
}

h1, h2, h3, h4, h5, h6 {
Expand Down
5 changes: 5 additions & 0 deletions gst-switch.md
Expand Up @@ -6,6 +6,11 @@ category: projects
tags: projects gst-switch
---

<div style='width:100%; font-size: 32px; font-weight: bold; text-align: center; margin: 30px; font-color: red;'>
gst-switch has been deprecated in favor of <a href="/projects/voctomix/">voctomix</a>.<br>
All development effort is now going into <a href="/projects/voctomix/">voctomix</a>.
</div>

# gst-switch

* [(Code)](http://github.com/timvideos/gst-switch)
Expand Down
Binary file modified img/TimVideosSetup.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions img/TimVideosSetup.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 5 additions & 4 deletions js/bootstrap.min.js

Large diffs are not rendered by default.

82 changes: 82 additions & 0 deletions voctomix.md
@@ -0,0 +1,82 @@
---
layout: default
title: voctomix
tagline': A modern Gstreamer based software video mixer
category: projects
tags: projects voctomix
---

# voctomix

* [(Code) - Main Repo](http://github.com/voc/voctomix)
* [(Code) - Extension Scripts](https://github.com/CarlFK/voctomix-outcasts)
* [(Mailing List)](mailto:voc@c3voc.de)
* [(IRC Channel)](irc://irc.hackint.net/#voctomix)
* [(Bug Tracker)](http://github.com/voc/voctomix/issues)

### voctomix is written in Python and uses GStreamer

voctomix is a software based system for interactive live mixing of incoming video streams, designed for the needs of conference recording.

voctomix was [developed by the C3VOC](https://c3voc.de/) and is used extensively by the TimVideos project. The design was originally heavily influenced by the original [[gst-switch]] design but is instead written in Python.

**

### Functional diagram

FIXME: This diagram is for gst-switch, voctomix is similar in design but has some differences!

[Edit](https://docs.google.com/a/mithis.com/drawings/d/18sU5uECrPgQzxLWzc7RaYWRs9F3aocx0chf16-yxBEY/edit)

<img src="https://docs.google.com/drawings/d/18sU5uECrPgQzxLWzc7RaYWRs9F3aocx0chf16-yxBEY/pub?w=1874&h=971" style="width: 100%;">

### Documents

* [voctomix - voctocore documentation](https://github.com/voc/voctomix/blob/master/voctocore/README.md)
* [voctomix - voctogui documentation](https://github.com/voc/voctomix/blob/master/voctogui/README.md)

* [gst-switch design document](https://docs.google.com/a/mithis.com/document/d/1_blj8u6ToyaZwdikCmUSGFwdpoAYNCyDYEHgXtPL8mI/edit#heading=h.bhhck1xjratt)

### DVSwitch and voctomix

> DVSwitch is a digital video mixer intended for interactive live mixing of
> several incoming DV video streams. It was originally designed for the needs
> of DebConf; It has now been used for various other conferences, meetings and
> live musical performances.
voctomix project is intended to be a replacement of [DVSwitch][DVSwitch] based on [GStreamer][GStreamer]. It aims to do interactive live mixing of incoming video streams, designed for the needs of conference recording.

***

<img src="https://raw.githubusercontent.com/voc/voctomix/master/voctogui/voctomix.png">


# Parts of voctomix

### voctocore

* [(Code) - Main Repo](https://github.com/voc/voctomix/tree/master/voctocore)

voctocore is the part which actually does the real work. It accepts incoming video streams and then chooses one to output.  It also supports a limited number of ways to mix a maximum of 2 streams at once.

The server has a constant stream output stream. This stream is well formed for a given format set on start (IE 720p60 or 1080p50 or similar). Both video output and audio output regardless of any problems in inputs (such as corruption or dropped frames) and even if no input streams remain.

### voctogui

* [(Code) - Main Repo](https://github.com/voc/voctomix/tree/master/voctogui)

The user interface should be a program which connects to the gst-switch server and allows a user to configure features about the server.

The user interface;
* Shows previews of all the incoming videos (and shows audio levels).
* Lets you select which incoming video should be sent to the output.
* Lets you select which incoming audio should be sent to the output (independent of video).
* Lets you select Video 1 and Video 2 in PIP mode.
* Lets you position the PIP in Option 2.
* Lets you set the fade delay.

### vocto-outcasts

* [(Code) - Extension Scripts](https://github.com/CarlFK/voctomix-outcasts)

vocto-outcasts are extra scripts for interfacing with voctocore. They allow capture from multiple different types of video sources.

0 comments on commit 0f84e33

Please sign in to comment.