I like to play virtually all my videos at 1.5x speed and no player can do it without choppiness except Virtualdub. I already have a script for autoloading any video from the context menu but I created another one to include audio. My question is, is it optimal? Is this how all of you would do it?
Code:a=ffvideosource("C:\video.mkv", cache=true, cachefile="C:\video.mkv.ffindex") b=ffaudiosource("C:\video.mkv", cache=true, cachefile="C:\video.mkv.ffindex") audiodub(a,b) #TimeStretch(Tempo=100.0)
+ Reply to Thread
Results 1 to 18 of 18
The help file says ffms2 indexes twice if you index video first, and suggests you should do it the other way around.
A = FFAudioSource(X)
V = FFVideoSource(X)
Although the indexing and AudioDub stuff happens automatically if you use FFmpegSource2 or FFMS2.
The cachefile options are the same, and cache=true is the default anyway.
FFmpegSource2("C:\video.mkv", atrack=-1, cachefile="C:\video.mkv.ffindex")
FFMS2("C:\video.mkv", atrack=-1, cachefile="C:\video.mkv.ffindex")
How do you match the audio speed to the video though, as TimeStretch only adjusts audio?
This should keep the audio and video in sync, without changing the audio pitch, and speed it all up 1.5x. Any player that can open Avisynth scripts should play it.
FFMS2("C:\video.mkv", atrack=-1, cachefile="C:\video.mkv.ffindex")
Last edited by hello_hello; 26th Mar 2019 at 03:37.
Many thanks! This is gonna save me a lot more grief than I expected.
A = FFAudioSource(X)
V = FFVideoSource(X)
So they should open anything FFVideoSource and FFAudioSource will open. They definitely open MKVs.
Those functions used to be contained in a separate avsi script, but these days they're integrated into the dll.
For some reason FFMS and FFmpegSource2 don't enable audio by default, hence the need to use Atrack=-1
Attached are couple of functions if you want to try them. It's been a while since I created them, but if I remember correctly....
The FFMS3 function is exactly the same as FFMS2, except audio is enabled by default. If you try to open a source without audio, and without disabling the audio, it'll produce an error as FFMS2 does. If you try to open a source without video, it'll produce an error as FFMS2 does (I'm pretty sure).
The FFMS4 function has video and audio enabled by default, but you should be able to open a "video only" file, or an "audio only" file without having to disable either. The only time you should get an error, is if you disable audio and then try to open an audio-only file, or try to open a video-only file with video disabled, or if there are video/audio streams but FFMS2 can't open them for some reason (FFMS4 can disable video with VTrack=-2 and just open the audio).
Edit: Doh! I was cleaning up the FFMS4 script a bit and I noticed a minor error. Nothing that should normally cause a problem, but I've attached a fixed version.
Last edited by hello_hello; 1st Apr 2019 at 00:15. Reason: Second edit to change the way a sentence was written
MPC-HC resizer gets rid of it. It's set under Playback/Output for MPC-HC. If I select any of the Bicubic resizers I tend to see tearing. For any of the others it's fine, so I use "Bilinear (PS 2.0)". It's not as sharp though, although when running noisy or lower quality video fullscreen that's not a bad thing. It happens on two PCs with the same video card, so it's probably video card related. I don't know what Potplayer uses by default or if that's your issue, as I think VLC is fine for me (I rarely use it) but it's something to try.
BTW, I have a two similar functions to FFMS4 called LSmashSource3 and LibavSource3. They're modified versions of the LSmashSource2 and LibavSource2 functions supplied with LSMASH. The former can be used to open files that don't require indexing, such as MP4, so it opens them faster.
I also combined them using another function. It attempts to open a source with LSmashSource3 and if that fails, it moves onto indexing with LibavSource3. The idea is you can open any source with it and it won't index unless it needs to.
Unfortunately though there's a problem I need to fix, but if you want to try it I'll do so tomorrow (hopefully) and upload it for you. It's not a huge issue and I don't use it regularly so I haven't been motivated to do anything about it until now.
Last edited by hello_hello; 1st Apr 2019 at 00:21.
Changing my resizer to any kind of billinear-based counterpart didn't work. Here's all the rendering modes I tried on potplayer for a 1080p video at 29.971 fps:
EVR (Vista/ .Net3) - tearing for first few seconds and slow seek
Haali - minimal tearing
madVR - no tearing but slow seeking
EVR (Custom preset)
Built-in Direct3D9 Video Renderer
Built-in OpenGL Video Renderer - horrible tearing
So VMR7 renderless is my pick for now. The only problem is the lack of VMR9 features like multiple resolutions, e.g. subtitles should always be crisp and not rendered at the same resolution as the video. On small res videos, subtitles are unreadable. Same when pressing TAB to get video metadata info.
Curiously, EVR fails only on the customizable one so not sure which setting is causing it. If I can find the cause, hopefully I can get VMR9 to work. I did get a new video card lately but my old one was 4x slower and I didn't get tearing issues so not sure what's wrong with this one. But my main problem is playback choppiness when increasing playback speed.
Thanks for the offer for the new script but I have no need to avoid indexing. Better it be indexed than rendered on the fly which just consumes more resources.
I kind of remember changing the PCI Express frequency in the BIOS helped with tearing on a different computer (if you can). Maybe try taking it off "auto" and setting a fixed frequency might help, given it's only started since you changed video cards.
While I was messing around with the other script I modified FFMS4 a bit. The only differences are...
Previously if an error message was anything other than "no video/audio track found" (which is ignored when Vtrack=-1 or ATrack=-1), the script would attempt to open the video/audio a second time in order to display the error message. It no longer does that and just displays the error message from the first attempt.
Also, when the error message is "not an audio track" because you specified a particular audio track with Atrack, and the track number exists but isn't audio, the script displays an FFMS4 error message rather than the one generated by FFMS2. The same applies when specifying a video track.
So it's exactly the same, only different.
Your contribution to FFMS4 is valued, as always. Are you the author or what? I've not been keeping up to date lately so ffvideosource has been my standard loading sentence for a decade now. You've broken an old habit of mine.
jagabo, that's the problem, I don't know what's wrong. The tearing is completely new but the unsmooth playback when speeding up on VLC and Potplayer has always been the case even on my old computer with the old video card. Potplayer's author assured me it's not his program but me but he's done nothing else but recommend I find another player.
That's customer loyalty for you.
MPC-HC tends to stutter when playing video with frame rates above 30fps, until I tried to play some yesterday. So I did some experimenting and it's the same for me. Some renderers stutter and some don't. It's an old PC, so I put it down to that, but VLC plays 50/60fps video fine. MPC-HC stutters with most renderers (I couldn't test EVR Custom Presenter as it no longer supports XP) and most of the other renderers played without stuttering but the audio sync was terrible, If it was in sync when I navigated to a particular spot it'd often lose sync as playback progressed.
I've settled on "System Default" as the renderer for high frame rate stuff. According to the tooltip, that means for XP it's using "VMR7 Windowed", although it's no longer a choice in the drop down list of renderers since XP support was dropped. That plays high frame rate stuff perfectly, but there's no subtitle or pixel shader support etc. Not that I'm too bothered about that, but....
As MPC-HC can be installed as a portable version and save it's settings to an ini file, I now have it "installed" in two locations. One configured normally to use "VMR9 Renderless" for most video, and another configured for "System Default". I have shortcuts for both in the Explorer right click SendTo menu, so I can double click on a file to open the standard configuration, or use the SendTo method to open a file with the other.
At some stage I might dig out an older version of MPC-HC to see if a version with XP support will also support subtitles when using VMR7, and If so I'll use the same method to switch between MPC-HC versions. I've no idea what's causing it, but as well as switching renderers I tried switching decoders, splitters and enabling/disabling hardware decoding, but changing renderers was the only thing that made a difference.
Last edited by hello_hello; 4th Apr 2019 at 09:39.
I was going to test multiple frame rates for a more accurate experiment but Avisynth scripts are no longer opening in Potplayer all of a sudden so I'll have to wait till that's fixed.
From what I understand you're still using Windows XP? I was a long time XP fan for almost 15 years before upgrading but you make me look like an innovator. How's that working out for you? How do you even make it work on modern hardware? It was a pain in the ass to get this damn 2017 PC to work on Windows 7. I can't imagine trying to install XP on this.
About FFMS, it couldn't open VP9 videos but previous versions couldn't either so that's probably not your fault. I could've sworn I was able to do it before. I must've used dss2. Meh.
Yeah I'm still using XP. Mainly because the PCs had XP installed when they were built (yes, they're getting a bit old). The main reason I haven't upgraded them in a hurry is I don't want to upgrade Windows.
I was at the other half's house last week. We were watching a movie. A movie on my USB hard drive connected to her laptop which was connected to the TV via HDMI. Just as I'd convinced dual display mode to work and the video was running fullscreen on the TV, up popped a message regarding Windows "goodness" and rebooting (or some retarded term for Windows updates). That locked the cursor on the TV screen for some reason. It wouldn't move back to the laptop display so I could dismiss the message. I think I had to disconnect the TV.
About an hour later, the message popped up again, this time on the TV and over the video. And about another hour later, it popped up and interrupted the movie a second time. How do people put up with that crap?
However, no matter what version of Windows, I ALWAYS turn off ALL automatic updating. If my PC worked yesterday, I want it to work today. I never update Windows and, despite dire warnings, have never had a virus or any other form of malware. I also never use any anti-virus because I've had to fix dozens of PCs from friends, neighbors, and clients that have been totally trashed by anti-virus software that slows down everything.
I do, however, have a very rigorous and "clever" backup routine so that if something does eventually happen, I can get back to my working PC in less than ten minutes.
Like you, I do wonder how people put up with PCs that operate so poorly and which seem to be operated by someone else half the time, as though Microsoft or the app vendor was running the PC by remote control.
I didn't mention.... the laptop has Win10 installed, so you can't disable that crap. She claims she didn't want to upgrade Windows. She went to bed one night owning a laptop with Win7 installed, and the next morning it was running Win10. She swears she never gave it permission to install.
As old as XP is, and keeping in mind it is tweaked to my liking, every time I use a computer with a newer version of Windows, returning to my old PC running XP still feels like an upgrade.