Help - Search - Member List - Calendar
Full Version: Синхронизация звуковых дорожек
Форумы RDA > Технический раздел > Общие вопросы
Pages: 1, 2, 3
Mantisby
Хотелось бы, чтобы люди, у которых есть существенный опыт в синхронизации звуковых дорожек, поделились им. Это значительно сложнее, чем добавлять субтитры, по моему опыту. Вот какие проблемы возникали у меня:

1. Синхронизация в случае если звук и видео записаны разных форматах (PAL <-> NTSC).
2. Синхронизация если звук вроде в одном формате, но постоянно убегает/отстает.
3. Какие программы можно использовать.

Я пробовал открывать обе дорожки одновременно в GoldWave и искать одинаковые места в них. Долго и муторно, особенно непонятно что делать, если звук постоянно прыгает в разные стороны.
kvappa
2 userinfoMantisby:
1. Тут более-менее просто. Обычно делаю так: декодирование через BeSweet с изменением FPS на лету. Потом, получившиеся 6 каналов грузятся в Soft Encode и кодируются там. Уровень кадого канала предварительно поднимается где-то на 2,5dB. Вопрос с прочими настройками Soft Encode - отдельная тема для дискуссий и споров. smileold.gif
Сам Besweet кодирует хуже, имхо.

2. Это долго и муторно почти в любом случае. Лучше это понимать сразу. Как - думаю это еще обсудим.

3. Кроме вышеупомянутых, использую Samplitude - довольно мощная и не сказать что простая профессиональная прога. Другие пользуются иными программами. smileold.gif
Mantisby
QUOTE(kvappa @ Четверг, 29 Ноября 2007, 16:28)
2 userinfoMantisby:
1. Тут более-менее просто. Обычно делаю так: декодирование через BeSweet с изменением FPS на лету. Потом, получившиеся 6 каналов грузятся в Soft Encode и кодируются там. Уровень кадого канала предварительно поднимается где-то на 2,5dB. Вопрос с прочими настройками Soft Encode - отдельная тема для дискуссий и споров. smileold.gif
Сам Besweet кодирует хуже, имхо.
*


Помнится хотел я Затойчи собрать, где надо было это сделать. Если не изменяет память, то там это всё не просто. Сначала надо на 6 каналов разложить, потом через lst файл подсунуть это Бисвиту, потом перекодировать, потом Закодировать обратно. И на каком-то шаге у меня глюк вылез, в результате получился свист во всех каналах. ПОтом не было времени разобраться.
kvappa
2 userinfoMantisby:
Менять FPS надо прямо на стадии декодирования в 6 отдельных WAV !
altar
Похоже, это выльется в еще одну длинную инструкцию. Буду писать частями.
Сразу оговорюсь, я буду описывать работу с Dolby Didital AC3, но все основные принципы распространяются и на DTS.

По мере возможности, я буду стараться обосновать выбор методов и инструментов. Постараюсь также объяснить теоретическую основу, а не просто дать набор шагов, "шаг влево-вправо - расстрел". Главный принцип - максимально возможное качество результата и пошаговая обработка, с контролем промежуточных результатов. Когда некоторые шаги можно объединить, но в ущерб качеству - я постараюсь кратко упомянуть такую возможность, но не более.

По стандарту ДВД-Видео, в ac3 кодируются звуковые дорожки, оцифрованные на частоте 48 КГц. Файл ac3 состоит из отдельных фреймов, содержащих 1536 выборок, поэтому их длина для ДВД-Видео - 32 мс (=1536/48000). Фреймы самодостаточны и никак между собой не связаны - поэтому ac3 так легко склеивать и резать.

1) Синхронизация без перекодирования.
Ситуации, когда ничего перекодировать не надо. Такое не часто, но бывает. Скажем, есть оригинальная дорожка, есть перевод. Вы внимательно послушали - дорожка с переводом всем хороша, и длина такая же как у оригинала (почти), и уровень громкости такой же или близкий. Одна закавыка - в оригинале есть заставка компании производителя ДВД, а на дорожке с переводом ее нет. И в конце оригинальной дорожки 0.5 сек тишины дополнительно. Нет проблем, можно отрезать заставку и конец у оригинальной дорожки и приклеить к нашему переводу, работая прямо с ac3. Для склейки достаточно бинарной конкатенации, т.е., в Win коммандной строке - "copy /b file1.ac3 + file2.ac3 result.ac3" склеит file1 и file2 в result. Для резки можно использовать BeSplit с GUI WBIAS (использует WinAmp и AC3 winamp плагин для прослушивания), но я сомневаюсь, что таким образом, на слух, можно быстро достичь удовлетворительных результатов. Что я делаю в таких случаях:
а) раскодирую оригинал и перевод в wav (как - см. ниже)
б) в аудио редакторе сравниваю волновые пики и точно нахожу общую часть обеих дорожек. Теперь я точно, до миллисекунд (и даже точнее) знаю, где мне отрезать заставку и где - концовку у оригинала.
в) Время переводится в фреймы (32 мс - 1 фрейм)
г) Резку и склейку произвожу в бинарном редакторе (привык к Hex Workshop). Маркер начала фрейма - 0B77.

2) Синхронизация с перекодированием
Рассмотрим простейший случай - оригинал в NTSC, хотим приклеить дорожку из PAL издания. С удивлением обнаруживаем, что продолжительность фильма в PAL издании на 4% меньше, чем в NTSC и кинотеатре. Прежде, чем приклеить (и прежде, чем синхронизировать), аудио-дорожку надо растянуть. Про это часто говорят, как про смену FPS (частота кадров) с 25 до 23.976, хотя у аудио, разумеется, никаких кадров нет (фреймы ac3 не имеют никакого отношения ни к PAL, ни к NTSC, ни к фреймам видео).

Здесь будет про 4% ускорение, откуда берется и т.д.

Здесь - почему не стоит пользоваться никакими функциями BeSweet, кроме декодирования в 6 32-бит wav (разница между 16 и 32, dither и т.п.) (и почему приходится использовать BeSweet, т.е., Azid, а не декодировщик в Soft Encode). Никакой обработки, никакого изменения громкости и FPS! Растяжение требует весьма сложных алгоритмов, это следует делать в профессиональном аудио-редакторе.

Далее опишем про волновые пики, работу с аудио-редактором. Изменение уровня громкости - чтобы было как в оригинале, как мерить. Про нормализацию диалога в Dolby Digital.

Далее - рассмотрим ползучий, кусочно-сдвиговый рассинхрон. Ускорение синхронизации через мониторинг фазы (коеффициента корреляции).

Под конец рассмотрим обратное кодирование в ac3 с Vegas.
kvappa
2 userinfoaltar:
В том-то и дело, что в Samlitude пробовал разные алгоритмы, но результат после BeSweet показался лучше. Ибо Time Stretching сильнее и заметнее менял тембровую окраску звука, ускоряя или замедляя, а Pitch Shifting делал звучание рваным.
Поэтому очень интересно - какая программа может делать данные операции на более профессиональном уровне!
ClashClash
Согласен с altar - в BeSweet только декодирования в 6 32-бит wav. Все прочее делаю в Вегасе/Саундфордже. Кодирование в АС3 - тот же Вегас или Soft Encode.
altar
Я давно к Samplitude приглядывался, но похоже они только в новой 10-й версии добрались наконец до уровня профессионального редактора. В 9-й, насколько вижу, у них не было таких необходимейших вещей как Timestretching высокого качества и dithering (опять же высокого качества).

Про BeSweet'овский soundtouch (dll, которая делает преобразования звука для BeSweet): это разновидность алгоритма Верхелста WSOLA (Waveform Similarity Overlap-Add). SoundTouch можно использовать отдельно от BeSweet - SoundTouch. WSOLA работает во временной области, беря куски из оригинального звука и накладывая их друга на друга со сдвигом и затуханием. Самый первый алгоритм для растяжки - фазовый вокодер Портнова - работает в частотной области. Проблема со всеми этими чисто математическими алгоритмами, и WSOLA, и вокодером - в том, что они не учитывают особенностей человеческого слуха. Быстрые переходные области размазываются, ритмическая картина нарушается. Кроме того, нарушается фазовая когерентность в стерео.

Насколько я знаю, WSOLA используется в большом количестве любительских прог. Он использовался и в Cool Edit, и я сильно подозреваю, что остался без изменений и в Audition. Насколько я могу понять, Samplitude использовал еще более примитивную методику - разбиения звука на установившиеся и переходные области и скалирования их по отдельности. Для ритмической музыки это работает, потому что transients не размазываются, но в целом это уступает WSOLA. Я бы не удивился поэтому, если обработка с SoundTouch / BeSweet даст лучший результат, чем с Samplitude 9. Что у Samplitude в 10-й версии - кто знает? Да и где ее взять...

Совсем другого класса алгоритмы - это, что создали Серато, Serato Pitch 'n Time, и Просоник, Prosoniq MPEX. Эти два алгоритма основаны на моделировании того, как человек воспринимает звук. Среди прочего, Serato и MPEX сохраняют когерентность фазы многоканального звука, без чего объемный звук невозможен. Серато является общепризнанным эталоном и обычно используется в Pro Tools. Один этот алгоритм стоит больше, чем Samplitude. MPEX считается 2-м, но близким по качеству к Серато. MPEX встроен в Нуэндо, Кубейс, Сонар и WaveLab.

Много лет уже пользуюсь WaveLab. В 5-й версии меня устраивает почти все, кроме предела в 2 GB на один файл. Этот лимит давно устранен в 6-й версии (и работа с 5.1 звуком улучшена), но с уходом H2O никто, похоже, не в состоянии сделать народный релиз 6-й версии. cwm34.gif
kvappa
2 userinfoaltar:
Спасибо! Весьма любопытно! Samlitude начал пользоваться много лет назад, потому как тогда мне больше ни в одном редакторе не удавалось тягать 6 каналов без их рассинхронизации друг с другом. Далее - уже привычка. Чувствую, пора переходить на более качественные решения, коли дела обстоят вышеозначенным образом. То что бисвит - не идеал, было понятно и так. Динамику он всё-таки прибивал, да - именно размазанность легкая повлялась и объем картины в конечном 5.1 не столь хороший становился, как в оригинале. Не говоря уже о некотором падении уровня громкости.
Надо будет тогда WaveLab попробовать, действительно.
Кстати, а Серато встроен куда-нибудь? И ВэйвЛаба 6-го с аспирином можно даже не искать?
shurikkein
2 userinfoMantisby:
QUOTE
Я пробовал открывать обе дорожки одновременно в GoldWave и искать одинаковые места в них. Долго и муторно, особенно непонятно что делать, если звук постоянно прыгает в разные стороны.

Это действительно очень муторно. Особенно, если дубляж. Для отлова мест, где идет рассинхронизация, я с другой стороны зашёл. Кодирую видео с быстрыми настройками. Потом запихиваю в syncplay. Дальше карандаш, бумага, калькулятор smileold.gif
можно сравнивать фильмы с разной частотой кадров.
Естественно, предполагается, что в обоих исходниках нет рассинхронизации звука с видео.
Mantisby
QUOTE(kvappa @ Пятница, 30 Ноября 2007, 4:55)
2 userinfoaltar:
ВэйвЛаба 6-го с аспирином можно даже не искать?
*

да, бесполезно
kvappa
А может кто-нибудь рассказать про AC3 Encoder (присутствующий в пакете Sonic Solutions Scenarist)?
Что за зверь и насколько хорош или плох результат кодирования в нем?
altar
Все официальные кодировщики от Долби - одинаковые. Отличаются только версией. В некоторых прогах кодировщик официальный, но с отключенными фичами. В любом официальном будет присутствовать лого Долби - где-нибудь в интерфейсе. Так что, кодировщик в последней версии Сценариста должен быть таким же, что и в последней версии Вегаса. Хотя, там может быть что-то про HD, про это я ничего не знаю.
Elduderino
Какие параметры для энкодинга рекомендуются в Soft Encode?

Я перевел дубляжную дорогу из AC3 в 6x WAV, перевел их все с WaveLab на 25 fps, и теперь хочу снова свести в AC3, не меняя прочих параметров и характеристик звука.
altar
Я меряю громкость дорожки с переводом (среднеквадратическое, RMS) в местах, где нет речи/перевода. Если сильно (скажем, > 0.5 дБ) отличается от оригинала - меняю уровень, чтобы уровень громкости совпал. После этого использую те же параметры кодирования, что и в оригинале. Параметры оригинала выдает тот же Soft Encode, только надо проверять внутри самого фильма - в первых фреймах параметры могут быть другие (заставка и проч.).

Все это основано на предположении, что в оригинале параметры были выставлены правильно. Правильно померять самому среднюю громкость диалогов (строго говоря, это даже не RMS), чтобы выставить важнейший параметр - уровень нормализации диалога, довольно муторно.
kvappa
2 userinfoaltar:
А что делаешь с препроцессингом, при этом?
Я его выключаю весь, ибо имхо он звук только портит. Особенно, уже не помню какая из опций, сразу же глушит общий уровень, как только кто-нибудь начинает говорить.
Elduderino
Еще одна просьба.
У меня почему-то начал глючить Soft Encode, вырубается через несколько секунд после начала кодирования.

Решил воспользоваться советом altar и свести дорожку в Vegas, однако там я не нахожу опций для установки параметров (битрейт, нормализация диалогов, уровень surrounds и center). Есть пресет в Render As..., но его параметры нельзя поменять.

Последним шансом остается BeSweet, но к нему я прибегну только если не останется других альтернатив.
kvappa
2 userinfoElduderino:

Как именно вырубается Soft Encode? что происходит при этом?
Перезагрузка компьютера не помогает?
nod
2 userinfoElduderino:
Дополню...
Все же на мой взгляд надо учится делать все в Vegas-е. Были случаи когда простая смена fps не помогала...
Elduderino
QUOTE(kvappa @ Понедельник, 03 Декабря 2007, 14:28)
2 userinfoElduderino:

Как именно вырубается Soft Encode? что происходит при этом?
Перезагрузка компьютера не помогает?
*


Не помогает. Soft Encode начинает работать, показывает окошко прогресса со счетчиком Elapsed Time. Затем появляется счетчик Remaining Time (показывает, что работы часа на полтора), но секунды через три весь процесс программы бесследно исчезает.

Попробую сегодня сделать через Batch, может сработает так.
bubamara
Мои пять копеек.

Синхронизацию делаю в Audition. В multitrack view загружаются все интересующие wav (дорожка-пациент и дорожка-эталон) и - вперёд:

1. Общая оценка длительности дорожек, формы сигнала и его уровня. Перевожу - сидим и втыкаем в то, что видим на экране, настраиваясь на предстоящую работу.

2. Попытка синхронизации по максимально удалённым контрольным точкам. То есть по местам, где есть достаточно громкие и резкие общие звуки - выстрелы, удары. Делаем предварительный ресэмплинг дорожки в нужную сторону, чтобы звук в контрольных точках совпал.

3. Визуальный контроль результата по волновой форме и контроль на слух в ~10 точках как между контрольными, так и за их пределами. Если всё в порядке - прыгаем от счастья и переходим к п.8. Этот вариант по везению примерно равнозначен угадыванию всех номеров в "спортлото". Настраиваться на него не надо - это как Божий дар.

4. Если при совпадении звука в контрольных точках между ними или снаружи есть рассинхронизация - значит, в синхронизируемой дорожке (пациенте) другой сюжет - или что-то вырезано или что-то лишнее.

5. Сужаем диапазон между контрольными точками, повторяем п.2 - п.4 пока не находим достоверный (максимально продолжительный!) контрольный диапазон, внутри которого всё совпадает. По этому диапазону делаем вторую итерацию ресэмплинга всей дорожки - с нуля, отменив первую, чтобы не терзать лишний раз пациента. Действие основывается на предположении, что разница в "скорости" пациента и эталона - постоянна на всём протяжении фильма. Обычно это бывает так.

6. Делаем пробные разрезы и совмещаем ещё несколько участков, чтобы проверить верность предположения, на котором закончился п.5 Допустим, оно верное (иначе предстоит альтернативный секс с кусочным ресэмплингом пациента).

7. Вырезаем из пациента лишнее и добавляем недостающее. Как вырезать - понятно, а вот добавление - задача творческая. Можно использовать звук из эталона, но это слабо приемлемо при разном уровне и характере сигнала, а также в многоканальном звуке. Если другого варианта нет - приближаем характеристики нужного куска эталона к пациенту и вживляем в последнего.

8. Проверяем звук в начале (заставки кинокомпаний) и в конце (титры). При необходимости подрезаем пациента до размера эталона или, если пациент короче, - добиваем его спереди и сзади пустыми вавами - строго опционально, для красоты и единообразия.

9. Оставляем на столе Audition только нужные треки и экспортируем mixdown в wav (или, при необходимости - несколько дорожек, каждую - в отдельный wav).

Всё.

Разборка - tranzcode или DVD Audio Extractor. BeSweet не использую по причине ужасного алгоритма ресэмплинга. И никому не советую конвертировать fps автоматом через BeSweet - это как раз случай "простого и неправильного" решения, поскольку падение качества при этом заметно даже среднему уху.

Сборка DD - Soft Encode, сборка DTS - Minnetonka DTS Pro Coder. В Soft Encode отключается весь улучшайзинг, "dialog normalization" выставляется в то же значение, что было у оригинала.

Общее правило - минимум последовательных операций над звуковым файлом.

Отдельная песня - удаление шумов и т.п. Тут всё совсем творчески. Из-за сильного ветвления задачи, описание её решения - очень объёмно. Так что лучше познавать самому - методом чтения хелпа к Audition (по крайней мере), проб и ошибок.
Elduderino
Полезная вещь, bubamara!

А как вы справляетесь с запоминанием последовательности операций над одной дорожкой, чтобы перевести их и на остальные? (если это мультиканальный проект)? Ручками?

И еще раз мой вопрос: существует ли альтернатива Soft Encode для создания качественного (!) мультиканального AC3 с возможностью выставлять свои настройки (битрейт, нормализация диалогов, понижение по center/rear)?
bubamara
QUOTE(Elduderino @ Понедельник, 03 Декабря 2007, 18:21)
А как вы справляетесь с запоминанием последовательности операций над одной дорожкой, чтобы перевести их и на остальные? (если это мультиканальный проект)? Ручками?


Интересующие wav, стоящие рядом в мультитреке, идентично режутся и растягиваются. Наверное, можно макро написать, но, к счастью, сложная подгонка 5.1 звука - случай исключительно редкий.

QUOTE
существует ли альтернатива Soft Encode для создания качественного (!) мультиканального AC3 с возможностью выставлять свои настройки (битрейт, нормализация диалогов, понижение по center/rear)?
*

Для глобальных проектов, делающихся полностью в одной среде (например, для домашнего видео) использую Minnetonka Dolby Digital Encoder for Adobe Premiere Pro 2.0 - поток видео, конечно, отгружаю в DV для обжатия Канопусом, а вот звук - прямо из Премьера при помощи Миннетонки очень приличный получается. Но насчёт наличия там операций с уровнем фронтов-тылов... не помню.
ddolgopolov
а обязательно ли каналы разделять в отдельные WAV? почему бы не редактировать один двухканальный?

Добавлено:
QUOTE(Elduderino @ там)
существует ли альтернатива Soft Encode для создания качественного (!) мультиканального AC3 с возможностью выставлять свои настройки (битрейт, нормализация диалогов, понижение по center/rear)?


Nuendo 3? (ну нравится мне эта прога)
Elduderino
Если каналов всего два - можно и двухканальный. Но если их 6..?

У меня заработал Soft Encode. Ощущение, что исходные WAVы нужно класть на дефрагментированный диск, т.е. в оптимальном случае провести дефрагментацию диска, скопировать их на этот диск, и провести ее снова. И только потом запускать энкодинг.
ddolgopolov
QUOTE(Elduderino @ там)
провести дефрагментацию диска, скопировать их на этот диск, и провести ее снова

как-то слишком хлопотно blink.gif
starsoft
QUOTE(Elduderino @ там)
WAVы нужно класть на дефрагментированный диск

Ничего подобного, пользую прогу года 4 и никогда не делал под нее дефрагментацию. Вот что важно - это свободное место на том диске, который используется для временных файлов. Но в случае кодирования из WAV-ов это тоже не слишком критично. Проблема у тебя в системе, а прога - супер.
Elduderino
Программа-то супер, если б еще не глючила так без предупреждения...
Во всяком случае рецепт с дефрагментацией для меня сработал, и ладно. biggrin.gif
altar
QUOTE(kvappa @ Воскресенье, 02 Декабря 2007, 18:34)
2 userinfoaltar:
А что делаешь с препроцессингом, при этом?
Я его выключаю весь, ибо имхо он звук только портит. Особенно, уже не помню какая из опций, сразу же глушит общий уровень, как только кто-нибудь начинает говорить.
*


В препроцессоре есть разные вещи. Я все оставляю, как есть, по умолчанию.
1) Фильтры. По умолчанию задействованы DC и Low Pass. Оба нужны.
2) -3 дБ attenuation для surround каналов в 5.1. Вот это интересный момент. До сих пор я не задумывался над этим (я, в основном, классикой занимаюсь, т.е. стерео и моно). Я так понимаю, что это нужно, когда делают 5.1 ac3 для двд, т.е., домашнего просмотра, из микса, рассчитанного на кинотеатр. Нужно ли это делать нам при переделке - явно зависит от того, как декодирует BeSweet. Надо посмотреть, не помню.

3) Динамическая компрессия. В отличие от 1) и 2), результат зависит не только от кодировщика, но и от декодера. Если в фильме есть диалог, который должен быть разборчив (т.е., диалога больше, чем просто крики во время драки) и, в то же время, есть очень громкие звуки (типа взрывов), то Film Standard. Если один разговор - Film Light. Если динамический уровень диалога выставлен правильно, то и Динамическая компрессия приводит к хорошим результатам, позволяет разбирать диалог, слышать тихие звуки и не затыкать уши во время взрыва. Другое дело, на российских дорожках с переводом я постоянно обнаруживаю, что уровень диалога выставляется черт-те как, явно кем-то, кто понятия не имеет как этот параметр работает.
Надо глянуть, не помню, как этот параметр определить в имеющейся ac3 дорожке.
Так или иначе, в отличие от 1) и 2), компрессия отключается в усилке (по-крайней мере, если он выдает 5.1 сигнал).

Добавлено:
QUOTE(Elduderino @ Понедельник, 03 Декабря 2007, 2:57)
Еще одна просьба.
У меня почему-то начал глючить Soft Encode, вырубается через несколько секунд после начала кодирования.

Решил воспользоваться советом altar и свести дорожку в Vegas, однако там я не нахожу опций для установки параметров (битрейт, нормализация диалогов, уровень surrounds и center). Есть пресет в Render As..., но его параметры нельзя поменять.

Последним шансом остается BeSweet, но к нему я прибегну только если не останется других альтернатив.
*


В Вегасе все просто - в диалоге Render As достаточно нажать на кнопку Customize и увидите все параметры полного кодировщика Dolby Digital Encoder Pro во всей его красе. Куда более новая версия, чем в Soft Encode, хотя я не уверен, есть ли между ними большая разница по существу.
Elduderino
QUOTE(altar @ Понедельник, 03 Декабря 2007, 22:47)
В Вегасе все просто - в диалоге Render As достаточно нажать на кнопку Customize и увидите все параметры полного кодировщика Dolby Digital Encoder Pro во всей его красе.


У меня "Custom" деактивировано.

altar
Значит не в порядке ac3 плагин. Он активируется отдельно от остального Вегаса - как раз когда щелкаешь на Customize в первый раз. Вот как у меня диалог выглядит, в Вегасе 7:


template по умолчанию называется Default Template, остальные - это то, что я сохранил (т.е., что-то менял в установках)

Добавлено:
QUOTE(ddolgopolov @ Понедельник, 03 Декабря 2007, 13:08)
а обязательно ли каналы разделять в отдельные WAV? почему бы не редактировать один двухканальный?
*


У меня BeSweet выставлен раз и навсегда выдавать шесть 32-бит каналов. Все пустые каналы я сразу удаляю. С точки зрения нормального редактора, нет никакой разницы между двумя файлами, открытыми одновременно, как левый и правый каналы одной дорожки, и одним стерео файлом.
kvappa
2 userinfoaltar:
Да вот в том-то и дело, что что-то из препроцессинга в Soft Encode - звук откровенно портит. Слушаю английскую дорожку, слушаю оригинал русской - музыка на бэкграунде играет с одной громкостью, равномерно. Слушаешь перекодированное: как только начинается диалог - музыка на бэкграунде сразу начинает звучать тише, на первом же слове. Потом уровень опять поднимается, и опять падает. Бесило, помнится, жутко.
Сейчас попробую раскопать про это в архивах форума.
kvappa
2 userinfokvappa:

Ага, нашел таки! Вредитель сельского хозяйства - это "RF Overmudulation Protection"! Из-за него-то громкость и плавает постоянно.
kvappa
Посмотрел на "AC3 Encoder" - он очень похож на чуток проапгрейженый вариант Soft Encode, настройки все те же. Максимальный битрейт - до 640kbps.
Единственный минус - без декодера. Зато на вход принимает и PCM, в том числе.
Да, и графического отображения как в softencode - тоже нет.

В деле - надо проверять, конечно.
altar
QUOTE(bubamara @ Понедельник, 03 Декабря 2007, 11:54)
QUOTE(Elduderino @ Понедельник, 03 Декабря 2007, 18:21)
А как вы справляетесь с запоминанием последовательности операций над одной дорожкой, чтобы перевести их и на остальные? (если это мультиканальный проект)? Ручками?


Интересующие wav, стоящие рядом в мультитреке, идентично режутся и растягиваются. Наверное, можно макро написать, но, к счастью, сложная подгонка 5.1 звука - случай исключительно редкий.

QUOTE
существует ли альтернатива Soft Encode для создания качественного (!) мультиканального AC3 с возможностью выставлять свои настройки (битрейт, нормализация диалогов, понижение по center/rear)?
*

Для глобальных проектов, делающихся полностью в одной среде (например, для домашнего видео) использую Minnetonka Dolby Digital Encoder for Adobe Premiere Pro 2.0 - поток видео, конечно, отгружаю в DV для обжатия Канопусом, а вот звук - прямо из Премьера при помощи Миннетонки очень приличный получается. Но насчёт наличия там операций с уровнем фронтов-тылов... не помню.
*


В WaveLab есть возможность запомнить операции и сделать batch обработку на многих файлах. Но это в самом деле редко нужно.

И Миннетонка и Сони ac3 кодировщики - оболочки вокруг одного и того же Dolby Digital Encoder Pro. Все настройки и результат должны быть идентичны. У Канопусовского Прокодера, в 3-й версии, тоже появился такой же кодировщик. Однако хотя это и простая оболочка, в Прокодере кодировщик пока не работает - выдает все заглушенным децибеллов так на 10. Канопус знает об этом и вроде бы пытается починить.
С Миннетонкой всегда была проблема в том, что keygen для нее появлялся с большим опозданием. Спрашивается, где народная версия для Премьера в CS3?
altar
QUOTE(kvappa @ Понедельник, 03 Декабря 2007, 19:31)
2 userinfokvappa:

Ага, нашел таки! Вредитель сельского хозяйства - это "RF Overmudulation Protection"! Из-за него-то громкость и плавает постоянно.
*


Только я вспомнил, что это надо упомянуть, а уже и сам нашел.

На самом деле, это некая заморочка (а может и баг) в Soft Encode. По умолчанию, RF Overmudulation Protection в нем включено, тогда как во всех более поздних версиях DD Encoder Pro - выключено. Документы от Долби подчеркивают, что по умолчанию это дело должно быть выключено.
Но в Soft Encode дело еще хуже обстоит. В нем нет отдельных установок компрессии для line и RF, хотя внизу там видны два рисуночка, которые иллюстрируют разные виды компрессии в обеих модах - line и RF. Галочка "RF Overmudulation Protection" стоит под выбором моды и "как-бы" относится и к line и RF. По всем документам однако, она должна иметь эффект только на RF. Разумеется, ДВД расчитан на line и любой ресивер работает через line. Если вредитель сельского хозяйства влияет тем не менее на результат, это настоящий вредитель в Soft Encode. Конечно, если знать и отключить, то дело исправляется, но это дает очень серьезный повод не доверять Soft Encode вообще, как социально чуждому.

Еще раз подчеркну - AFAIK, динамическая компрессия используется практически во всех голливудских фильмах, либо Film Standard (типа боевиков), либо Film Light (драма). Рок-концерт имеет динамический диапазон близкий к нулю, и на ДВД записывается с отключенной компрессией. Все это необходимо для комфортного прослушивания и работает только если правильно выставлена нормализация диалога. На русских дорожках с переводом она сплошь и рядом выставлена неправильно.

Кроме того, динамическая компрессия никак не влияет на сам результат кодировки. Все, что происходит - в ac3 добавляются данные анализа громкости, этакая подсказка для декодера. Если пользователь разрешил это декодеру, он будет подсказку использовать. Если домашний театр оборудован в звукоизолированном подвале, то компрессию можно и отключить. Если ресивера нет, а плеер выдает только downmix в стерео, то компрессию обычно отключить невозможно.
kvappa
2 userinfoaltar:
Сейчас посмотрел в "AC3 Encoder" (который от сценариста) - там тоже по дефолту "RF Overmudulation Protection" стоит. Это они явно со зла.

Ладно, попробую еще Вегас поставить.
altar
2 userinfokvappa:
Может Сценарист древний? Ох, никогда не лежала у меня к нему душа.

Добавлено:
Еще такой интересный момент для 5.1: 90-градусный фазовый сдвиг для задних каналов. Кодировщик кодирует задние каналы сдвинутыми, это не просто пометка в заголовке. Кстати, как и с фильтрами - декодировщику эти данные не передаются. По умолчанию эта установка обязательно включена, она не нужна только если запись проводилась на 5 фиксированных микрофонов по углам, чего в природе не бывает. Но мы-то декодируем и кодируем по-новой, а не работаем с оригинальным материалом! Получается, что эта установка должна быть выключена.

Еще бы с 3 дБ приглушением задних каналов разобраться и был бы комплект.
kvappa
2 userinfoaltar:
А что делают фильтры:
DC high pass
Bandwith low-pass
LFE low-pass
?

Если что-то из этого режет низкие частоты, перенося их в LFE, или наоборот - извлекает частоты выше определенной из LFE и распределяет их по другим каналам, то разве не "всё обрезано до нас"? Или мы, на этапе манипуляций со звуком, таки создаем поле деятельности для работы фильтров?
Elduderino
Собственно тоже такой вопрос. Если мы уже взяли имеющуюся дорожку AC3, перевели в WAV, и возвращаем в AC3 без изменений в громкости - какой эффект окажут дополнительно вбитые фильтры и установки уровней...
altar
QUOTE(bubamara @ Понедельник, 03 Декабря 2007, 10:03)
......
2. Попытка синхронизации по максимально удалённым контрольным точкам. То есть по местам, где есть достаточно громкие и резкие общие звуки - выстрелы, удары. Делаем предварительный ресэмплинг дорожки в нужную сторону, чтобы звук в контрольных точках совпал.
......
5. Сужаем диапазон между контрольными точками, повторяем п.2 - п.4 пока не находим достоверный (максимально продолжительный!) контрольный диапазон, внутри которого всё совпадает. По этому диапазону делаем вторую итерацию ресэмплинга всей дорожки - с нуля, отменив первую, чтобы не терзать лишний раз пациента. Действие основывается на предположении, что разница в "скорости" пациента и эталона - постоянна на всём протяжении фильма. Обычно это бывает так.
.......
8. Проверяем звук в начале (заставки кинокомпаний) и в конце (титры). При необходимости подрезаем пациента до размера эталона или, если пациент короче, - добиваем его спереди и сзади пустыми вавами - строго опционально, для красоты и единообразия.
.......

Разборка - tranzcode или DVD Audio Extractor. BeSweet не использую по причине ужасного алгоритма ресэмплинга. И никому не советую конвертировать fps автоматом через BeSweet - это как раз случай "простого и неправильного" решения, поскольку падение качества при этом заметно даже среднему уху.

Сборка DD - Soft Encode, сборка DTS - Minnetonka DTS Pro Coder. В Soft Encode отключается весь улучшайзинг, "dialog normalization" выставляется в то же значение, что было у оригинала.

Общее правило - минимум последовательных операций над звуковым файлом.
*


Тут у меня несколько непоняток.
1. А, еще разок прочитал и понял, что первая непонятка - из-за терминологии. Ты все время говоришь ресэмплинг, а подразумеваешь изменение продолжительности. Под resampling обычно понимают изменение частоты дискретизации, а она у нас постоянна - 48 кГц. Очевидно дело в том, что изменение длины без сохранения высоты в Audition тоже называют resampling - что по сути справедливо, но непривычно по употреблению.

2. Далее, такая дидактическая проблема. Может возникнуть ощущение, что растяжка PAL -> NTSC делается по соотношению длин между контрольными точками. Или это не ощущение, а так и делается? Где-то, что-то потянуть - может быть, но растягивать всю дорожку из PAL в NTSC по соотношению длин между контрольными точками - с этим категорически не соглашусь. Соотношение между длинами одинакового материала в PAL и NTSC совершенно точное - у PAL частота кадров ровно 25, у NTSC - (4/5) * 90000/3003 = 23.976... Откуда могут взяться отклонения, что там у них, тактовая частота плывет? Это маловероятно, самые дешевые кварцевые часы уходят на секунду в месяц. Думаю, что разброс при трансфере не должен превышать 10-20 мс.

Полагаю, что растягивать надо точно по соотношению между скоростями PAL и NTSC. WaveLab позволяет задать точность растяжки вплоть до шага дискретизации. Бьюсь об заклад - любой рассинхрон после этого - либо разница в материале (отсутствуют какие-либо куски), либо - точечные сдвиги. Скажем, точечный сдвиг на 20-100 мс каждые 5-10 мин элементарно может выглядеть, как прогрессирующий рассинхрон, тогда как лечить его надо не растяжением, а локализованным вмешательством, переклейкой/резкой в местах сбоя.

Перед растяжкой на 4% обязательно надо проверить высоту звука, между близкими контрольными точками, желательно в местах с музыкой. Если высота PAL звука больше где-то на 70 центов, чем у NTSC - значит трансфер делали без сохранения высоты звука. А значит и растяжку тогда надо делать без сохранения высоты - она сама упадет до уровня оригинала. Такая растяжка - самое примитивное линейное растяжение, ресэмплинг с локальной интерполяцией. Другое дело, если высота в PAL и NTS. совпадает. Тогда и нам надо ее сохранить. Такие алгоритмы значительно сложнее, я их уже описывал. Справедливости ради следует отметить, что и BeSweet и Cool Edit, а потом и Audition (включая, насколько я понимаю, и 2-ю версии) используют один и тот же алгоритм растяжки - WSOLA. Разумеется, я бы не стал совмещать операции и не позволил бы BeSweet делать растяжку - но не понятно, почему BeSweet бы это сделала хуже, чем Audition. В любом случае, WSOLA - алгоритм невысокого качества.

Только что узнал, что в Audition 3 используется новый алгоритм растяжки - Радиус от iZotope (Adobe говорит, что это одна из 10 главных новых фич в новой версии). По отзывам, Радиус находится в том же классе, что и алгоритмы Серато и Просоника. Другое дело, что про него мало что известно пока, кроме того, что пользоваться им тяжело - нужно выбирать из нескольких алгоритмов и настроек. Серато - это чрезвычайно сильно модифицированный фазовый вокодер, Просоник - wavelet + распознание нейронной сетью. Серато - монополист в Западной Европе при трансфере фильмов на PAL DVD.

3. А почему подбивать под длину оригинала - опционально? Мы же потом будем все это муксить вместе.

4. В "Soft Encode отключается весь улучшайзинг" - это что? Там никакого улучшайзинга вроде нет. Есть несколько фильтров, но они необходимы (а в ситуациях, когда какой можно было бы и отключить, он ни на что не влияет - как в случае с DC фильтром, когда c DC все в порядке).

5. "Общее правило - минимум последовательных операций над звуковым файлом" - ну простые изменения уровня, склейки и обрезки делать не страшно, когда работаешь с 32 бит. А растяжку лучше делать один раз. Dolby Encoder использует до 24 бит информации, но спокойно принимает 32-бит файлы. Все внутренние операции в аудио-редакторах делаются в 32-бит. Поэтому и сбрасываю из BeSweet файлы в 32-бит. Всегда полагал, что в такой ситуации dithering можно не делать, а сейчас задумался - собственно, почему? Если Долби потом просто берет верхние 24 бита, то, по идее, dithering нужен как самая последняя операция с wav в аудио редакторе. Конечно, 24 бит - не 16, вряд ли кто услышит разницу с dithering и без.

Добавлено:
QUOTE(kvappa @ Понедельник, 03 Декабря 2007, 22:41)
2 userinfoaltar:
А что делают фильтры:
DC high pass
Bandwith low-pass
LFE low-pass
?

Если что-то из этого режет низкие частоты, перенося их в LFE, или наоборот - извлекает частоты выше определенной из LFE и распределяет их по другим каналам, то разве не "всё обрезано до нас"? Или мы, на этапе манипуляций со звуком, таки создаем поле деятельности для работы фильтров?
*


DC high pass убирает постоянную составляющую (проблема плохой аппаратуры записи). Если ее нет, он ни на что не влияет. Любой аудио редактор может ее проверить и убрать. Но, поскольку этот фильтр не может ничего испортить, он должен быть включен.

Bandwith low-pass - аккуратно убирает частоты выше полосы пропускания кодировщика (которая зависит от бит-рейт; при рекомендуемой - будет выше 20 кГц). Обязательно, поскольку убирает слышимые искажения за счет anti-aliasing.

LFE low-pass - убирает частоты выше 120 Гц из LFE.

Я полагаю, что все 3 фильтра должны быть всегда задействованы. Любые наши манипуляции со звуком дадут им пищу для работы.

Другое дело, 90-градусный сдвиг и 3 дБ заглушение задних каналов. Сдвиг, полагаю, надо отключить, иначе у нас получится уже 180 градусов от повторного применения. 3 дБ заглушение - зависит от того, как BeSweet раскодирует, компенсирует или нет. Надо провести несколько простых экспериментов, попробую сегодня, если будет время.
bubamara
QUOTE(altar @ Вторник, 04 Декабря 2007, 20:00)
Ты все время говоришь ресэмплинг, а подразумеваешь изменение продолжительности.  Под resampling обычно понимают изменение частоты дискретизации, а она у нас постоянна - 48 кГц.  Очевидно дело в том, что изменение длины без сохранения высоты в Audition тоже называют resampling - что по сути справедливо, но непривычно по употреблению.
Ресэмплинг - логически - любая операция, при которой меняется "рисунок" звуковой формы относительно квантов (цифровых сэмплов). То есть производится операция цифрового искажения звука из-за смены точек наложения границ сэмплов. Растяжение/сжатие звука с пропорциональным изменением частоты ресэмплингом не является. С сохранением или непропорциональным изменением частоты - является, ибо для такой операции как раз нужны числовые алгоритмы.

QUOTE
Может возникнуть ощущение, что растяжка PAL -> NTSC делается по соотношению длин между контрольными точками.  Или это не ощущение, а так и делается?  Где-то, что-то потянуть - может быть, но растягивать всю дорожку из PAL в NTSC по соотношению длин между контрольными точками - с этим категорически не соглашусь.  Соотношение между длинами одинакового материала в PAL и NTSC совершенно точное
Именно так. Случай PAL>NTSC (или обратно) я не рассматриваю - как тривиальный. 23.976 / 25 или наоборот - всё, что надо знать.

QUOTE
Скажем, точечный сдвиг на 20-100 мс каждые 5-10 мин элементарно может выглядеть, как прогрессирующий рассинхрон,  тогда как лечить его надо не растяжением, а локализованным вмешательством, переклейкой/резкой в местах сбоя.
Угу. Именно так.

QUOTE
А почему подбивать под длину оригинала - опционально?  Мы же потом будем все это муксить вместе.
Кусок спереди Audition сам добьёт пустым вавом, кусок сзади - малоинтересен, поскольку мультиплекс производится по фронтальному сдвигу. Неоднократно наблюдал на лицензии различную длину аудиодорожек в одном и том же vts.

QUOTE
В "Soft Encode отключается весь улучшайзинг" - это что?  Там никакого улучшайзинга вроде нет.  Есть несколько фильтров, но они необходимы
В сети есть русскоязычное руководство (ссылка на него есть, если правильно не ошибаюсь, и в местном ЧаВо), где сказано: "все галки - убрать, dialog normalization выставить как в оригинале". Так и делаю. Пока. Поскольку с интересом читаю твои разъяснения про фильтры Soft Encode и переосмысливаю процесс.

QUOTE
А растяжку лучше делать один раз.
Именно это я в первую очередь имел в виду под "минимумом последовательных операций". Перед каждым изменением длительности - отменить предыдущее и растягивать оригинал "с нуля".

QUOTE
Всегда полагал, что в такой ситуации dithering можно не делать, а сейчас задумался - собственно, почему?
dithering в обязательном порядке делается только при уменшении битности. Если преобразовывать 32->16 - он нужен. В других случаях - затрудняюсь сказать.

QUOTE
Конечно, 24 бит - не 16, вряд ли кто услышит разницу с dithering и без.
В случае с dd и dts - полностью согласен. Искажения, вносимые сжатием - более высокого порядка, чем выпадения битов, которые призван корректировать dithering.

В очередной раз огромное спасибо за порцию пищи для мозга.
Mantisby
QUOTE(altar @ там)
Далее - рассмотрим ползучий, кусочно-сдвиговый рассинхрон.

похоже столкнулся с чем-то подобным. Есть East of Eden широкоформатный только с английской дорожкой и дорожка с VHS-rip.
Выделил несколько точек в фильме, подсчитал разницу. Она не постоянная, изменяется от 2.37,390 до 4.58, 850. Причем изменяется неравномерно, к концу фильма явно быстрее увеличивается.
Что можно сделать в таком случае? или проще субтитры прикрутить?
kvappa
2 userinfoaltar:
А всё-таки! Как в Wavelab-е правильно поменять FPS каналов?
Через Time Stretching? А какие настройки тогда? То что я пробовал сделать, по результату выходило ничуть не лучше чем в samplitude - такой же рваный звук!
altar
2 userinfokvappa:
Стерео wav (или два моно, открытые вместе, в одном окне) - участок для растяжения должен быть выбран. Жмем T (Time Stretching):


Выбираем High Quality.
Я вычисляю не процентное изменение (там всего три знака после запятой), а напрямую число выборок. Вычисляю в Excel. Предположим, что мы растягиваем из PAL в NTSC. В данном случае - было 449499648 выборок, умножаем на 25/(24000/1001), получаем 468697029. (Если бы умножали на обычное 25/23.976, получили бы 468697497, разница небольшая, но все-таки... Кстати, 24000/1001 - это тактовая частота 90000, поделенная на 3003 (drop-frame), умноженная на 4/5 (3:2 pulldown)). Прямо из Excel число переклеиваю (Ctrl-C, Ctrl-V).

Установки:
1. Preserve Pitch. Сохранять ли высоту - большой вопрос. В очень многих PAL изданиях, высота звука выше, где-то на 70 центов - это значит, что при трансфере с пленки высоту не сохраняли. Значит и нам ее сохранять не надо, она упадет при растяжении до оригинального состояния на пленке. И в этом случае, мы имеем дело с совсем простым алгоритмом - всего лишь resampling. Итак, меряем высоту на участках со строго одинаковым контентом (заведомо разной длины за счет PAL<->NTSC - я нахожу синхроточку, а потом вычисляю нужные длины). Для замера участок должен быть выделен. Жмем Y (Global Analysis), Analyze, записываем значение Pitch. Если у PAL дорожки высота близка к NTSC, активируем опцию. Если высота больше (чуть меньше полутона, где-то 70 центов), значит и нам не надо ее сохранять, деактивируем опцию.

2. Audio Quantize. Если активирована, итоговая длина будет точно такой, как задано. Если нет - может отличаться на несколько мс, зато будет чуть-чуть лучшее качество.

3. Rhythm Accuracy. От - 5 до 5. Чем больше значение, тем выше аккуратность ритмического материала, но общее качество несколько падает. Ритмика важна, скажем, для барабанного боя, для рок музыки. Для нормального фильма или классической музыки - качество важнее (Брамс играл с колоссальном рубато - сохранились ролики, так сейчас почти никто не играет, азиатская игра под метроном никого не трогает)

Все это замечательно, но если сейчас нажать Process, WaveLab сдохнет - файлы слишком большие. В 5-й версии, он не работает больше, чем с 2 ГБ. Для этого скрина у меня были открыты 2 моно файла, как один стерео, каждый файл по 1,67 ГБ. Так что, такие большие дорожки придется разбивать на пару кусков frownold.gif.

Для сохранения фазовой аккуратности, оба канала в стерео должны быть обработаны одновременно (в стерео файле, или в двух моно, открытых одновременно, в одном окне).

Сразу скажу, 5.1 не приходилось растягивать в WaveLab. В 5-й версии, это небольшой напряг. Надо создать монтаж, перейти в моду DVD-Audio, добавить все 6 каналов, раскидать их по правильным позициям, каждый в свой угол. Потом навести курсор точно в точку, докуда растягиваем. На меню на правой кнопке мыши будет Time Stretch to Cursor. Появится тот же диалог, что и раньше, но новая длина будет уже выбрана (по положению курсора) и поменять ее будет нельзя. Что при этом получится на выходе - не знаю. Я сейчас экспериментирую с установками ac3 кодировки - о-о-очень любопытные результаты, даже не знаю, что думать, скоро отпишусь.
Elduderino
QUOTE
3. Rhythm Accuracy. От - 5 до 5. Чем больше значение, тем выше аккуратность ритмического материала, но общее качество несколько падает.

А для наилучшего качества, какое значение параметра лучше: -5 или 0?

Кстати, altar, у меня по Вегасу вопрос.
Когда делал "Блэйд раннера", у меня опять начал глючить СофтЭнкод. Поэтому я загрузил 6 файлов в Вегас и расставил их соответствующе по 6 каналам. Когда же срендрил финальный звук - получилась полная белиберда. Части центрального канала влезали в фронтовые стереоканалы, все как-то перемешалось. Пришлось отказаться от Вегаса и переустанавливать СофтЭнкод. И вот уже тот сделал все по-людски.

Скриншотов дать не могу, но может, ты знаешь, в чем там проблема?
altar
Понятия не имею, у меня никогда с Вегасом не было проблем. Разгоняешь точки по углам квадратика, точка для центрального канала в центре спереди. Сабвуфер - меняем моду на LFE. Все, как в Софт Энкоде, только версия кодировщика поновей.

Добавлено:
Rhythm Accuracy - я бы оставил на нуле (если только это не рок-концерт). -5 должен дать наилучшее качество в динамических местах, за счет уменьшения аккуратности ритма. Если ушам доверяешь - экспериментируй.
kvappa
Поставил сегодня 9-й Samplitude и попробовал оттрансформить треки в нем (до этого пользовался 8-м). Благо, программа позволяет без проблем все каналы махом обработать.
Сделал Time Stretch в режиме Normal, с флагом HQ. И запустил мультитрековый Track bouncing в режиме Ultra High 2 (32-bit Float).
Знаете, а результат мне очень даже понравился! Осталась вся детализация, весь объем, и даже динамика почти не пострадала! Уровень только совсем чуток пришлось поднять, на 0,5ДБ где-то, чтобы оригиналу соотвествовало. После кодирования AC3 небольшая разница есть, конечно, по сравнению с исходником, но если раскодировать дорожку и, ничего не делая с ней, просто закодировать обратно тут же - разница будет примерно в том же диапазоне!
В общем, теперь Besweet, со своей конвертацией FPS, однозначно нервно курит в сторонке! Та же дорожка, полученная через его конвертор, - просто какая-то каша бесформенная! smileold.gif
altar
QUOTE(kvappa @ Пятница, 04 Января 2008, 16:16)
После кодирования AC3 небольшая разница есть, конечно, по сравнению с исходником, но если раскодировать дорожку и, ничего не делая с ней, просто закодировать обратно тут же - разница будет примерно в том же диапазоне!
*

Вот это меня сейчас очень интересует. Без всякой растяжки, а именно сам цикл: разобрать BeSweet'ом (все фильтры и компрессии отключены), собрать, ничего не меняя, официальным кодировщиком (Вегасом, для определенности), снова разобрать результат BeSweet'ом. Теперь сравниваем результат после 1-й и 2-й разборки. Задача - установить параметры кодировки, чтобы результаты максимально совпадали (в том числе, естественно, по уровню и фазе). Нахожусь в неком недоумении. Какие у кого мысли на сей счет?
kvappa
2 userinfoaltar:
А кто ж его знает! В любом случае, результат будет отличаться. Ибо рекомпрессия..!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2024 Invision Power Services, Inc.