Показать сообщение отдельно
Старый 16.02.2011, 20:40 Вверх   #10
Коварный тип
 
Аватар для Serberg
Serberg вне форума
Доп. информация
По умолчанию

Как добавить несинхронизированную аудио-дорожку...


Итак, руководствуясь предыдущим разделом удалось приципить дополнительную звуковую дорожку к фильму, но к сожалению просмотр результата показал, что звук новоявленой дорожки явно не согласован с видео. Если рассинхронизация в начале и конце фильма одинакова (к примеру на слух определяется отставание звука от видео где-то на 3 сек), то можно попробовать исправить ситуацию достаточно простым способом, использовав возможность программы задавать задержку для конкретной звуковой дорожки. (Если явно видно, что рассинхронизация нелинейна, т.е. в начале различие 2 сек, а к концу фильма увеличивавется до 4 сек, то это требует уже достаточно сложных действий с подгонкой дорожки в видеоредакторе и в рамках данной статьи не рассматривается (на самом деле, если изменения накапливаются монотонно, а не возникают скачками, например из-за удалённых отсутствующих на видео дорожке фрагментов фильма, то MKVMergeGUI тоже способна поправить ситуацию, если задать степень нарастания или уменьшения расхождения в строке Stretch by в виде соотношения двух чисел, к примеру 1/1.043 или аналогично 1000/1043. При острой необходимости можете попробовать, но процесс этот для сильных духом, т.к. придётся каждый раз пересобирать контейнер заново полностью). Так-же должен заметить, что рассинхронизация в принципе может появится из-за очень высокой загруженности центрального процессора при декодировке фильма, поэтому убедитесь, что ваш компьютер действительно способен воспроизвести данное кино. Например для показа HDDVD-Rip-a, да ещё и возможно на фоне каких-то других выполняемых задач, нужен весьма мощный компьютер).
Вводная часть закончена, теперь, собственно, что нужно делать. А собственно то-же самое, что и при обычном добавлении дорожки, только теперь, выбрав в окне Tracks: свежеподключаемую дорожку, нужно чуть ниже выбрать закладку Format Specific Options и указать на ней в строке Delay (in ms) нужную задержку. Если звук обгоняет видео - задержка задаётся положительная (просто числом: 1сек=1000), если звук отстаёт от видео, то отрицательная (с минусом в начале числа, как на скриншоте).


Или вот пример подгонки звуковой дорожки от видео-кассеты в формате PAL (25 кадров в сек) к HD-релизу с объявленной частотой кадров 23.976. Правда что-то не совсем соответствовало стандарту и пришлось вместо стандартного, для подобного случая, соотношения 125124/120000 (удобнее использовать соотношение 25000/23976, но я в том случае 'плясал' от 12512/12000) подгонять вручную и вышло 12512/12000. Соотношение 1200/1253 или в нашем случае 1253/1200, которое не знаю как затесалось в комментарий к полю stretch (может просто от балды или для примера нестандартной растяжки) здесь не годится.


Естествено задать всё абсолютно точно с первого раза не получится, поэтому гарантированно понадобится несколько попыток. При этом, должен заметить, совсем не обязательно дожидаться окончания процесса сборки контейнера (по крайней мере необязательно в случае линейного сдвига, т.е. задания ТОЛЬКО параметра Delay). Если в вашем распоряжении есть видео плейер, способный на "воспроизведение недокачанного или повреждённого видео", то вполне реально нажав на кнопку Abort в окне, показывающем процесс пересборки фильма, остановить этот процесс досрочно (для фильиа в 90 минут 10% уже с избытком достаточно) и попробовать просмотреть этот недоделанный файл нужным видео-плейером (у меня лучше всего это получается делать KMPlayer-ом). Если вы видите, что ошиблись в величине (или даже направлении задержки, т.е. стало ещё хуже), то вносите соответствующие поправки в величину задержки или растяжки и повторяете процедуру сборки контейнера. И так столько раз, сколько понадобится для создания удовлетворяющей вас синхронизации звука соответствующей дорожки и видео. Обычно это не долго. Значительно хуже при нелинейной рассинхронизации (или при сочетании обоих вариантов). Тут скорее всего придётся муксить каждый раз до конца, по крайней мере на последних стадиях подгона. Например процесс подгона дорожки к указанному на втором примере фильму Гринч занял у меня почти пол дня (правда это было не единственное, чем я занимался, но чтоб было понятно, что процесс длительный, если вам сразу не повезёт). Ну и в конце обязательно проверяете синхронизацию по всей длине кинофильма (хотя-бы в 5-6 точках).
ВНИМАНИЕ. В некоторых случаях выставляемая задержка для звуковой дорожки модифицируется программой MKVmergeGUI в процессе сборки контейнера в небольших пределах. Почему так происходит - не знаю, но иногда наблюдаю разницу между заданным мной и полученным значением в 20-60ms. Смотрю програмой MediaInfo 0.7.16 или новее. В связи с этим приходится корректировать значение задержки и пересобирать контейнер заново. Например ставлю -42ms, в MediaInfo вижу значение -20ms, меняю на -62ms, пересобираю - получаю -40ms, что уже приемлимо. Может это глюк конкретной версии (наблюдал в MKVmergeGUI v2.6.0), а может и нет. Просто обратите внимание..
Следует обратить внимание, что подгонка звука средствами MKVtoolNIX не так сильно портит его качество, как случилось-бы при проведении этой операции в подавляющем числе аудио-редакторов из-за необходимости повторного кодирования в сжатый формат. Все изменения основаны на сдвиге или нелинейной синхронизации внутри контейнера (кстати ещё одно приемущество этого контейнера над другими). Таким образом, если вытащить из полученного фильма дорожку обратно и сравнить с исходной, то в случае растяжки/сжатия (Stretch) она останется вообще без малейших изменений (отрицательный момент в данном случае в том, что засинхронизированную таким способом дорогу нельзя отдать кому-нибудь отдельно от фильма для 'простого приклеивания', нужно будет обязательно сообщить также параметры 'растяжки') и после перекодирования в AVI (если такая мысль придёт в голову) синхронизация 'чудесным образом' исчезнет, а в случае задания задержки (Delay), происходит удаление или добавление фреймов в начале дорожки и в этом случае дорожка остаётся 'синхронизированной' даже после вытаскивания из фильма, т.е. её можно передать другому лицу так сказать в 'готовом' виде.
  Ответить с цитированием
 
Время генерации страницы 0.06915 секунды с 10 запросами