Where does the snowmix code live?

2014-02-11
2014-03-19
  • Tim 'mithro' Ansell

    Hello,

    Snowmix looks pretty awesome. I was wondering where the code is being developed? I see tarballs to be downloaded from sourceforge but nothing linking to a git/svn/etc repository? Are you guys developing in the open or just doing code dumps on releasing?

    Thanks for your help.

    Tim

     
  • Peter Maersk-Moller

    Hi Tim.

    Snowmix is primarily living on a number of computers I use for developing Snowmix to use for Live broadcasting for Copenhagen Suborbitals.

    When new code is matching a step outlined in the development plans, the code is tested, fixed, documented and a tar-ball is uploaded to SourceForge.

    Kind regards
    Peter Maersk-Moller

     

    Related

    Wiki: Development Plans


    Last edit: Peter Maersk-Moller 2014-02-11
    • Tim 'mithro' Ansell

      Any chance you'd be interested in doing the development in the open on
      something like GitHub or SourceForge?

      It seems that I have developed a similar project called gst-switch (
      http://code.timvideos.us/gst-switch.html) and I'd be interested in possibly
      hacking on snowmix instead so we can both make faster progress.

      Tim

      On 11 February 2014 22:38, Peter Maersk-Moller pmaersk@users.sf.net wrote:

      Hi Tim.

      Snowmix is primarily living on a number of computers I use for developing
      Snowmix to use for Live broadcasting for Copenhagen Suborbitalshttp://www.copenhagensuborbitals.com/
      .

      When new code matching a step outlined in the development planshttp://sourceforge.net/p/snowmix/wiki/Development%20Plans/,
      the code is tested, fixed, documented and a tar-ball is uploaded to
      SourceForge.

      Kind regards
      Peter Maersk-Moller


      Where does the snowmix code live?https://sourceforge.net/p/snowmix/discussion/general/thread/8ed995b5/?limit=25#5a9d

      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/snowmix/discussion/general/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       
      • Peter Maersk-Moller

        Hi Tim

        I might be interested. What do you see missing for Snowmix to fit your needs?

        Regards
        Peter

         
        • Tim 'mithro' Ansell

          Hi Peter,

          I have to admit I haven't had time to play with SnowMix much yet
          (TimVideos, the parent project for gst-switch, just got accepted into
          Google Summer of Code and we are dealing with an influx of students /
          newbies). From what I can see from the documents it does seem pretty
          awesome.

          It is unclear to me at the moment if snowmix supports dynamically changing
          the video mixing of the output stream while the system is live? It looks
          like the system handles input streams stalling fine, which is really
          important for us.

          The place where we want to use SnowMix is in live video mixing of
          conference presentation recording. We are currently using a tool called
          dvswitch in this situation, but it has been showing its age for a while
          now. An example of how we might be set up can be found at
          https://docs.google.com/drawings/d/1crkdqukOAV9Alq9BOMFucDmwc_HD6qnJ4OF5MJpkrLg/pub?w=960&h=720

          Areas that at a glance we'd possibly like help / improve / work with you;

          • Adding support for using Python as the scripting language.
          • Using SnowMix in more environments and by more people.
          • Working on a (no-brain / beginner / appliance) wrappers and GUIs.
            • I have a portable "user group recording and streaming system in a
              suitcase" system that is designed for use by people who have no
              experience with any A/V streaming. It walks them through the
              whole process
              including how to mic up a speaker.
          • Speaker tracking. Our dream is to eventually control a PTZ camera to
            keep a speaker centered on a video.)

          Even if we do continue with gst-switch as a separate project, a lot of our
          work is ending up as new gstreamer modules which you will obviously be able
          to reuse.

          If you would like to discuss things in real time, a bunch of us hang out at
          irc://irc.freenode.net/#timvideos

          Tim

          On 5 March 2014 02:51, Peter Maersk-Moller pmaersk@users.sf.net wrote:

          Hi Tim

          I might be interested. What do you see missing for Snowmix to fit your
          needs?

          Regards
          Peter


          Where does the snowmix code live?https://sourceforge.net/p/snowmix/discussion/general/thread/8ed995b5/?limit=25#5a9d/3d9a/efcc

          Sent from sourceforge.net because you indicated interest in
          https://sourceforge.net/p/snowmix/discussion/general/

          To unsubscribe from further messages, please visit
          https://sourceforge.net/auth/subscriptions/

           
          • Peter Maersk-Moller

            Hi Tim

            On Wed, Mar 5, 2014 at 4:18 AM, Tim 'mithro' Ansell mithro@users.sf.net wrote:

            (TimVideos, the parent project for gst-switch, just got
            accepted into Google Summer of Code and we are dealing
            with an influx of students newbies). From what I can see
            from the documents it does seem pretty awesome.
            

            Thanks and congratulation on the summer of code thingie.

            It is unclear to me at the moment if snowmix supports
            dynamically changing the video mixing of the output
            stream while the system is live?
            

            Its' unclear to me what you really asking about. You can change nearly all aspects of of the mixing dynamically. That not only include what and how to display streams, texts and graphics, but it also indlude connecting and disconnecting audio and video stream sources as well as connecting and disconnecting a consumer of the mixed video stream and audio. However there is a couple of things you currently can not do.

            1) System frame rate for you mixer system can not be changed after being defined.
            2) System video geometry for the video mixer can not be changed after being defined.
            3) Video feeds when defined, can not be deleted nor change their geometry. But you can stop using them and use other video feeds with other geometries until you need the ones you stopped and then start using them again. And new video feeds can be created on the fly.

            If you need to change any of these parameters, you need to restart the mixer. That said, the mixer is robust against any frame rate the video input streams have, so if you have a video input that dynamically changes framerate, that is not an issue. And if you need to change the geometry of the mixed result, you can change that in an external pipeline. So basically, almost everthing can be set and changed dynamically.

            It looks like the system handles input streams stalling fine,
            which is really important for us.
            

            When you set a video feed in mode live as opposed to recorded, Snowmix will at system frame rate input all available frames and drop the ones it doesn't need. If no frame is available for a feed, but a process is connected, Snowmix will reuse the last one available and after configurable period, use a so called dead image instead of the last one. So feeding video to fast is not a problem, feeding video too slow is not a problem, disconnecting and reconnecting is not a problem either.

            Areas that at a glance we'd possibly like help / improve / 
            work with you;
            
            Adding support for using Python as the scripting language.
            

            I have considered adding both Perl and Python. Adding a Python interpreter as such, is trivial and will take a single day to implement and a little longer to thoroughly test. However there is one problem with the approach. Adding the a Python interpreter will not add any new features or functionality to Snowmix. So why do it? I'm not saying no, just that I haven't yet found a reasonably well enough reason to say yes.

                Using SnowMix in more environments and by more people.
            

            That is hard to argue against ;-) but it doesn't really require shared code development. And by the way, all contributions are welcome. If they add reasonably value compared to cost, such contributions will be included in the main dsitro.

                Working on a (no-brain / beginner / appliance) wrappers
            and GUIs.
            I have a portable "user group recording and streaming system in a
            suitcase" system that is designed for use by people who have no
            experience with any A/V streaming. It walks them through the
            whole process including how to mic up a speaker.
            Speaker tracking.
            

            Well that is an independent application development. And as such, Snowmix is a tool created for specifically that. If it is a good application, we can either ditribute it with Snowmix or separately as we see fit.

            Our dream is to eventually control a PTZ camera to
                keep a speaker centered on a video.)
            

            That's not really a task for Snowmix, but perhaps rather a task for a GStreamer plugin perhaps or an application that uses perhaps a GStreamer pipeline to take its input.

            If you would like to discuss things in real time, a bunch of
            us hang out at irc://irc.freenode.net/#timvideos
            

            Thanks.

            Another thing that would be really nice to add to Snowmix, would be a GStreamer plugin for Snowmix. The Snowmix src should communicate with Snowmix to get geometry, frame rate, audio rate, channels etc. and communicate capabilities downstream. Likewise should the sink get the configuration data from Snowmix automagcally and communicate capabilities upstream. So we would have something like

            gst-launch filesrc location=file.mp4 ! decodebin name=decoder ! 'video/x-raw' ! snowmixsink name=snowmix decoder. ! 'audio/x-raw' ! snowmix.
            

            And likewise for the snowmix src.

             
            Last edit: Peter Maersk-Moller 2014-03-05
            • buzzzy

              buzzzy - 2014-03-19

              Hello Peter,

              quick question: can you change system control port and system socket dynamically or do you need 2 different .ini files for 2 different Snowmix'es to run at the same time?

              Thank you.

               
              • Peter Maersk-Moller

                Please post new questions with a topic unrelated to the currentthread topic in a new thread with a describing topic. Otherwise it will quickly become very difficult to navigate threads for others.

                Regards
                Peter

                 


Anonymous

Cancel  Add attachments