2008-12-28, 01:54 | Link #281 |
King of Hosers
Join Date: Dec 2005
Age: 41
|
Either two ways you can go about this.
1. Get the karaoke timed to a CFR workraw (probably what you have already done?). Then use Aegisub's transform feature with the timecodes loaded and apply that to the VFR video. 2. Get the karaoke timed to a VFR workraw, workraw in MKV format and using Aegisub of course. Then you just apply the karaoke as usual. I've always done the first, simply because it's the typical age old method and the timer is none the wiser :3. Two should work just fine with MKV and timecode support in Aegisub though. Since I'm guessing you already tried the first method I described...you might want to make sure you are correctly making the VFR video with timecodes. If those are incorrect any timing made to the video will of course be off. |
2008-12-28, 07:48 | Link #283 | |
Excessively jovial fellow
Join Date: Dec 2005
Location: ISDB-T
Age: 38
|
Quote:
Method 1 is what you want. It is done as follows: 1) you must know (or arbitrarily set to some known value) the framerate of the VFRaC raw you are using as the hardsubbing source in Avisynth; what value doesn't matter as long as you know what it is 2) to get frame accuracy, you must time the subtitles to a VFR workraw (either VFRaC AVI + separate timecodes or a VFR MKV/MP4) 3) the export is done as follows: 3.1) load subtitles into aegisub 3.2) load timecodes into aegisub 3.3) optionally load video too 3.4) file -> export 3.5) tick framerate transformation, select variable output mode and input the framerate from step 1 in the framerate box (if you have video loaded it will fill in the framerate from the video here, but for MKV/MP4 it's usually some bogus value) 3.6) export Then hardsub the exported script with avisynth as usual. Note that steps 1 and 3.5 are very important or it won't sync. This is all documented in the Aegisub manual, by the way. See http://aegisub.cellosoft.com/docs/Vi...ramerate_video and http://aegisub.cellosoft.com/docs/Exporting
__________________
|
|
2008-12-28, 10:18 | Link #284 |
Aegisub dev
Join Date: Sep 2004
Location: Stockholm, Sweden
Age: 40
|
I know I promised not to hack more on VSFilter... but I couldn't keep my fingers away.
Here's a testing version with VFR support in the Avisynth filter: www.animereactor.dk/aegisub/vsfilter-2.39e.rar If you downloaded this file before 2008-12-30 12:30 GMT+1 please re-download, there was a grave bug making it useless. In general, I reworked the Avisynth plugin interface a bit so it now supports named parameters: TextSub(clip, "file", "charset" = 1, "fps" = -1, "vfr" = "") file is the subtitle file to render. Required. charset is the encoding to assume the file is in, if it's not Unicode UTF-8 or UTF-16. Optional. I won't cover the possible values here. (If you need to use this you're doing something wrong.) fps is the FPS to assume the video is at. Optional. You could just as well just AssumeFPS the video in Avisynth instead of using this. VFR overrides this. vfr is the name of a VFR timecodes file (format 1 or 2) to use for frame times. Optional. If set, overrides all other FPS specifications. MaskSub("file", "width", "height", "fps", "length", "charset" = 1, "vfr" = "") file is the subtitle file to render. Required. width and height specify the size of the produced video frame. Required. fps specifies the FPS of the generated video. Required unless vfr is specified. length is the number of frames to generate. Required. charset is the encoding to assume the file is in, if it's not Unicode UTF-8 or UTF-16. Optional. vfr is the name of a VFR timecodes file (format 1 or 2) to use for frame times. Required unless fps is specified. TextSubSwapUV(swap) swap is a boolean, toggles (globally) whether to swap assume the U and V planes are swapped in YV12 video when rendering subtitles. VobSub(clip, file) file is the name of a VobSub format subpicture file (I don't know whether it wants the .SUB or .IDX file name) to render. Remember: This version is EXPERIMENTAL, I haven't tested it myself at all! I haven't committed the code to SVN yet, I'll commit it to guliverkli2 when I've received enough success stories and no failure stories. (If this version fails for you PLEASE PLEASE PLEASE send me a PM here or on IRC so I can look at the problem! Especially if it fails at something that worked before.) Edit: Before any questions, if you use the VFR functionality I added to VSFilter TextSub here you must not do any pre-processing of the subtitle file. The times used in the subtitle file must be the actual times, not ones adjusted for a VFRaC video.
__________________
Last edited by jfs; 2008-12-30 at 06:28. Reason: Uploaded fixed version |
2008-12-29, 01:00 | Link #285 |
P-Bfs encoder
Join Date: Dec 2008
|
ok ive done the method fluff explained but i got some weird results, the op karaoke came fine but towards the end of the episode (like 5 minutes before the end) the audio stops syncronizing and the ending karaoke didnt come up.
im going to try now your method Jsf, i will report how it goes after some test. |
2008-12-29, 21:31 | Link #286 | |
King of Hosers
Join Date: Dec 2005
Age: 41
|
Quote:
And hurrah for more jfs vsfilter h4xing, I actually have something I could test it on to see what happens and compare to the transform feature. I'd also like to know has anyone put to use more than once the MaskSub feature (already in current builds) ? I'd like to start using it but I am far too lazy to test and constantly make sure the RGBA output is a-ok . |
|
2008-12-29, 23:34 | Link #287 |
Aegisub dev
Join Date: Sep 2004
Location: Stockholm, Sweden
Age: 40
|
Now this is going off-topic for this thread...
But I've used MaskSub for one project, the Menclave Gundam 00 S2 ED1 effect. It's rendered as two separate overlays (main effect and glow effect) with MaskSub and then combined with some Avisynth magic. It seems to work flawlessly. Edit: Moving VSFilter discussion over to a relevant thread.
__________________
Last edited by jfs; 2008-12-30 at 06:37. |
2008-12-30, 07:31 | Link #288 |
\m/
Fansubber
Join Date: Jul 2008
|
I've used it a huge number of times by now, from such as simply using it to save time for encodes by not having to re-render large karaokes each episode to using it over to generate individual layers and import them into AFX in order to combine .ass effects with AFX effects, or at one point because an encoder was having trouble with a karaoke's fonts or found it easier shifting an overlay each episode compared to retiming scripts. But yes, the RGBA output in every time I've used it has been perfectly a-ok.
|
2009-01-03, 16:03 | Link #289 | |
Slower Than You
|
Quote:
E~ |
|
2009-01-07, 03:23 | Link #290 | |
Member
Join Date: Dec 2005
|
question about something. I've gotten my hands on a vfr RAW (mp4 format) and i don't want to decimate it, i want to keep the 119,88XXX FPS. What would i do? I've tried with
Quote:
I don't want to decimate it as i don't know the nullframe pattern (since my timecode file is messed). All im trying is to hardsub the MP4 into another MP4 keeping the FPS, framecount. Any help greatly appreciated. edit: forgot to mention ffmpegSource and FFVideoSource have the same outcome. I also tried avisource after converting it to AVI which works fine and i tried to decimate it using FDecimate based on a Treshold (doesn't work either). |
|
2009-01-07, 05:59 | Link #292 |
Aegisub dev
Join Date: Sep 2004
Location: Stockholm, Sweden
Age: 40
|
Your MP4 file is not "120 fps", it's true VFR. FFVideoSource writes the timecode file you name, which you can then use when re-muxing the encoded video to MKV or MP4. (I don't know how to do VFR in MP4 though.) The video output from Avisynth is VFRaC.
There are no null-frames in your MP4 file.
__________________
|
2009-01-07, 07:15 | Link #293 | |
Member
Join Date: Dec 2005
|
because i don't know the correct pattern of the frames i have to remove and the output timecode is no help as it's totally messed and has no pattern at all.
Quote:
Thanks for the replies guys. |
|
2009-01-07, 07:34 | Link #294 |
Aegisub dev
Join Date: Sep 2004
Location: Stockholm, Sweden
Age: 40
|
What do you mean by the timecodes file being a "total mess"? Sure it's not just because the VFR was auto-generated?
Most likely when that "120 fps" source was made into proper VFR when the MP4 file was produced, even if it also happened by an automatic tool. Possibly the header of the MP4 file claims it's 119.88 fps and that carries over to Avisynth, but the actual frames have timestamps that make it VFR and overrides the framerate in the header.
__________________
|
2009-01-07, 07:46 | Link #295 | |
Member
Join Date: Dec 2005
|
Quote:
0,0,125.000000 1,1,40.000000 2,2,30.303030 3,3,29.411765 4,5,30.303030 6,6,29.411765 7,8,30.303030 9,9,29.411765 10,10,30.303030 11,11,29.411765 12,13,30.303030 14,14,40.000000 15,16,23.809524 I fail to see a 100% working pattern there. I can see the timestamps but no pattern and when i try to mux it into an mkv the video is a mess. |
|
2009-01-07, 09:29 | Link #297 |
Member
Join Date: Dec 2005
|
i only converted it to v1 to post it here the v2 messes too and Decimate by Threshold is impossible on this source using a higher Threshold messes the Video even more and it will play 1 frame 3 minutes long. Then again i don't even want to decimate it.
|
2009-01-07, 14:27 | Link #300 |
Excessively jovial fellow
Join Date: Dec 2005
Location: ISDB-T
Age: 38
|
nothing really odd with this file except that the fact that libavformat (and hence ffmpegsource) reports the track time base as ~120fps for some reason (it isn't 120fps, there are no null frames to be seen anywhere)
reencoding and remuxing the result with timecodes extracted with ffvideosource works fine, I don't see what you mean by "messed up"
__________________
|
|
|