View Full Version : xy-VSFilter Project (High Performance VSFilter Compatible Subtitle Filters)
Eamon
25th February 2015, 00:55
If you are hardcoding, you need to use xy-VSFilter not XySubFilter.
Ah, I see. I didn't know that. I use XySubFilter to watch vids with styled subtitles on MPC.
Once I try hardcoding with xy-VSFilter, I'll let you know if it worked. Hopefully, it should.
By the way, is VSFilterMod outdated in comparison with xy-VSFilter? As in... is there any advantages of using VSFMod over xy-VSF?
cyberbeing
25th February 2015, 05:07
Ah, I see. I didn't know that. I use XySubFilter to watch vids with styled subtitles on MPC.
Once I try hardcoding with xy-VSFilter, I'll let you know if it worked. Hopefully, it should.
And I have to ask. Considering you already use XySubFilter, are you sure require hardsub (encode subtitles into the video, no subtitle filter required for playback) of your typesetting instead of softsub (mux into an mkv or external script, real-time subtitle filter playback)? Generally speaking, you should only hardsub something as a last resort since it hurts video compression. What exactly is your intended end goal and use-case?
By the way, is VSFilterMod outdated in comparison with xy-VSFilter? As in... is there any advantages of using VSFMod over xy-VSF?
Different purposes, as they clearly state on the VSFilterMod project page.
DON'T USE MOD VERSION FOR SOFTSUB. ONLY FOR HARDSUB! This is karaoke tool.
VSFilterMod is intended for hardsubbing only and contains extra tags and functionality at the expense of compatibility. If you are an advanced user who has already hit the limit of what is easily possible standard VSFilter, it may be easier to create some extremely complex typesetting or karaoke effects. Scripts authored by VSFilterMod are not intended for playback or distribution as external or softsubbed scripts. VSFilterMod is not your only option in this hardsub only, advanced effect, category. There are also things like SSBRenderer (http://forum.doom9.org/showthread.php?t=169951) which have started to define their own typesetting subtitle format, not even using ass scripts as a base.
xy-VSFilter is general purpose, and maintains a generally static feature set and tag behavior matching legacy VSFilter 2.39 (last official version released by original author Gabest, with behavior generally considered to define the .ass spec itself) with broad compatibility and interoperability in mind. It is intended for authoring, playback, softsubbing, hardsubbing, as well as external script distribution. The primary goal of xy-VSFilter specifically, is playback performance of complex typesetting and karaoke. xy-VSFilter also happens to be the default subtitle renderer for script authoring in Aegisub, and should generally be compatible for playback with MPC-HC VSFilter and Libass as well.
XySubFilter is intended for playback only. It allows higher quality subtitle rendering than xy-VSFilter, as well as scaling to high resolution in a VSFilter compatible way to maintain general visual appearance matching that of hardsubbing.
Eamon
25th February 2015, 22:41
And I have to ask. Considering you already use XySubFilter, are you sure require hardsub (encode subtitles into the video, no subtitle filter required for playback) of your typesetting instead of softsub (mux into an mkv or external script, real-time subtitle filter playback)? Generally speaking, you should only hardsub something as a last resort since it hurts video compression. What exactly is your intended end goal and use-case?
Well, I generally just mux standard subtitles. But for signs and other styled typesetting, I hardsub it because the native video is usually 720p so when I zoom fullscreen on a 1080p resolution, the hardcoded subs will stretch/blur similar to the video itself. If it was softsubbed, the styled subs would still look clear and therefore "unnatural." The purpose of the styled subs is to translate the original signs and naturally embed them into the video as if it was native.
VSFilterMod is intended for hardsubbing only and contains extra tags and functionality at the expense of compatibility. If you are an advanced user who has already hit the limit of what is easily possible standard VSFilter, it may be easier to create some extremely complex typesetting or karaoke effects. Scripts authored by VSFilterMod are not intended for playback or distribution as external or softsubbed scripts. VSFilterMod is not your only option in this hardsub only, advanced effect, category. There are also things like SSBRenderer (http://forum.doom9.org/showthread.php?t=169951) which have started to define their own typesetting subtitle format, not even using ass scripts as a base.
Thanks for the explanation. Really appreciate how you spent time explaining it. :)
xy-VSFilter is general purpose, and maintains a generally static feature set and tag behavior matching legacy VSFilter 2.39 (last official version released by original author Gabest, with behavior generally considered to define the .ass spec itself) with broad compatibility and interoperability in mind. It is intended for authoring, playback, softsubbing, hardsubbing, as well as external script distribution. The primary goal of xy-VSFilter specifically, is playback performance of complex typesetting and karaoke. xy-VSFilter also happens to be the default subtitle renderer for script authoring in Aegisub, and should generally be compatible for playback with MPC-HC VSFilter and Libass as well.
So I tried using xy-VSFilter to hardcode the subs this time. I couldn't get the avs script to load in Hybrid. I got the following message:
"Didn't find a 'frame rate' info node! -> Stream will be ignored"
I'm assuming it means I'm supposed to specify a framerate number somewhere in the avs script. But I hardly know how to use avs. This is how my current script (which I based on from somewhere on the net) looks like:
LoadPlugin("C:\Users\User\Desktop\encoding\MeGUI_2418_x86\tools\ffms\ffms2.dll")
FFVideoSource("C:\Users\User\Desktop\project\VID.mkv", threads=1)
#deinterlace
#crop
#resize
#denoise
LoadPlugin("C:\Users\User\Desktop\encoding\MeGUI_2418_x86\tools\avisynth_plugin\VSFilter.dll")
TextSubMod("C:\Users\User\Desktop\project\Hardcoding.ass", 1)
The VSFilter.dll is the xy-VSFilter. And the ffms2.dll is ffmpegsource latest dll (June 2014 I believe). Normally, once the avs script is loaded, I get the mediainfo encoding settings of the source video, convert it into x264 CLI command, copy and past it into Hybrid and apply. Then run the job, and it works. But I can't even begin any of that because Hybrid ignores it all due to some 'frame rate' info node problem. Any ideas?
Moragg
26th February 2015, 04:36
Hi there! Love all the stuff you guys are doing, I have one (small) issue that requires a very particular "solution":
Currently I'm using SVP to motion-interpolate panning scenes (works amazingly and is so much easier on the eyes). This is what I think currently happens:
Splitter (LAV)
Interpolation (SVP - an avisynth plugin called from ffdshow raw video filter)
Upscaling (madvr)
Subs & Typesetting (xy-subfilter)
Which works great - except for moving subtitles which look awful as they are not interpolated but the scene behind them is. Ideally it'd look like:
Splitter (LAV)
Typesetting (xy-subfilter)
Interpolation (SVP)
Upscaling (madvr)
Subs (xy-subfilter)
i.e. just the moving typesets (those lasting ~1 frame) need to be done before interpolation. Is it remotely easy and/or possible to do this beforehand, maybe by having a different subtitle renderer appear pre-interpolation for the moving typesets?
I realise its probably a lot more work than any of you would consider, so please think of it more theoretically - if it isn't I can just abandon all hope of it ever occurring.
One other beneficiary of this would be pixel art, which has to be rendered pre-resizing to work correctly, but isn't currently. Having a selective pre-scaling sub filter could be a useful thing.
cyberbeing
26th February 2015, 07:06
LoadPlugin("C:\Users\User\Desktop\encoding\MeGUI_2418_x86\tools\ffms\ffms2.dll")
FFVideoSource("C:\Users\User\Desktop\project\VID.mkv", threads=1)
#deinterlace
#crop
#resize
#denoise
LoadPlugin("C:\Users\User\Desktop\encoding\MeGUI_2418_x86\tools\avisynth_plugin\VSFilter.dll")
TextSubMod("C:\Users\User\Desktop\project\Hardcoding.ass", 1)
First, it should be TextSub and not TextSubMod if using normal VSFilter/xy-VSFilter. That alone would cause the avs script to throw an error, since the required function would not exist. Also, you'd normally load all your plugins at the beginning of script. If you are still getting a framerate error, try adding AssumeFPS (http://avisynth.nl/index.php/AssumeFPS) after FFVideoSource with your decoded video framerate. If that still doesn't work, move AssumeFPS after your #deinterlace, and set it to whatever the resulting framerate should be after deinterlacing+decimation.
Preview your script output with AvsPmod (https://avspmod.github.io/) to ensure it is functioning correctly.
Which works great - except for moving subtitles which look awful as they are not interpolated but the scene behind them is. Ideally it'd look like:
Splitter (LAV)
Typesetting (xy-subfilter)
Interpolation (SVP)
Upscaling (madvr)
Subs (xy-subfilter)
i.e. just the moving typesets (those lasting ~1 frame) need to be done before interpolation. Is it remotely easy and/or possible to do this beforehand, maybe by having a different subtitle renderer appear pre-interpolation for the moving typesets?.
XySubFilter does render subtitles at final video framerate (i.e. after SVP) at least with madVR. This will only improve the smoothness of animated tags though, like \move \t \fade. A lot of 'moving' typesetting nowadays isn't actually moving. Instead it's done static frame-by-frame with motion tracking based on absolute frame timestamps of the original video fps. There is no easy way to detect and reverse this process in the subtitle filter.
The workflow you are describing is beyond the scope of XySubFilter itself. Theoretically SVP developers could do this if they really wanted to though. It'd likely either involve writing a subtitle consumer+provider which sits between XySubFilter and madVR and performs SVP interpolation, or integrating SVP into a video renderer which supports a subtitle consumer. Otherwise, the only solution nowadays is to not use SVP interpolation at all, and just perform 'smoothmotion' frame-rate-conversion blending as supported by madVR and other renderers.
With xy-VSFilter you can already do something like this with video resolution subtitles, if you really want to use SVP. Install LAV Video. Install "FFDShow Raw Video Filter" only, and set to a merit of 00800002 in MPC-HC external filters. Set DirectVobSub(auto-loading version) to 00800003 in MPC-HC external filters. And you should end up with a graph like the following with SVP interpolating video+subtitles:
http://i.imgbox.com/lYphBIWm.png
Moragg
26th February 2015, 08:15
XySubFilter does render subtitles at final video framerate (i.e. after SVP) at least with madVR. This will only improve the smoothness of animated tags though, like \move \t \fade. A lot of 'moving' typesetting nowadays isn't actually moving. Instead it's done static frame-by-frame with motion tracking based on absolute frame timestamps of the original video fps. There is no easy way to detect and reverse this process in the subtitle filter.
The workflow you are describing is beyond the scope of XySubFilter itself. Theoretically SVP developers could do this if they really wanted to though. It'd likely either involve writing a subtitle consumer+provider which sits between XySubFilter and madVR and performs SVP interpolation, or integrating SVP into a video renderer which supports a subtitle consumer. Otherwise, the only solution nowadays is to not use SVP interpolation at all, and just perform 'smoothmotion' frame-rate-conversion blending as supported by madVR and other renderers.
With xy-VSFilter you can already do something like this with video resolution subtitles, if you really want to use SVP. Install LAV Video. Install "FFDShow Raw Video Filter" only, and set to a merit of 00800002 in MPC-HC external filters. Set DirectVobSub(auto-loading version) to 00800003 in MPC-HC external filters. And you should end up with a graph like the following with SVP interpolating video+subtitles:
http://i.imgbox.com/lYphBIWm.png
The lack of animated tags is indeed the issue :( I think I'll avoid interpolating normal subs though, its worse having all subs blurry than the (very rare) moving typesets annoying.
You did give me (a perhaps "easy") to implement idea: couldn't there be two subtitle renderers? One (xyvsfilter) pre-SVP to render only pixel art / the frame-by-frame typesetting, and one post-scaling (xysubfilter) to do all the rest?
It seems then the hard part (coding subtitle renderers) could be ignored, all it would need is filter(s) to decide which subs should be rendered when, probably based off duration of the subtitle.
Since the two subtitle renderers would have the same filter they don't need to communicate at all - and one would hope running two very similar things wouldn't cause any issues.
cyberbeing
26th February 2015, 12:56
You did give me (a perhaps "easy") to implement idea: couldn't there be two subtitle renderers? One (xyvsfilter) pre-SVP to render only pixel art / the frame-by-frame typesetting, and one post-scaling (xysubfilter) to do all the rest?
It seems then the hard part (coding subtitle renderers) could be ignored, all it would need is filter(s) to decide which subs should be rendered when, probably based off duration of the subtitle.
Since the two subtitle renderers would have the same filter they don't need to communicate at all - and one would hope running two very similar things wouldn't cause any issues.
Currently that's not possible, nor would we have any interest in supporting a solution which requires more than a single subtitle filter:
XySubFilter and xy-VSFilter are two distinct filters which share no resources, nor are they able to communicate.
XySubFilter and xy-VSFilter share the same api, and cannot co-exist in the same graph since without conflicts.
If someone were going to do this properly, they should base it off valid SubRenderIntf.h (http://madshi.net/SubRenderIntf.h) logic utilizing a single subtitle renderer. The simplest way would be for someone to take up development of our already existing yet rather broken XySubFilterConsumer project, fix all the bugs, and give it the role of pre-SVP. Then someone would need to modify XySubFilter provider to support two subtitle consumers (pre-scale & post-scale), along with a proper heuristic. We currently have zero active developers though, so it's very unlikely something like this would be worked on by us.
I still think you'd better off convincing a video renderer developer to integrate SVP-like frame interpolation and work from there, rather than create a hackish solution like this.
Moragg
26th February 2015, 13:51
Currently that's not possible, nor would we have any interest in supporting a solution which requires more than a single subtitle filter:
XySubFilter and xy-VSFilter are two distinct filters which share no resources, nor are they able to communicate.
XySubFilter and xy-VSFilter share the same api, and cannot co-exist in the same graph since without conflicts.
If someone were going to do this properly, they should base it off valid SubRenderIntf.h (http://madshi.net/SubRenderIntf.h) logic utilizing a single subtitle renderer. The simplest way would be for someone to take up development of our already existing yet rather broken XySubFilterConsumer project, fix all the bugs, and give it the role of pre-SVP. Then someone would need to modify XySubFilter provider to support two subtitle consumers (pre-scale & post-scale), along with a proper heuristic. We currently have zero active developers though, so it's very unlikely something like this would be worked on by us.
I still think you'd better off convincing a video renderer developer to integrate SVP-like frame interpolation and work from there, rather than create a hackish solution like this.
Very interesting. I never expected you to work on it, nor did I ever hope madshi would incorporate interpolation into madvr (which would be ideal). My hack was the best thing I could up with, but as you've said it can never work so I'll forget about it.
cyberbeing
26th February 2015, 14:52
Very interesting. I never expected you to work on it, nor did I ever hope madshi would incorporate interpolation into madvr (which would be ideal). My hack was the best thing I could up with, but as you've said it can never work so I'll forget about it.
The only solution today which doesn't require any coding effort, would require splitting up your scripts manually, since it is possible to use both xy-VSFilter and the MPC-HC ISR together if you set BlockVSFilter to False.
I do wonder if it is possible for madVR to add an option to apply smoothmotion style blending for subtitles, to at least resolve the fbf stuttering issue in scenarios like SVP or other subtitle framerate -> video framerate mismatches. I could imagine something like madVR requesting XySubFilter send subtitles at the original video typesetting framerate (via tag, or source filter framerate), then blending based on mismatches to the actually video timestamps. madshi isn't taking feature request right now, but I'll keep this issue in mind for the future. You may want to try fielding the idea at the MPDN dev as well, and see if he could make it possible to implement a solution via a custom Render Script or otherwise.
Moragg
27th February 2015, 01:31
The only solution today which doesn't require any coding effort, would require splitting up your scripts manually, since it is possible to use both xy-VSFilter and the MPC-HC ISR together if you set BlockVSFilter to False.
I do wonder if it is possible for madVR to add an option to apply smoothmotion style blending for subtitles, to at least resolve the fbf stuttering issue in scenarios like SVP or other subtitle framerate -> video framerate mismatches. I could imagine something like madVR requesting XySubFilter send subtitles at the original video typesetting framerate (via tag, or source filter framerate), then blending based on mismatches to the actually video timestamps. madshi isn't taking feature request right now, but I'll keep this issue in mind for the future. You may want to try fielding the idea at the MPDN dev as well, and see if he could make it possible to implement a solution via a custom Render Script or otherwise.
Thank you! Again I think its a rare problem, and not one worth worrying about for if it would require much effort.
I'll hold out hope that madshi at some point likes the idea of true interpolation, after madvr v1.x
Eamon
27th February 2015, 06:41
First, it should be TextSub and not TextSubMod if using normal VSFilter/xy-VSFilter. That alone would cause the avs script to throw an error, since the required function would not exist. Also, you'd normally load all your plugins at the beginning of script. If you are still getting a framerate error, try adding AssumeFPS (http://avisynth.nl/index.php/AssumeFPS) after FFVideoSource with your decoded video framerate. If that still doesn't work, move AssumeFPS after your #deinterlace, and set it to whatever the resulting framerate should be after deinterlacing+decimation.
Thanks. Yep, the problem was the "TextSubMod." I forgot that only VSFilterMod needed the "Mod" part in the avs script.
So I finally tested it out, and xy-VSFilter successfully hardcoded styled text that were rotated in the x and y axes. But the only problem is this came at the cost of certain styled karaoke I made. The karaoke required VSFilterMod to be correctly interpreted when hardcoded. With xy-VSFilter, the karaoke just goes bananas and isn't rendered properly.
This leads me to a new question. Is there a way to use two filters, VSFilterMod and xy-VSFilter to hardcode different parts of the video. I don't mean splitting the video into segments. I'd rather not split, since that would mean more rendering thus losing more quality. But being able to load specific filters for specific durations in a single hardcoding process. Is it possible to write such a command in an avs script?
cyberbeing
27th February 2015, 08:01
This leads me to a new question. Is there a way to use two filters, VSFilterMod and xy-VSFilter to hardcode different parts of the video.
If you load both VSFilter.dll and VSFilterMod.dll as plugins, it would give you access to both TextSub and TextSubMod. Move your VSFilterMod karaoke into a separate script and load it with TextSubMod. Move your standard VSFilter typesetting into a separate script and load it with TextSub. The order of your TextSub/TextSubMod commands would determine the blending order.
LoadPlugin("LSMASHSource.dll")
LoadPlugin("VSFilter.dll")
LoadPlugin("VSFilterMod.dll")
LWLibavVideoSource("source.mkv")
TextSub("vsfilter_typesetting.ass")
TextSubMod("vsfiltermod_karaoke.ass")
Eamon
27th February 2015, 14:30
I see. But what does blending order mean?
Also, I noticed you used LSMASHSource.dll. Was that on purpose? Is it better to use that plugin rather than ffmpegsource?
cyberbeing
27th February 2015, 16:02
I see. But what does blending order mean?
Subtitles will be alpha-blended onto the video frame in the order you have your TextSub/TextSubMod commands in your avs script. You can think of it in terms of layers. In my previous example, the TextSub typesetting would be blended first as the bottom layer, while the TextSubMod karaoke would be blended afterwords as the top layer.
Also, I noticed you used LSMASHSource.dll. Was that on purpose? Is it better to use that plugin rather than ffmpegsource?
No particular reason in this case, it's just what I had available at the moment when I was testing. LWLibavVideoSource is essentially the L-SMASH-Works equivalent of FFVideoSource from FFMS2.
Eamon
27th February 2015, 16:28
Thanks a huge bunch, cyberbeing, for the help and explanation. It's very difficult to find specific answers for specific problems on the net :)
maverick477f
9th March 2015, 23:19
Hello,
I have a question that maybe someone could answer.
When I use \fad (or \t(\alpha&HFF&)) in Aegisub (also visible in MPC-HC), with xy-VSFilter as renderer, border of the text becomes thinnier. This bothers me since I noticed it and I don't know if its supposed to look that way because with libass there is no change to the border (that I can see, anyway).
To make things easier I'm attaching an archive with four screenshots.
xyVSFilter_01.png - frame before fade starts
xyVSFilter_02.png - next frame
libass_01.png - frame before fade starts
libass_02.png - next frame
And the line:
{\fs500\shad0\1c&H00F6C3F4&\bord1\fade(0,1000)}TEXT
cyberbeing
11th March 2015, 00:54
It doesn't actually become thinner, it's only an illusion since the subpixel overlap between the border and body fades out of existence too quickly with VSFilter. The reason for the discrepency between VSFilter and Libass in this regard I believe is Issue #145 (There is a subpixel gap between the main glyph and the border) (https://code.google.com/p/xy-vsfilter/issues/detail?id=145). This was already fixed in XySubFilter Beta2 (with some limitations regarding text overlaps), but not yet with xy-VSFilter.
maverick477f
11th March 2015, 19:04
I see, so I decided to test xySubFilter.
I uninstalled everything, checked if xy-vsfilter.dll is unregistered and installed up to date Kawaii Codec Pack with xySubFilter 3.1.0.705 Beta 2. To my surprise there is no difference.
{\pos(603,45)\an5\be1\1c&H00F6C3F4&\t(1310,2110,\alpha&HFF&)}I be
I also tried to recreate Issue #145, tested line is
{\pos(603,45)\1c&H000000&\3c&H000000&\bord5}be
with secondary color alpha 55.
Font is Arial.
http://anony.ws/i/2015/03/11/text.th.png (http://anony.ws/image/DAho)
cyberbeing
12th March 2015, 14:11
Are you positive XySubFilter is being used? You'll need to ensure the MPC-HC ISR is disabled. Uncheck Playback -> 'Use built-in subtitle renderer' in MPC-HC setting, and confirm that XySubFilter is present under the filters context menu during playback. Also, if your test video has no audio track, you'll need to set XySubFilter General->Loading setting to 'Always Load'.
I cannot reproduce this, which is expected unless there is some discrepancy about your script+video which you aren't telling me about. If you are still seeing this problem when XySubFilter is used, I would request that you upload a complete sample (video+script+font) which can easily reproduce this. As mentioned, this should not happen with XySubFilter unless the bounding boxes from two lines are overlapping. That was the entire purpose of XySubFilter Beta2 introducing an 'addition draw' method to be used instead of 'alpha blending' when possible.
a8213711
12th March 2015, 16:06
Using MPC-HC I can't cycle through XySubFilter subs with keyboard shortcuts. Is this possible? If not, I think it should be implemented.
cyberbeing
12th March 2015, 22:57
Using MPC-HC I can't cycle through XySubFilter subs with keyboard shortcuts. Is this possible? If not, I think it should be implemented.
If they are internal subtitles, it's possible to cycle through by pressing 's' in MPC-HC. MPC-HC has not yet implemented support for cycling through external subtitles, or toggling subtitles on/off (directly) via hotkeys. This was part of this feature request (https://trac.mpc-hc.org/ticket/4122) from last year to support VSFilter api functionality in MPC-HC, but nothing has happened with it yet.
MPC-BE has already had full hotkey support for VSFilter/xy-VSFilter/XySubFilter for many years now, and so have players like ZoomPlayer. Support for the VSFilter api goes beyond just hotkey support, and also allows features like drag/drop, menu support, subtitle delay, and other such features to function.
maverick477f
13th March 2015, 00:43
Also, if your test video has no audio track, you'll need to set XySubFilter General->Loading setting to 'Always Load'.
Well, you can consider my issue resolved and thank you for your time. I will use xySubFilter for playback from now on.
One last question though, will xySubFilter be able to fade overlapping text in the future like libass can?
cyberbeing
13th March 2015, 09:29
One last question though, will xySubFilter be able to fade overlapping text in the future like libass can?
I assume you mean fade overlapping text without a subpixel gap between border and body. Unfortunately, the answer is probably not. Our developer didn't have much interest refactoring the alpha blending code to compensate for all corner cases. He deemed that adding the draw method was a more straightforward way to target the problem cases directly, simpler to implement, and likely better for overall performance.
With XySubFilter's current method, only the portions of the bounding boxes which overlap will use alpha blending, while non-overlapping portions will use the draw method. It's not an all or nothing thing. The main problem comes when the text is 3d transformed, since the bounding boxes are rectangular and can result in a false positives in terms of overlap from the excess empty space. In that respect, the overlap detection code could be improved if someone came up cache friendly method of dealing with the problem.
romulous
22nd March 2015, 07:56
Hi cyberbeing,
I have a sample clip here that shows the subs as transparent with xyVSFilter (3.0.0.306) and XYSubFilter (3.1.0.705). The nightly MPC-HC version of VSFilter.dll shows them non-transparent though, which is the desired effect:
https://dl.dropboxusercontent.com/u/105555957/Transparent.mkv (10.0MB)
Is this something that could be corrected in xyVSFilter and XYSubFilter?
Thanks,
romulous
cyberbeing
22nd March 2015, 09:42
I'm aware of this issue. The fix which MPC-HC used to support animated (fade-in/fade-out transparency) VOBSUB (https://github.com/mpc-hc/mpc-hc/commit/ec3fd94a) doesn't function with xy-VSFilter. The current behavior is a workaround to at least allow something to be shown rather than nothing (like VSFilter 2.39), but I'm unsure how to fix this properly without our developer around. I suspect somewhere in the queue or render code he is making assumptions that bitmap subtitles like VOBSUB would never be animated.
GCRaistlin
1st April 2015, 15:36
I've got the DVD and external subtitles for it. If I open the DVD with MPC-HC (via VIDEO_TS.IFO), start playing the movie and then open external subtitles via built-in subtitle renderer, they're displayed correctly. If I open them via XySubFilter, they're being displayed too early. But if I open the movie via VTS_01_0.IFO and then open external subtitles via XySubFilter, they work OK.
cyberbeing
1st April 2015, 20:51
Wasn't it you who asked this same question last year?
Taken at face value, I'm not sure what can be done about that when the DVD has adverts and menus before the main title. You'd probably just need to shift the timings of the external subtitle to compensate for the discrepancy.
Did the behavior you describe still function as you expect with MPC-HC VSFilter (rather than ISR)? If it does, maybe this could be fixed. If doesn't, I'd suggest filing a bug with MPC-HC since I have no idea how they are handling this with the ISR and if whatever they are doing is still possible with external filters like VSFilter or XySubFilter.
I assume MPC-HC must either shift timestamps or reset the ISR on DVD folders, so external subtitles are not shown prior to the main movie starting. It may only be able to do this, since MPC-HC itself it actually managing opening and playback of the DVD. I don't really know. One solution could be for the Subtitle Consumer (i.e. EVR-CP or madVR) to automatically compensate the REFERENCE_TIME reported by RequestFrame if they are aware of the correction needed.
GCRaistlin
1st April 2015, 21:11
Yes, it was me.
Did the behavior you describe still function as you expect with MPC-HC VSFilter (rather than ISR)?
Yes, the external subtitles are being displayed correctly with VSFilter 1.7.1.322.
they're being displayed too early
To be precise, they're being displayed too fast and, as a result, too early.
cyberbeing
2nd April 2015, 04:28
This actually seems to be a madVR bug. It's probably reporting incorrect timestamps to XySubFilter with DVDs.
I am unable to reproduce this when using XySubFilter with EVR-CP or with xy-VSFilter.
SecurityBunny
12th April 2015, 21:13
MadVR just updated to support an x64 build to go along with MPC-HC x64. Is there any possible way to get XySubFilter to function with the 64 bit versions? As it is the only thing I'm missing that is a necessity for me to completely update my 'high quality' playback setup.
sneaker_ger
12th April 2015, 21:16
Do the 64 bit builds linked on the google page not work for you?
https://code.google.com/p/xy-vsfilter/wiki/Downloads
SecurityBunny
13th April 2015, 06:55
Do the 64 bit builds linked on the google page not work for you?
https://code.google.com/p/xy-vsfilter/wiki/Downloads
Doh! I feel like an idiot, completely neglected to look at the x64 section. Thanks.
dansrfe
26th April 2015, 07:27
Is there a way to render relative to madVR's frame so that the subtitles can be rendered within the black borders when e.g. 2.4 A/R video is full-screen on a 1.78 A/R screen?
cyberbeing
26th April 2015, 08:04
Is there a way to render relative to madVR's frame so that the subtitles can be rendered within the black borders when e.g. 2.4 A/R video is full-screen on a 1.78 A/R screen?
Recently madshi stated he had finally started work on supporting this in madVR, so hopefully we'll see support sometime soon. The delay up to this point is mainly because madVR currently has no capability of rendering anything in the black borders within the normal render chain, which requires madshi to do a somewhat major refactor.
That problem is somewhat unique to madVR though. For other subtitle consumers like EVR-CP & MPDN, all they'd likely need to do is request the subtitles repositioned as described in SubRenderIntf.h (http://madshi.net/SubRenderIntf.h) and it should just work.
Magik Mark
7th May 2015, 03:27
Can somebody help with this:
I have no problem in playing xysubtitle as along as its embedded. External ones wont just load. I'm using madvr, mpcbe & reclock. All latest versions.
cyberbeing
7th May 2015, 06:32
Someone else had an issue with like this recently, and they were able to resolve it by completely uninstalling and then re-installing ReClock with default settings.
Magik Mark
7th May 2015, 06:53
I just reinstalled reclock. Same problem. Is there a particular setting? Other subfilter renderer is working fine. I just prefer xysubfilter because of its HD rendering
cyberbeing
7th May 2015, 07:18
All the user said is they removed Reclock completely, reinstalled it, and removed everything from external filters in MPC-HC and then it worked. Does it work for you with MPC-HC instead of MPC-BE? Have you tried re-installing XySubFilter? You can also try some of the troubleshooting steps I listed here (https://code.google.com/p/xy-vsfilter/issues/detail?id=193), but I'm not really sure what causes this since that user was able to resolve their problem with what I mentioned.
I suspect it's probably some kind of conflict with the ReClock Helper filter who's function has been rather mysterious and unreliable in the first place.
Magik Mark
10th May 2015, 01:48
Did a clean install of my system. Subtitle rendering for both embedded and external are now working. However, for the external the txt is not HD. Tried tinkering the setting, nothing happens. Any thought guys?
nijiko
12th May 2015, 06:41
Is this one dead?
ryrynz
12th May 2015, 08:14
I'd stay in stasis..
nijiko
13th May 2015, 03:30
There're too many bugs. And not update...
ashlar42
20th May 2015, 21:18
Could anybody be so kind as to explain the Speed Ratio functionality under "Timing" panel? Say I have NTSC subtitles and I'd like to use them converted to PAL timings (+4% speed). How should I proceed?
Thunderbolt8
24th May 2015, 00:53
There're too many bugs. And not update...which bugs, how many?
when watching movies or TV shows with .ass subs I never really spot any.
ashlar42
26th May 2015, 01:56
Recently madshi stated he had finally started work on supporting this in madVR, so hopefully we'll see support sometime soon. The delay up to this point is mainly because madVR currently has no capability of rendering anything in the black borders within the normal render chain, which requires madshi to do a somewhat major refactor.
That problem is somewhat unique to madVR though. For other subtitle consumers like EVR-CP & MPDN, all they'd likely need to do is request the subtitles repositioned as described in SubRenderIntf.h (http://madshi.net/SubRenderIntf.h) and it should just work.
Any news on this? :)
xabregas
19th June 2015, 20:29
Recently madshi stated he had finally started work on supporting this in madVR, so hopefully we'll see support sometime soon. The delay up to this point is mainly because madVR currently has no capability of rendering anything in the black borders within the normal render chain, which requires madshi to do a somewhat major refactor.
That problem is somewhat unique to madVR though. For other subtitle consumers like EVR-CP & MPDN, all they'd likely need to do is request the subtitles repositioned as described in SubRenderIntf.h (http://madshi.net/SubRenderIntf.h) and it should just work.Any news on this? :)
Will it happen this year?
jriker1
13th July 2015, 16:12
When using x-y-vsfilter with AVISynth do you have to "install" anything or just copy the vsfilter.dll to the avisynth plugin folder and reference textsub in the script?
Also I've read with vsfilter that it has some kind of box artifact around the subtitle when hard subbing, almost like it's applying the text as an image with transparent background but it's not quite transparent. Are there any noticeable artifacts that x-y-vsfilter creates?
Lastly, is there anyway to take a subtitle file that contains forced subtitles and tell it to only output the forced ones? Not sure if this can only be done in SUP files, which guessing isn't supported by x-y-vsfilter, but perhaps I'm mistaken. If it is, any way to convert a SUP file to another format and maintain the forced flag? Or do you just have to create a separate file with just the forced content and apply that?
Thanks.
JR
foxyshadis
15th July 2015, 05:11
Or do you just have to create a separate file with just the forced content and apply that?
Exactly that. Text subtitles are displayed whole or not at all; forced subtitles become separate tracks that have just the forced content.
Siso
15th July 2015, 10:11
I was wondering if it would be possible to have an option for paragraph alignment for example left aligned paragraph subtitles?
Regards.
foxyshadis
16th July 2015, 11:18
I was wondering if it would be possible to have an option for paragraph alignment for example left aligned paragraph subtitles?
Regards.
That's always been part of the SSA specs. Set the alignment field to 1 for left-justified. Unless you mean fully-justified, where width is always the same; that's not a part of the specs.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.