I'm streaming a video captured on a webcam to a remote computer using vlc media player. In 'Show more options' under 'Stream', there is an option for setting 'Caching time' which is set to 300ms by default. In the vlc streaming manual, it is given that 'Caching time' refers to the time vlc has to wait before transmitting a frame. So 300ms means in a second, it can transmit 3-4 frames. But the video at the receiver looks fairly continuous, for which a frame rate of 30 per second is needed. So how is this maintained?
Asked
Active
Viewed 1.9k times
1 Answers
2
Live caching defines delay of the entire stream, not the idleness time between individual frames. That is, you have the stream sent at full frame rate with a delay of 300 ms.
Delays like this let sending application compensate for irregular frame acquisition and capture/read delays, while still delivering output at a steady rate.
To redefine effective output capture rate you typically transcode the feed, e.g. Stream Output, Destinations, Add, Activate Transcoding, Edit Selected Profile, Video Codec, Frame Rate.

Roman R.
- 68,205
- 6
- 94
- 158
-
Okay i got it! So what could be the lower limit for the caching time that a user can specify? Because i tried with 40ms and vlc stopped playing the captured video, but it worked with 50ms. – Vigo Oct 09 '13 at 06:10
-
This grossly depends on the application itself, I am not sure how VLC handles this exactly, and it can be source dependent additionally. What you possibly seeing is that source (webcam) frame is considered "late" and dropped before being fed to streaming cache. That is, you choose the value for your specific context - for the delay to be minimal on the one hand, and without much of frame drops on the other. – Roman R. Oct 09 '13 at 06:30