savage2000
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Spaun Цитата: Я делал так же, только fps выставлял такой, что бы длина звука и видео совпали. | На 3-ем этапе я именно так и делал. Но вчера, работая над очередным файлом, я столкнулся с такой же, как и у тебя, проблемой. В начале и в конце звук вроде бы синхронизирован, а в середине - рассинхронизация на 1-2 сек. При более детальном изучении нашел одну из причин - в одном месте в файле со звуком пропущены 17 фреймов, хотя в файле с изображением они есть. Т.е. при частоте 23.976 fps у меня пропала почти секунда фильма, что на глаз очень заметно. Судя по величине общей рассинхронизации в фильме найдутся еще такие же участки. Теперь понятно что случилось. VirtualDub, получив указание синхронизировать изображение и звук, честно это сделал, не зная, что они соответствуют разным длительностям. В итоге до места разрыва звук плавно наращивает оставание, а после места разрыва - плавно уменьшает его. Поэтому в начале и конце фильма все будет Ok, а в середине звук как бы "пузырится" - рассинхронизация нарастает и потом спадает. В зависимости от того, где пропущены кадры - в изображении или в звуке - будет менять и характер рассинхронизации звука. Как найти место разрыва? У меня родилась такая идея: Находим в обоих вариантах фильма "реперные" точки - характерные участки (желательно с резкой сменой сцен - так будет точнее), более-менее равномерно разбросанные по фильму. Запишем номера их кадров в обоих вариантах фильма и найдем длину отрезков между соседними точками (измеряется в кол-ве кадров). Пусть у одного варианта фильма это будут длительности N1, N2, ... N10, а у другого - M1, M2, ... M10. Тогда для всех отрезков должно выполняться равенство соотношений: N1/M1=N2/M2=...=N10/M10 Если же получиться что-то вроде: 0.959=0.959=0.947=0.959=...=0.959 то это будет означать, что в 3-ем отрезке что-то не в порядке и его надо проверить на предмет пропущенных кадров. Это можно сделать таким же способом, разбив подозрительный отрезок на более мелкие отрезки и проверив соотношения уже у них. Докопаться до истины можно будет очень быстро, т.к. при кол-ве отрезков, равном 10, даже в 3-часовом фильме второе поколение делений даст отрезки порядка 2 минут. Кол-во отрезков желательно выбирать не меньше десятка. Особенно это касается первого деления, т.к. нам надо, чтобы заведомо получились отрезки, где нет пропущенных кадров. А ведь мест, где пропущены кадры, может быть несколько. Попробуй. Я на днях тоже займусь этим - постараюсь выправить свой файл. |