voc / voctomix

Full-HD Software Live-Video-Mixer in python
https://c3voc.de/
MIT License
573 stars 104 forks source link

New features and overhaul for Voc2Mix #294

Open SonnyWalkman opened 2 years ago

SonnyWalkman commented 2 years ago

With the latest release 1.20 of GStreamer, I'm sure there could be improvements made to voctocore.

  1. avoid the delay max-size-time=3000000000 in queues adding interpipescr and interpipesink to switch between sources and separate pipelines. There has been a vast amount of bugfixes with interpipes over the last few years and is very mature. Not sure why it keeps being forgotten to be included in the Gstreamer build tree??
  2. Substitute the compositor for "No-signal" with fallbackswitch (Written in Rust) . Allow options for presenting a static or dynamic source when a connection is lost.
  3. Hardware encoding and improvements with Nvidia GPU nv** plugins for preview and main stream via RTMP or HLS, RTSP etc
  4. Lower thirds using wpesrc and embedded web server to host html4 animated graphics.. Any thoughts?
derpeter commented 1 year ago

Hi, sorry for coming back that late,

  1. interesting, i was just looking into decoupling some elements which seem to fit your point. What do you mean by "being forgotten" do we need to build GST with those patches or are they mainlined by now?
  2. fallback switch very interesting, so far i was under the impression that its only for h264 which would limit our options here, did i muss something here? Any suggestion how we should include rust code into voctomix in terms of releases. Shipping binaries feels a little wrong but also requiring people to have cargo in place. (Of course today we should rewrite voctomix in rust :-) )
  3. this is already possible since a while but was buried in some branches. We just rename done of them to main an start working on it again. nvidia, intel, broadcom and AMD encoder are supported and more or less tested
  4. i have no clue of both technologies but lower thirds are in an very early stage in voc2mix input is very welcome
SonnyWalkman commented 1 year ago
  1. Probably not the best choice of words to use “being forgotten” I was concerned that the Voc2mix project was slowly idling down fir something new as there was plenty of activity improvements additions then 2-3 years of very little. Gstreamer has addressed many issues in elements and plugins therefore fixing many of the unexpected issues with memory leaks etc?

  2. Fallbackswitch although coded in rust can be statically link as a plugin. Yes, the requirements for cargo and shipping a plugin binary may violate rules. If it happen Voctomix was rewritten in Rust, the performance alone constitute far less memory and processor requirements. No garbage collections etc? I’m new to rust and don't have the experience to assist with converting voctomix to rust..

  3. Great to hear. I’m sure using GPU for decoding and encoding add significant benefits for all.

  4. The webscr plugin looks to be main stream now. As easy enough to include thus allowing dynamic overlay than using the static approach.