I'll try to be accurate to the facts, so read and please be patient, you might know something that perhaps will help me.
I've got these anime mkvs and i want to convert them into avis. The folks who encoded them used codec DivX503b1328p for video stream (i've got the exact version of DivX from GSpot-v2.52 i01 utility). They also used two aac files/streams for two languages of 5.1 audio. And last but not least a UTF8 subtitle (srt) and a VOBSUB also. Together with the video that makes it 5 streams.
I used these tools with this sequence to convert them. 1.alltoavi v4.14.132, 2.mkvextract v1.6.3 for GUI and mkvextract.exe, 3.wavepad v2.10, 4.vdubmod v1.5.10.2 b2542. I also used mp3gain v1.2.5 for GUI and v1.4.6 for mp3gain.exe (for the normalization of the audio, some of them where really quiet). Those experts in video converting should have figured out what i've done till now but for those who didn't these where the steps.
1. I encoded the video stream (ONLY the video) with alltoavi into avi again. Normally i wouldn't have done that because of the divx codec which can be direct stream copied with vdubmod but i'll explain why i did it in step 3.
2. I ripped the two aac audio streams and the srt sub with mkvextract.
3a. I used wavepad to convert the aacs into mp3s. I could have used the alltoavi to have also converted the audio streams for me but it only converts the first stream in order (i had two to deal with) and it produces VBR mp3 files, i wanted standard lame 128 CBR.
Normally here is where i would have provided vdubmod with the ripped avi from the mkv file and the two mp3s and it would be clear sailing from there right? Wrong! The avi stream had something i can't understand and only can describe it as VBR video stream. That normally shouldn't be allowed by this codec but sometimes i see it here and there. You see normally anime series last 22-25 minutes, depends on the series. This one is a 24:20 one. But when ripped from the mkv, time values change. Sometimes 21, other times 19, heck i've even seen 28mins in some episodes. What this whole mambo-jumbo means? It means that when combined with the mp3 i created earlier the avi produces asynchrony of sound, and that's the encoder's worst nightmare.
Fortunately i fixed that problem by allowing alltoavi to re-encode the VBR divx into divx again, only CBR this time (i don't actually know if this IS VBR video compression, i'm only guessing). And it worked... but it also created another issue along the way, and that is why i'm writing down this post.
3b. I used mp3gain here to normalize the audio.
4. I mixed the streams in Vdubmod. To summarize, the divx avi i've got from the mkv using alltoavi, and the mp3s i've got from the aacs using Wavepad.
Result:
(A river and two guys fishing.. i guess).
(Also here)
(which is something that should look like that)
(except it's a profile of the last on and also the guy in the middle was still alive.. i guess)
The picture is NOT always like that. Only for a few secs in each episode (about 30 at most cases), but it really is frustrating nevertheless. What i'm saying is that i can live with it, but i sure hope there is another way even more. I've putted too much effort into making these avis, and i've putted even more effort into understanding the whole knowledge on how to do it years and months before that. I'm sure there is a solution out there somewhere. There always is.
And another thing which has nothing to do with the present issue however it bugged me for years. In a video (DivX) , is there a way to convert a non key-frame into key-frame without re-encoding the whole thing? A program that does only that perhaps?
To those who at least read the whole post, thank you guys.
To those who will also try to help, what can i say? There are no words.
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays! or rip iTunes movies!
+ Reply to Thread
Results 1 to 28 of 28
Thread
-
-Good Things Come to Those Who Wait-
-
Sounds like the video is VFR (just about always it will be VBR). avi doesn't support VFR so the length changes. To further clarify, the artefacts appear only when you play the final muxed file? Or they are in the avi from alltoavi before muxing?
You can create I frames by only re-encoding the section around where you want it, but you can't do it without re-encoding something. Xvid for instance allows you to set I frames at exact frames using zones.
What you might want to try is Haali's mkv2vfr tool. This will extract the video to an avi along with a timecode file telling you what sections run at what framerate. Then convert to a single framerate, either ~120fps or convert say the 29.97/30fps sections to 23.976fps.
VFR = Variable Frame Rate. -
What?????
What you mean it is actually CBR video but with wrong time values/variable frame rate? Am i getting you right?
In that case, how and mostly WHY would anyone get into all this trouble to mess the video??? Are those encoder guys nuts? Do they gain anything by doing this? Maybe a rip-protection or more space??
The artifacts appear in the cvt_.avi first, and are the exact same with the ones when video stream is muxed with audio using vdubmod. They also are NOT appearing in the original video (either watched from the mkv container, or ripped and watched as avi with wrong timings). There are just not there before the compression with alltoavi.
Can you be more specific here?Xvid for instance allows you to set I frames at exact frames using zonesHaali's mkv2vfr tool
Thanks for everything. I'll try this last one and reply in a few hours from now.-Good Things Come to Those Who Wait- -
I can't find the Haali's mkv2vfr tool, is it included in Haali Media Splitter or is there another package of software that contains it, perhaps gordianknot? The only "Haali" i found in tools section was Haali Media Splitter.
-Good Things Come to Those Who Wait- -
Whooops, sorry i found it.
How do you delete you posts anyway?-Good Things Come to Those Who Wait- -
No I mean that the video would be both VFR and VBR. The reason why they encode VFR is because the source for anime is often VFR. So they are doing it so as to not destroy the source, not to make things tricky or to protect anything.
-
Ok, i used the splitter in cmd line like this "D:\mkv2vfr 14.mkv 14.avi. It provided me with an avi of 25.24fps which had exactly the same duration that should have had, 24:20secs. But when i tried to mux the mp3s on it, it wouldn't synchronize. There where no artifacts in the file, but there was also no compression to begin with. I guess that's entirely up to the alltoavi program and its bugs still has as a beta. ln any case, now that the splitter failed too it's all i have left as an option.
-Good Things Come to Those Who Wait- -
Well the length is correct because it has the correct average framerate. Converting VFR to CFR like that won't maintain sync throughout the file as you just found out. You need to look at the time code file. This will tell you what sections are supposed to be what framerate.
-
WHAAATT??? Even if i do find this TC file, which btw i have no idea where to look to. It's not inside the mkv or mkvextract would show it as stream i guess. Besides that, you mean that i've gotta input the fps from vdubmod manually for, let's say 01:20-01:50 and so on for, i don't know, about 50 or 100 times more, where the fps changes idiotically and without reason? Is that what you're saying???
OMG_WTF_POS_MFB!!!!
I really hate those mkvs
I'm tired...-Good Things Come to Those Who Wait- -
Code:
D:\mkv2vfr 14.mkv 14.avi 14timecodes.txt
you might find this useful:
http://edwardk.info/wmv2avi/
gl -
So that's how you get the time codes huh? Then why does the avi desync with the mp3? I mean, if the program already knows in what time what fps is?
However, because of the use of avisynth here, i can't direst stream copy. The file will end up huge, and not DivX.
What you say would have been really useful in case i wanted to re-compress the avi, but alltoavi already does that for me.It really is interesting things to know, however it does not help my case at all.
Now that i know how to extract the TCs, what i want, i guess, is a program that will mux the avi, mp3, and TCs together in direct stream copy mode, not re-compression.
Allot of thanks anyway.-Good Things Come to Those Who Wait- -
Originally Posted by celtic_druidOriginally Posted by Jo The Veteran
Originally Posted by Jo The Veteran
that seemed like what you were asking for
Originally Posted by Jo The Veteran
avi doesn't support vfr
gl -
where the fps changes idiotically and without reason?
You will probably find that your time code file is a lot simpler than the one in the posted example. You could keep the largest chunks, re-encode the other bits; changing their framerate and then join. Keep in mind that ChangeFPS changes the frame rate by deleting or duplicating frames, so you will end up with poor motion compared to the mkv.
Haven't I seen other posts from you trashing mkv's? If you really hate them that much, then don't download them. But please accept that the people who encode using it because it is a more powerful and better container than avi. This is why you have trouble converting. It's like taking a V8 and dropping it in a small hatchback. Might be possible, but it won't be easy. -
Haven't you heard anything about freedom of information? Internet doesn't belong to a certain cast of people with certain tastes, it belongs to all. If i don't agree with something that is my opinion and no one can tell me what to do or not to do, and that includes you. I re-heeeeeeeeeeeeeeeeee-aly DON'T want to download mkvs, i also don't want to download ogms too for the same reason. I don't have a choice. All the series i want are already in that format.
Sorry if i lack your faith in the all POWER-FULL mkv container, praise God for it's existance, but why do i convert it is NOT wrong for me, it's necessary. This container is just still NOT compatible. I mean, how many home dvd appliances you know that support mkv? And not just that, even pc players get frustrated sometimes and crash when playing mkvs.
That's just what i think. Thanks for all the help you gave me but please don't try to change my mind, rather than that, just offer assistance in the matter with any knowledge you might have.-Good Things Come to Those Who Wait- -
I'm not trying to change your mind, I am just saying that if you are going to download mkv's, stop trashing them. You can't have it both ways. Either accept them or stop downloading them. You say you don't have a choice, but at the end of the day you do and you have already made it. Hopefully you now at least have a better understanding of why encoders use the container.
As for the Internet not belonging to a certain cast of people. I'm afraid that just isn't really true either. What percentage of Africa is online? It isn't because they don't like mkv's that they aren't online either. -
You are not helping either though. You told me how to correct the desync in a half-way and not the whole story. And at the end, what mixed things i learned from you and the other guy, alltoavi already does them for me. So you told me how an avi responds when given vfr streams, but not a word on how to correct it. The way i see it's like that, it can't be corrected, and THAT is a "trashed" stream. There is no way to fix it.
When i see a video i want to be sure that:
a. It can be converted into any format i want, for whatever reason i want (and do that without errors or artifacts or other crap like that).
b. It is compatible with, if not all, most standalone divx players.
and
c. It's stable.
Do i get those in avis? Oh yeah!
Do i get those in mkvs? Maybe c. sometimes, but a. and b. no way!
You might find vrf normal, but i find it idiotic and without reason.So answer me this, is there a real reason behind vfr? What do you gain with it? Only that.
By the way, when i talked about the internet i meant the society of anime encoders and viewers. What i see is a kind of racism. Support mkvs! Support non English anime with hard subs.
I hate those things! I want to hear the English dub, and read from external subs, not even vobsub, only srt or sub, A.K.A compatible stuff. And that makes me an outsider, which most people would not agree to help most of the times.-Good Things Come to Those Who Wait- -
I gave you enough info to solve this.
a. You are converting from a more advanced format to a less advanced one. You are bound to run into problems and there is nothing to be done about it. If you had an mkv containing CFR VfW video, then there would be zero issues converting, so it isn't mkv that is the problem per say.
b. People were downloading DivX/Xvid avi's long before there were SAP's to play them. Not really their fault that the hardware is behind. I know that the matroska team were helping test at least one SAP. Fact is that fansub groups really don't care about such thngs. I mean look at the number of posts on overscan issues.
c. Matroska is pretty stable. Possibly more so than avi since it handles errors better. Also if you look at avi, lots of SAP's don't like ODML and there are features that Microsoft's (inventor of avi) splitter doesn't even handle properly.
For I think the 3rd time. Is there are reason for VFR? Yes, a single anime episode/movie contains video from numerous different sources such as CGI, progressive and interlaced video. This results in a video stream with a variable framerate. The only way to encode this properly is to encode VFR. They don't just take a CFR source and make it VFR to piss people off.
Download a 720p AVC encode of something in an mkv container and it will generally be CFR because the source is CFR. The reason why they use mkv in this case is because it supports native AVC without having to convert the original audio.
Racism because the Japanese don't produce their TV shows in English or with English subs? Racist because people who translate and do all the work do things how they want? People don't want to help you probably because of the way you come across. -
As the 'other guy', I'll agree with all said by celtic_druid.
Plenty of information was provided.
Unless you expected to be spoon fed.
If you wanted to get more specific info, you could have read up on what was provided, and come up with specific queries for clarification.
a bit more info
http://avisynth.org/mediawiki/VFR
Originally Posted by Jo The Veteran
I thought the reason for the post were images like these:
Originally Posted by Jo The Veteran
I certainly wouldn't be.
Originally Posted by Jo The Veteran
or leave alone?
gl -
For the 3rd time you don't actually explain why is it necessary. You talk about why it happens, not why its necessary. I specifically asked you that in the last time. I was trying to prove a point there.
You see when you encode something, no matter what sources you may use, it's illogical, for me at least, to use such a process. If i had 3 videos with 29, 23, and 15 fps end wanted to mix then and create a 4rth video, that video's fps would have been 29. That would ensure not loosing quality from the first 29 and second 23 fpsed videos and would also create no such problems as above.
And another thing. Those videos i talk about are taken from dvds alright? Why to do such a procedure? It's just not necessary. There where no multiple video sources like you say, but only one, the dvd, so why?
Btw Mr. 45tripp (is that name and surname together?), you tripped into your own name there. I couldn't possibly remember such strange name so i putted the "the other guy" thing. If you got insulted or something i'm sorry, for all the good that will do anyway. I mean this IS the internet, who cares about those things? Don't care so much, it'll do you good. However PLEASE, DON'T tell me what to do. I sure didn't do it and you know what? I find THAT insulting. The first guy did it also (whoops i did it again). I'm sorry, i wanted to say Celtic_druid did it also. You know, that ancient Celt guy whose job is the combined duties of priest, arbitrator, healer, scholar, and magistrate. I mean, come on now! Get serious.
You needn't bother yourselves any more if you don't want to. However, i don't find the problem solved. The solution you are suggesting takes allot more time that i'll willing to spend. Sure if i had no job, or life it wouldn't be a problem. I would spend about 2-3 hours to pick the useful parts of this post and then put them to the test. About 1 more hour to test and in about 3-4 hours total i could have found a way to avoid those blocky images. I won't thought, you guess why.
I now understand it's impossible to get a straight answer, because of the complexity of the matter, ignorance and a little bit reluctance to give away knowledge for free.
Cheers.-Good Things Come to Those Who Wait- -
For 3 videos @ 29, 23 and 15fps the best way to join would be VFR. If you convert to 29fps, then you will end up with poor motion due to duplicated frames, either that or blending.
Yes one DVD, but a DVD containing video from different sources. All the encoder is doing is restoring things. Besides DVD in a way supports VFR since you could for instance have a section with 3:2 pulldown flags (actually 23.976fps) and another section that really is 29.9fps.
You ask for advice and then complain when you get it? The ignorance and reluctance I am afraid is yours. -
Just forget man, i just think wrong your way of thinking and that's why you cannot offer me any substantial help. This just shows how different we think. You can't bring yourself to operate the way i do and the opposite. I don't ever use vfr when doing rips because i don't have to. If i do it, then what? Maybe i will gain some MB per rip, but on the other hand i'll be forced to use matroska? Why does that sound negative to me? Why a cfr avi with mp3 sounds allot simpler?
Compatibility, Compatibility, Compatibility....
If you are all knowing btw, why did it take you 4 and the one of Mr. 45drops.. 43drips (who cares what's the name) 5 posts to actually help me?-Good Things Come to Those Who Wait- -
Here's what a guide looks like.
1.Extract all streams from the mkv.
2.Convert the aacs into mp3.
3.Use mkv2vfr to extract the time codes from the video stream. (Use this syntax "D:\mkv2vfr 1.mkv 1.avi 1_TC.txt"
4.Use Mr. 45 tripp's address http://edwardk.info/wmv2avi/ to get the time codes into an avs script and re-encode the stream (btw, that didn't work, avisynth is complaining about the input command and i have no idea on how to program these scripts, so YES Mr. 45 tripp, you should spoon feed a little there).
5.(Ignoring step 4 that didn't work) I guess you only join the pieces together here with vdubmod (the avi and mp3s) and what you get is pretty much a cfr avi without blocks, errors in image or de-synchronization.
Nice huh?-Good Things Come to Those Who Wait- -
Originally Posted by Jo The Veteran
Originally Posted by Jo The Veteran
my grammar says otherwise.
Originally Posted by Jo The Veteran
Originally Posted by Jo The Veteran
don't you think that sounds a bit demanding?
Originally Posted by Jo The Veteran
but in all fairness, you'd shown little willingness to try.
also if you're not clear on something or uncomfortable/unfamiliar with a tool it's
up to you to say so.
use this tool to convert the timecode to an avisynth script:
timecode2avs.exe
usage:
timecode2avs timecode.txt movie.avs [target framerate] [intermediate framerate]
this being quite likely:
Code:timecode2avs timecodev1.txt cfravi.avs 23.976 119.88
you actually need to edit the avs script,
changing avisource() and wavesource() so they're directed to read your actual files.
also you need fdecimate:
http://neuron2.net/fdecimate/fdecimate.html
although you could substitute with the internal changefps()
gl
43drips -
Ok, let me start like this. I only know one script in avisynth! Only for a specific thing and it has nothing to do with what's going on here. So now that you know I'll continue.
Is it really that demanding? A guide or tips to figure out the problem from the moment i stuck till it's finished, like the one i did. I'm sorry, i know my grammar isn't that good, not being a native speaker and all, but i know for sure that you didn't do that from the start. If you or celtic had, it would had only taken 1 or 2 posts from you and about the same "thanks" posts from me.
Btw, i too also can quote what you said, or what i said, or what another guy might have said all the time, however what seems right at this point to me is to get this problem i have over with.
In any case I'll try what you said in another anime with vfr.
So, because i'm lost again with all the avisynth stuff, i'll try to describe what i did so far.
I use "mkv2vfr.exe 15.mkv 15.avi TC.txt" that way. Then go to http://edwardk.info/mkv2avi.php and input the data from tc.txt file (without the "# timecode format v1" line in tc.txt line 1, so it would be the same as in the guides). I get some other data that i input into an empty txt file that i rename 15.avs per say. Also i input the name of the avi i got from mkv2vfr.exe in the start in the first line as you'll see in the 15.avs script. Now why doesn't vdubmod opens it? It gives off this warning -Avisynth open failure: (I don't know what "output" means)-.
What am i doing wrong and what else is there to be done?
I won't try the last things you wrote or the tool cause i still don't understand some stuff you say there. Things like:
[target framerate] [intermediate framerate]
So i have to look for two fps's now? Ok, where do i find those? Sure, most videos have 23.976, but what if one doesn't and has 25. And the other one, 100and something? What's the deal with that? Your example "timecode2avs timecodev1.txt cfravi.avs 23.976 119.88" will work always or sometimes? Also what's cfravi.avs supposed to be? The file I call 15.avs?
changing avisource() and wavesource(). I put 15.avi in first and 15.mp3 in second? If yes, is there a way to put other mp3 streams there too, something like "and wavesource();wavesource()..." or is one the limit?
WTH is fdecimate, rather than what it is and does, do i need this at this point?
Well, you asked me to clarify what i do know and what i don't, so here it is.
TY.-Good Things Come to Those Who Wait- -
Originally Posted by Jo The Veteran
Code:output = output + input.trim(0,869).assumefps(29.9700).changefps(23.976)
Code:output = input.trim(0,869).assumefps(29.9700).changefps(23.976)
Originally Posted by Jo The Veteran
intermediate framerate is the least common multiple of the variable framerates you have.
119.88 is the LCM of 23.976 and 29.97
Originally Posted by Jo The Veteran
Originally Posted by Jo The Veteran
15.wav, uncompressed audio.
for multiple audio tracks, just mux them at the end with a muxer, like avimuxgui.
if you already have mp3 tracks you're not going to encode audio of course.
Originally Posted by Jo The Veteran
No.
You can use changefps(), but fdecimate() is better.
gl -
Ok, thanks for everything, that ought to have done it. I'll know as soon as the compression is over.
A last few questions though.
Where do i find the final framerate? That line 1 in Timecodes.txt file "Assume fps 23.976", is it that there? I mean, how can i know the (what i would call) mostly used fps in a vfr video and does it make a deference, or putting 23.976 always is fine?
If fps = 25 then the LCM = 125, this formula is always like LCM = Final X 5?
That guy in http://edwardk.info/wmv2avi/ puts a 0 frame at the start of the avs script. Why?AviSynth treats numbers 0,0 as special, so to compensate, I put in 0 to 1 in the avs script, and doubled the rate.
Probably not the best way to handle it, but it's just 1 frame, do what you think is best.
Can the script be modified in order to open video stream directly from the mkvs, without first extracting them? I've tried that way instead ofCode:input = avisource("25.avi")
Code:input = DirectShowSource(fps=23.976,"25.mkv")
Lastly, is the a good site where i can learn about the avisynth, specifically about how it handles the matroska container.
And an observation. I used mkvmerge like this: Open mkv, remove streams of sound and subs. Add my converted mp3s and srts, then save. When i opened that mkv with vdubmod it had synchrony with the mp3. I saved it as avi and still had sync. Was that wrong? There where some very few errors in picture so it would be better to do the scripts, however, that way it didn't even want re-compression.
TY-Good Things Come to Those Who Wait- -
Originally Posted by Jo The Veteran
you can read the timecode file and see which framerate gets the greater frame count.
no
it makes a difference
Originally Posted by Jo The Veteran
http://www.math.com/school/subject1/lessons/S1U3L3GL.html
Originally Posted by Jo The Veteran
Originally Posted by Jo The Veteran
don't worry about it,
i'm certainly not concerned.
Originally Posted by Jo The Veteran
you can use:
Code:directshowsource("25.mkv", fps=119.88,convertfps=true) FDecimate(23.976)
Code:directshowsource("25.mkv", fps=23.976,convertfps=true)
might seem easier, but directshowsource is not the most reliable filter. Or didn't use to be.
In anycase I'm in the habit of not relying on it.
Also you'd be flying blind without the timecodes, and you get the cfr avi with the timecodes, so why not use it.
Originally Posted by Jo The Veteran
vdubmod is not the right tool.
gl -
Wow!! With all this info I'll try to make a full guide about converting matroskas into avis and you will be mentioned allot.
Thanks for everything.-Good Things Come to Those Who Wait-
Similar Threads
-
What mobile phones uses VFR (or CFR) for recorded video clips?
By Gew in forum Portable VideoReplies: 0Last Post: 27th Jan 2012, 11:49 -
VFR -> CFR in VirtualDub
By KeyMs92 in forum EditingReplies: 19Last Post: 7th Oct 2011, 18:41 -
vfr to cfr convertion
By mathmax in forum Newbie / General discussionsReplies: 11Last Post: 22nd Apr 2011, 08:11 -
easy way to convert VFR >>> CFR ?
By Force88 in forum Video ConversionReplies: 8Last Post: 16th Mar 2009, 08:41 -
Converting VFR to CFR (immortal topic), both avi_tc and AVIsynth fail.
By pyton357ru in forum Newbie / General discussionsReplies: 6Last Post: 17th Oct 2007, 04:08