Announcement

Collapse
No announcement yet.

FFmpeg Adds ZeroMQ Support To Let Multiple Clients Connect To A Single Instance

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • FFmpeg Adds ZeroMQ Support To Let Multiple Clients Connect To A Single Instance

    Phoronix: FFmpeg Adds ZeroMQ Support To Let Multiple Clients Connect To A Single Instance

    An interesting new addition to FFmpeg's avformat library is ZeroMQ protocol support for enhancing its streaming abilities...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    It's not just prominent companies that use ZeroMQ. My own small application Rapid Photo Downloader uses it for interprocess communication. The design approach outlined by the late Pieter Hintjens in the ZeroMQ guide is pretty awesome, I think. It makes it relatively easy to write applications that use multiple CPU cores. In my experience it also makes for easier to maintain code!

    ZeroMQ integration with tornado makes it really pretty easy to build a load balancer into your application, freeing up a lot of development time for other areas of the code.

    I'm interested to know how Pieter's approach is valued by the coders at large in 2019. Is it seen as complex or easy?

    Jupyter uses ZeroMQ extensively. I would not be surprised if they have been heavily involved in maintaining the Python bindings for ZeroMQ for a long time now.

    Anyways, I hope it works out great for the FFmpeg folks.

    Comment


    • #3
      øMQ is really just sockets done right™
      It's reliable, simple, east to get working, and scales very well.

      Comment


      • #4
        Now this is an interesting development. I wonder how well it deals with latency.

        Multicast/IGMP still has some benefits (single stream over the network) even though it has drawbacks (IGMP snooping does not always do what you expect it to)

        Live HLS/Dash streaming would be the other option, and I think that might work better over the Internet (and be better supported atm).

        Still an Interesting development though.

        Comment


        • #5
          I'm quite sure if you knew how this worked, you'd have told us...

          Comment


          • #6
            Can this be use to make an standard for "Social Media Playing (TM)" (playing same or different synced streams over multiple systems)? Something similar to Syncplay and synco, but *A LOT* better and standardized.


            See also...

            MPV issue #1272: Synchronized playback over a network

            Comment


            • #7
              ZeroMQ (also known as ØMQ, 0MQ, or zmq) looks like an embeddable networking library but acts like a concurrency framework. It gives you sockets that carry atomic messages across various transports like in-process, inter-process, TCP, and multicast. You can connect sockets N-to-N with patterns like fan-out, pub-sub, task distribution, and request-reply. It's fast enough to be the fabric for clustered products. Its asynchronous I/O model gives you scalable multicore applications, built as asynchronous message-processing tasks. It has a score of language APIs and runs on most operating systems.

              An open-source universal messaging library

              Comment


              • #8
                Originally posted by timofonic View Post
                Can this be use to make an standard for "Social Media Playing (TM)" (playing same or different synced streams over multiple systems)? Something similar to Syncplay and synco, but *A LOT* better and standardized.


                See also...

                MPV issue #1272: Synchronized playback over a network
                Seriously what the fuck is this "Watch videos with your friends" slogan.

                Back in my day it actually meant staying with your friends in front of a single screen, not looking at a video at the same time while separated.

                Damn millenials, you are destroying everything.

                (yes I'm not 100% serious with this post, but still, I think I'm raising a valid point)

                Comment


                • #9
                  Last time I looked at ZeroMQ, it looked somewhat broken. I was primarily concerned with Java integration and java examples and demos would not work right with latest native core. On top of that it seemed that main developer of ZeroMQ got into a disagreement with 2nd guy who looked more manager type, and started its own NanoMSG project, which he didn't finish and then started yet another project...

                  In conclusion, I had issues running ZeroMQ with Java and it didn't look like these will be resolved soon and I decided to stay away. Maybe situation with native C/C++ stuff is better...

                  Comment


                  • #10
                    For what it's worth, ZeroMQ has multicast support too. It uses [e]PGM. Choosing the multicast group is indeed still the annoying part...

                    Also I think they were experimenting with NACK-Oriented Reliable Multicast (NORM), which is quite interesting. https://www.nrl.navy.mil/itd/ncs/products/norm
                    Last edited by fuzz; 04 September 2019, 02:59 AM.

                    Comment

                    Working...
                    X