I downloaded a movie which has got Chinese subtitles hard cored in it. How can I remove them ??
I want to hardcore English subtitles in it. Is there any easy way out to do so ??
+ Reply to Thread
Results 1 to 29 of 29
Well your best bet is to simply overlay english subtitles over the chinese subtitles (in otherwords don't remove the chinese subtitles first, hardcode the english subtitles over the chinese subtitles).
If you were to remove the hardcoded subtitles only you would get a watery afterimage that is, in my opinion and most others too, is worse than anything you are trying to remove.
Simply put follow any hardcoding subtitles guide to add your english subtitles over the chinese subtitles.
You will need to read up on masking and mapping if these are irregular. In other words if they aren't in the same spot all the time you'll have to be creative to get the new subtitles to overlay properly.
search for "hardcode subtitles" and you'll get a bunch of results.
Edit or search for "burn in" or burnt subtitles.Donatello - The Shredder? Michelangelo - Maybe all that hardware is for making coleslaw?
Yeah, best is to just overlay.
Put a dark background (semitransparent preferably) behind your new subs to obscure the Chinese ones.
I used Subtitle Creator to make SUP format (bitmap) subtitles, and then DVDSubedit to adjust the background.
That's if your player can use SUP subtitles, then you don't have to reencode your original video to "burn in" the new subs.
Last edited by Baldrick; 19th Feb 2017 at 02:09.
As you know some movies have hard coded subtitles on them. When I want to use my desired soft subtitle, the underneath hard coded ones annoyes me.
So I come up with this Avisynth script using internal Avisynth filters, Virtualdub filters (2 of them Bright.vdf "brightness/contrast (UI-enhanced)(1.0) by Avery Lee/Donald Graft and exorcist.vdf by Christopher Wojdon), and dekafka.avsi by poptone.
You can use this script to remove hard coded subtitles or Logos.
All you need to do is to;
1) Edit the Virtualdub plugin direcotry path in LINE 1 and LINE 2 according to your computer.
2) Check your video, find a suitable scene with the longest subtitle, save the image of the screen, then write down the Top Left Corner coordinates (X and Y) of the longest subtitle. Let's say it is X=238 Y=470. Then edit the script line 3 and 4 in order to write those coordinates into the variables SubtitleTopLeftX and SubtitleTopLefty respectively.
3) Then Please replace the text "Pandora (2016).HARDSUB.WEB.HEVC.720p.mp4" in line 5 with your source video name.
LINE 3 SubtitleTopLeftX = 238
LINE 4 SubtitleTopLeftX = 470
LINE 5 clip = FFVideoSource("Pandora (2016).HARDSUB.WEB.HEVC.720p.mp4").ConvertToRGB32( )
4) You can feed this scipt to MeGUI (it's the fastest) and encode your video. Please note that I have not included audio in this script to keep it simple and trouble free. You can mux the audio afterwards by using any tool like mkvmerge, AviDemux etc.
Since you have dug up an old thread to tout your script, it may be a suggestion that you upload a small example of 'before' and 'after' since it is my understanding that removal is at best a compromise and no one would want to spend hours on a job and then be disappointed - you can do something basic with a blur filter in vdub or just treat the subs as a logo and use a logo removal filter
Just my 2 cents.
Last edited by Lathe; 30th Mar 2017 at 17:36. Reason: lousy grammar : )
Avisynth expert, but I THINK that you have to be sure to put at least the 2 files from the folder DL'd here in your Avisynth 'plugins' folder. The file that ends in .avs and the file that ends in .avsi
Last edited by Lathe; 31st Mar 2017 at 14:19. Reason: Sucky spelling : )
As it says in the error message, core is mentioned in line 55 in the hsr.avs. I haven't tried this method (and have no use for it) so I can't help more than that.
Avisynth plugins. I'm kinda confused... Is the script a combination of both?
Can we JUST use Avisynth? I know NOTHING of how to use VirtualDub scripting.
That's better with core.
Here's a quick look at the result:
In order, source:fitered:new Subs.
[Attachment 41115 - Click to enlarge]
[Attachment 41116 - Click to enlarge]
[Attachment 41117 - Click to enlarge]
When the new subs are in place, the results are very good.
Just erasing the original is mildly distracting - perhaps tweaking would make it less so.
The script calls the plugins which are assumed to be in the VirtuaDub plugins folder, so VirtualDub doesn't have to be running MPC will play the script OK, but you have to get the audio back at some point so it's convenient to open the script in VirtualDub for that chore - and new subs if required.
Looking at the results in the above replies it seems that those in reply #9 are somewhat misleading since it is mostly a dark background.
When one comes to reply #18, now with a much lighter background, the result is, IMHO, much worse that using a simple logo removal vd plug-in. Replace with more subs and, naturally, the disturbance goes. But you could achieve that much quicker with a simple black overlay.
Maybe the results can be improved by tweaking the script but for me, as it stands, it is not a credible solution.
Again. Just my 2 cents.
So, for future reference, in general, is it EVER really necessary or desired to incorporate VD plugins when using Avisynth, or are there generally speaking enough ways or plugins JUST using Avisynth usually to get the job done?
BTW, whenever I personally use Avisynth, I ALWAYS am using x264 to process it, not any of these other programs or VD. So, for my limited intellect, it would be nice if I only have to focus on using Avisynth to do what I want and them simply plug it in to x264.
Would there ever really be a dire need to complicate things beyond that, do you think...?
VirtualDub filters that I still prefer over any AviSynth equivalent that I am aware of - Deshaker mainly, but also ColorTools (among other features, it has the best out-of gamut warning), and Kagayaki (a starburst/bloom/lens-flare filter). I'm not familiar with Bright, Coring or Excorcist.
VirtualDub filters can be ported to AviSynth as Skier70 has done, but the process is a bit cumbersome. It's nice to have a GUI for tuning the filters, but once set up, the parameters can be copied to AviSynth.
I tried many times to get this script to work either i missed a step but. I get an error about no function named loadvirtualdubplugin so i googled it. someone used. LoadPlugin("pathtoMEGUI\tools\avs\plugins\VDubFilt er.dll") and i get error opening exocist.vdf
[Attachment 53961 - Click to enlarge]
[Attachment 53962 - Click to enlarge]
This topic always reminds me of Ferris Beuller, where he's running the car in reverse to take off miles
You're trying to unring a bell.
This will never, ever, work.
- At best, you make a mess.
- At worst, you make a mess.
The only solution = getting better source, sans subtitles baked in.
"Subtitle removal" is a fool's errand.
Even manual removal, frame by frame, can be impossible.
Here's one I did a number of years back using the MSU subtitle remover in Virtualdub.
I found the filter to be temperamental and eventually I used a really old version of Vdub for better compatibility.
Doesn't win any awards for beauty or video quality; there's even a few spots where it's apparent I didn't make
the mask wide enough, but the movie is watchable and the result not too distracting.
I suggest you to use portable Universal Installer Universal Avisynth Installer [2020-06-20]
Forum Page: https://forum.doom9.org/showthread.php?t=172124
Link is from Groucho's Avisynth Folder
Uncompress, run setavs.cmd with admin rights.
..Then try to uninstall X86 with option 9 and then X64 with option 10. Always start as clean as possible.
..After that, install AVS60_MT (option 4)
..And then please copy all your plugins, .avs scripts in the following folder
You can double check your Avisynth info with AviInfoTool, and make sure no conflicts or error regarding plugins.
You can load your script to AVSPMod check if it's running, or the nature of the error.
Finally and hopefully you should be able to use "LoadVirtualdubplugin" function.
You don't need to use any VirtualDub plugins. You can use AviSynth filters (mt_binarize, for example) to create the mask. Starting with Sambat's image and using dekafka:
ImageSource("source.jpg", start=0, end=23, fps=23.976) Crop(0,1,-0,-0) ConvertToYV12() # most people will be starting with YV12 # area where subs appear, in practice you'll want to use a box as big as the biggest sub bx = 80 by = 260 bw = 420 bh = 48 block = Crop(bx, by, bw, bh) smask = block.mt_binarize(200).mt_expand().mt_expand().mt_expand().mt_expand(chroma="-128") # get bright white text, expand to cover black outline smask = Overlay(smask, smask, x=3, y=3, mode="add") # cover drop shadow too smask = smask.Blur(1.4) # blur the edges of mask to make it less obvious DeKafka(last.ConvertToRGB32(), smask.ConvertToRGB32(), bx, by, bw, bh, 255) # an infill that works in YV12 would be better
[Attachment 54035 - Click to enlarge]