Sascha-L / WPF-MediaKit

Microsoft Public License
367 stars 116 forks source link

SpeedRatio is not working #88

Closed miguelgomezmunoz closed 6 years ago

miguelgomezmunoz commented 6 years ago

First of all I am aware that there is a similar thread about this problem: https://github.com/Sascha-L/WPF-MediaKit/issues/34

I try to change the SpeedRatio after the mediaUriElement is loaded and open, I am using H.264 videos with K-Lite-Codec-Pack 995 and LAV, but the video goes always at the same speed (I have tried from 0.25 to 4).

Any solution?

xmedeko commented 6 years ago

@miguelgomezmunoz are you use LAV filter is used? MediaUriPlayer tries to open the video with LAV filters (OpenSource()) and if it fails it opens it with the default graph (oldOpenSource()).

miguelgomezmunoz commented 6 years ago

@miguelgomezmunoz are you use LAV filter is used? MediaUriPlayer tries to open the video with LAV filters (OpenSource()) and if it fails it opens it with the default graph (oldOpenSource()).

I checked it again, it never uses the oldOpenSource() method and a new LAV filter icon appears in the taskbar for every video I open.

xmedeko commented 6 years ago

Can you test it with the Test Application form this git repo and post your code changes or make a fork and then post a link to your fork and branch?

miguelgomezmunoz commented 6 years ago

Can you test it with the Test Application form this git repo and post your code changes or make a fork and then post a link to your fork and branch?

I downloaded the Test Application and added just the following:

In MainWindow.xaml.cs private void mediaUriElement_MediaOpened(object sender, RoutedEventArgs e) mediaUriElement.SpeedRatio = 0.25

(I don't know why I can not write the keys in github)

In MainWindow.xaml MediaOpened="mediaUriElement_MediaOpened"

It changes the SpeedRatio value but it does not have any effect in the video.

I tried with a .wmv video and it works but why it does not work with a .avi one?

xmedeko commented 6 years ago

Yes, it would be some codec thing. First try to check the graph used, e.g. use MediaUriElement.DumpGraphInfo(). Then check the used filter, for which video file types it supports the speed ratio.