Giter VIP home page Giter VIP logo

Comments (3)

iizukanao avatar iizukanao commented on July 24, 2024

Hi, I'm sorry for the delay in response. I've fixed some bugs related to buffer management. Can you try the latest code?

At the same time, I couldn't reproduce your problem. VLC for OS X (version 2.1.5 and 1.1.9) and Windows (2.1.5) worked without problem when I tried the same as you reported.

Network throughput of Raspberry Pi is somewhat limited (you can check the actual throughput using iperf). Also, UDP performance of Node.js is not so good in my experience. If you're streaming high bitrate video, it can affect the other simultaneous connection. You might want to reduce the bitrate of your video. If you still have a problem at low bitrate such as 100 kbps, please let me know.

from node-rtsp-rtmp-server.

gregoryking avatar gregoryking commented on July 24, 2024

Thanks, I'll try to reproduce again and also test with your latest changes. I've noticed RTMP performance is much better than RSTP performance on my LAN.

A couple of unrelated questions you may know the answer to:

  • When a client is streaming using RTMP (say over wifi) and it goes out of range and then comes back into range, the stream from the camera is not kept 'live', but instead starts to drift by what looks like the amount of time the device was out of range. Is there a way to keep the client receiving the most recent data?
  • I've been comparing the performance of Strobe Media Player (flash) and VLC on OS X. With Strobe there is very little delay from the live stream, maybe half a second. With VLC the delay is more like 3 seconds. My guess is that this may be due to the Flash player using optimised GPU h264 decoding while VLC doesn't. Might this be correct? My objective is to find libraries that have minimal delay that can be used to build OS X and iOS apps (VLCKit unsurprisingly has the same delays as VLC on both OS X and iOS).

from node-rtsp-rtmp-server.

iizukanao avatar iizukanao commented on July 24, 2024

When a client is streaming using RTMP (say over wifi) and it goes out of range and then comes back into range, the stream from the camera is not kept 'live', but instead starts to drift by what looks like the amount of time the device was out of range. Is there a way to keep the client receiving the most recent data?

I've found a solution to that problem. By using Strobe Media Playback's JavaScript API, a client can calculate the drift and reconnect when the drift is too large. You can freely use this example.

I've been comparing the performance of Strobe Media Player (flash) and VLC on OS X. With Strobe there is very little delay from the live stream, maybe half a second. With VLC the delay is more like 3 seconds. My guess is that this may be due to the Flash player using optimised GPU h264 decoding while VLC doesn't. Might this be correct? My objective is to find libraries that have minimal delay that can be used to build OS X and iOS apps (VLCKit unsurprisingly has the same delays as VLC on both OS X and iOS).

The server sends audio/video immediately, but the client has to buffer the data to play smoothly without pausing. The latency largely depends on the buffer size of the client. Strobe Media Playback aggressively optimizes its buffer size to reduce latency. I think GPU decoding doesn't affect latency greatly unless CPU usage is high.

However, if you are going to submit your iOS app that plays live stream over cellular network, generally you have to use HTTP Live Streaming (see Requirements for Apps for details).

from node-rtsp-rtmp-server.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.