2007-12-02, 00:47 | Link #1 |
Senior Member
Join Date: Dec 2007
|
Adobe Premiere Pro - Strange video/audio length problem
Hi!
I'm a newbie encoder, and I'm having trouble cutting a raw. The video is encoded in h264, the audio is AAC. When watching the raw in MPC (all internal filters disabled), the video and audio are in sync (same length). The problem is once I add them both to Premiere (had to extract them with mkvextract, rename the video to .264 and then add them both), it reads the audio as being about 15-20 sec shorter than the video, despite that listening to it makes it seem like the entire thing is there. I went and asked in TV-Japan's IRC channel about it, and was told to update my codecs, so I went and downloaded the newest versions of CoreAAC and ffdshow, which didn't help. This makes me think it might have something to do with the FPS - 23.976. PS, If I mux it myself, this also happens (audio goes out of sync, ends earlier). When muxing, I specified the 23.976 framerate. Any ideas? Last edited by xris; 2007-12-02 at 06:40. |
2007-12-02, 11:39 | Link #4 |
Excessively jovial fellow
Join Date: Dec 2005
Location: ISDB-T
Age: 37
|
You didn't read the VFR thread close enough. Or maybe you did but didn't understand. AssumeFPS() does nothing on VFR sources (actually it does but the meaning isn't, uh, meaningful; it just goes from one assumed FPS to another without touching the frames). Remember that Avisynth isn't VFR-aware and anything you do in there will not really affect the VFR'ness of the source; it's all just VFRaC.
__________________
|
2007-12-03, 05:20 | Link #7 |
Aegisub dev
Join Date: Sep 2004
Location: Stockholm, Sweden
Age: 39
|
Also, the timecodes in Matroska files aren't stored as a separate file, track or whatever, but as an integral part of the video track. When you specify a timecodes file for muxing a video track in a Matroska file, the muxing program stores the appropriate timecode in header for every frame -- the timecodes file becomes part of the video track.
__________________
|
2007-12-03, 05:30 | Link #8 |
Senior Member
Join Date: Dec 2007
|
Yes, but opening this mkv with mkvextractgui doesn't show anything like this ;-; The timecodes textarea is empty.
edit: Okay, so the GUI is retarded. I did it manually and it extracted okay. You guys were right, sorry. It is VFR - the frames aren't evenly spaced. Anyway, is there a way to make Premiere Pro take timecodes into account? If not, do I have to make it CFR? t_t I want to cut it in Premiere so I don't have to mess around with the audio and the video separately.. it'll suck trying to keep them in sync if I cut them separately. BTW, how would I go on about concatenating two video streams into one (preferably with AviSynth)? Say, I downloaded a raw in two parts (RAR) and want to put it together. Another question that isn't really related, but like the above, I don't want to start another thread just for this: AviSynth is giving me evul errors. Really, really, evil errors that I can't even read.. any solutions? (it seems to have something to do with the video input, but both ffmpegsource and directshowsource make this happen.) Code:
ffmpegsource("clannad7-video.mkv") vmtoon(sharpen=false,thinning=0,strength=48) But if I comment the ffmpegsource line, I get a readable error saying vmtoon doesn't have enough parameters. This doesn't happen with all filters.. DeRainbow(), for example, on its own gives the unreadable error, too. Last edited by comatose; 2007-12-03 at 05:56. |
2007-12-03, 11:19 | Link #9 | ||||
Excessively jovial fellow
Join Date: Dec 2005
Location: ISDB-T
Age: 37
|
Quote:
a) edit with the audio out of sync, don't touch the frame order or amount (unless you want to manually edit the timecodes to compensate), remux with timecodes afterward b) identify what sections are what framerate, split the MKV into smaller CFR parts and edit those individually, then splice them together afterwards c) convert to CFR. Quote:
Or you can do something really clever in Avisynth (who could have guessed that I would suggest this): Code:
vfrvideo = ffmpegsource("x:/stuff/test.mkv") audio = directshowsource("x:/stuff/test.mkv", convertfps=true, fps=23.976) # framerate doesn't matter vfrvideo.trim(0,1000) # cut on the desired frame here audio = audio.trim(0,900) # this is the clever part; find the same frame in the convertfps'ed clip and put that number here audiodub(last,audio) Caveat when using this method: Virtualdub by default cuts off the audio stream when the video stream ends, so to avoid that you may want to assumefps() a very low framerate, or just disable that option (it's under video -> select range). Quote:
Code:
a = avisource("a.avi") b = avisource("b.avi") ab = a ++ b #aligned ba = b ++ a #also aligned abb = a ++ b ++ b #still aligned audiotest = b + a #not aligned (note single plus) longhand = unalignedsplice(b,a) #same as last line abb2 = alignedsplice(a,b,b) #same as abb Quote:
Other than that it seems you've already gotten help in the other thread.
__________________
Last edited by TheFluff; 2007-12-03 at 13:52. |
||||
Thread Tools | |
|
|