Closed VideoSystems closed 4 years ago
Try setting MediaOptions.IsFluidSeekingDisabled = true
Related Issue: #379
Please share your results!
Ok, my apologies for the delay in getting back with results.
While setting IsFluidSeekingDisabled to true did make an improvement, it did not solve the issue entirely.
I found by trying to introduce an animation over the video using the BufferingStarted and BufferingEnded methods of the player, that every time there was a delay or skip in playback, that the buffering animation fired even though the video was local on the machine. I found a property called "VideoBlockCache" and set that to a higher number (1000). While the RAM increased, the video scrubs perfectly smooth and as quickly as I drag the scrubber! This was definitely the solution needed for smooth scrubbing of videos.
Do you have any further documentation on the VideoBlockCache setting?
Thanks for sharing the results! The VideoBlockCache
is simply the number of video blocks to keep in memory. Let me see if I can explain what this does.
So the block cache settings are referring to how many frames to decode, transform for rendering and keep in memory ready for rendering. The engine will point to the middle block of the cache when rendering. As time passes and a new block gets decoded, the oldest block gets discarded from the cache to make room for the latest decoded block.
I hope I made some sense.
Incorrect Display of Frames in Manual Video Advancement using .Position
*We have a 200 FPS video loaded into the player, and either by using a slider to advance the player.Position property, or using a DispatcherTimer that advances the position of the player, if the video is advanced too quickly we get jerky playback. I created a video to visually illustrate the problem.
Video showing issue: http://www.jcvideo.com/AdvanceVideoIssue01.mp4 You can download 200 FPS video to attempt with here: http://www.jcvideo.com/200FPS.mp4 *
Issue Categories
Version Information
Steps to Reproduce
Expected Results
Sample Code
XAML