Странные DTS, рипнутые из Blu-Ray

Ответить
 

AnryV

Top Seed 02* 80r

Стаж: 18 лет

Сообщений: 3151

AnryV · 30-Дек-08 13:02 (16 лет 3 месяца назад, ред. 30-Дек-08 13:06)

Уже несколько раз сталкивался с такой прорблемой - при попытке подцепить внешней дорогой DTS файл, выдернутый из BD, получаю рассинхрон с видео. Если смуксить этот же звук с видео в mkv то все в порядке - синхронизация полная. Можно так же сделать отдельный файл mka и цеплять его внешним звуком - тоже все нормально. Проблема в том, что пока DTS не запихнут в контейнер, плеер не корректно определяет продолжительность. DelayCut тоже показывает время не правильно. А вот, например, eac3to показывает то время, которое и должно быть.
В чем тут собака порылась? Можно ли как-то поправить, например, заголовок в таком файле?
Info from eac3to:
DTS, 5.1 channels, 1:59:41, 24 bits, 768kbps, 48khz
Info from Delaycut:
====== INPUT FILE INFO ========================
File is dts
Bitrate (kbit/s) 768
Act rate (kbit/s) 754.500
File size (bytes) 689363968
Channels mode C+L+R+SL+SR
Sampling Frec 48000
Low Frec Effects LFE: Present
Duration 02:01:49.359
Frame length (ms) 10.857522
Frames/second 92.102051
Num of frames 673207
Bytes per Frame 1024.0000
Size % Framesize 0
CRC present: NO
=============================================
[Профиль]  [ЛС] 

Mixin

Старожил

Стаж: 18 лет 2 месяца

Сообщений: 880

Mixin · 30-Дек-08 15:29 (спустя 2 часа 26 мин.)

AnryV
Чем выдернут из BD? DTS ли он или ядро от HDA?
[Профиль]  [ЛС] 

AnryV

Top Seed 02* 80r

Стаж: 18 лет

Сообщений: 3151

AnryV · 30-Дек-08 16:10 (спустя 41 мин.)

Mixin писал(а):
AnryV
Чем выдернут из BD? DTS ли он или ядро от HDA?
eac3to. Последние разы это было с русифицированных дисков - Я,робот и Хеллбой 2. Это просто потоки. Раньше такое попадалось в рипах - например, Ронин. Там, скорее всего, это было ядро.
[Профиль]  [ЛС] 

Shan1

Стаж: 18 лет 3 месяца

Сообщений: 289


Shan1 · 30-Дек-08 16:17 (спустя 7 мин.)

Мне кажется разница в кодировании dts. Для DVD используется один энкодер, типа Surcode или DTS Pro Encoder, для блюрея другой. Но декодеры не совсем верно парсят заголовки.
DTS вытащеный из DVD:
+ DTS-Core
- frameSize 1006
- DTS-ES -
- channelNo 5
- lfe 1
- channelDescr 5.1
- samplingRate 48000
- bitDepth 24
- bitrate 754500
- samplesPerFrame 512
- copyHistory 1
DTS из BluRay:
+ DTS-Core
- frameSize 1024
- DTS-ES -
- channelNo 5
- lfe 1
- channelDescr 5.1
- samplingRate 48000
- bitDepth 24
- bitrate 768000
- samplesPerFrame 512
- copyHistory 1
А поскольку в заголовках dts нет таймстампов, а в контейнере mkv есть, получаем рассинхрон с отдельным файлом.
Попробуй другой кодек заюзать.
[Профиль]  [ЛС] 

AirMike73

Стаж: 17 лет 11 месяцев

Сообщений: 325


AirMike73 · 30-Дек-08 16:22 (спустя 4 мин., ред. 30-Дек-08 16:30)

Я уже в теме по Mamma Mia отписался. Ну может просто быть, что в BD DTS-Padded, а в двд и обычно при кодировании SurCode DTS-Compact?
[Профиль]  [ЛС] 

AirMike73

Стаж: 17 лет 11 месяцев

Сообщений: 325


AirMike73 · 30-Дек-08 16:33 (спустя 11 мин., ред. 30-Дек-08 16:33)

Shan1 писал(а):
А поскольку в заголовках dts нет таймстампов
Ну дык в заголовках AC3 тоже нету таймстампов(если конечно при кодировании эти не озадачиться), но никаких рассинхронов.
Вижу всеж проблему, что декодер(AC3Filter какой) принимает за данность, что нужный объем фрейма 1006 байт и на 1024 байтах просто неправильно вычисляет нужное место в файле, куда ткнутся за фреймом, находит синхробайты и читает ближайший.
Раскодируется сей файл кстати Tranzcode совершенно нормально, длительность в вавах какая надо. Потом можно снова кодернуть SurCode, получится файл на 10 мегов меньше, будет при проигрывании синхронен. Но перекодировка... не наш метод
[Профиль]  [ЛС] 

Shan1

Стаж: 18 лет 3 месяца

Сообщений: 289


Shan1 · 30-Дек-08 16:38 (спустя 5 мин., ред. 30-Дек-08 16:38)

AirMike73 писал(а):
Не может просто быть, что в BD DTS-Padded, а в двд и обычно при кодировании SurCode DTS-Compact?
Сильно сомневаюсь. Я как-то пробовал закодировать Padded обоими кодировавщиками, фигня получалась, раздутая в два раза по времени (действительно padded ). Просто DTS из BD содержит дополнительную информацию - Auxiliary Data и Extended Audio Coding.
Я чуток разбирался с заголовками, когда пытался заменить DTS-дорогу в m2ts из-за разницы размеров фреймов в этих dts, но так и не победил. С ac3 все было проще, потоки с одинаковым битрейтом всегда имеют один размер фрейма.
AirMike73 писал(а):
Ну дык в заголовках AC3 тоже нету таймстампов(если конечно при кодировании эти не озадачиться), но никаких рассинхронов.
ac3-фреймы с одинаковым битретом всегда имеет одну и ту-же длительность по времени, а dts нет.
[Профиль]  [ЛС] 

AnryV

Top Seed 02* 80r

Стаж: 18 лет

Сообщений: 3151

AnryV · 30-Дек-08 16:43 (спустя 4 мин., ред. 30-Дек-08 16:43)

Shan1 писал(а):
А поскольку в заголовках dts нет таймстампов, а в контейнере mkv есть, получаем рассинхрон с отдельным файлом.
Попробуй другой кодек заюзать.
А при чем тут кодек, если DelayCut тоже не правильно определяет длительность?
И откуда таймстампы появляются в mka?
[Профиль]  [ЛС] 

AirMike73

Стаж: 17 лет 11 месяцев

Сообщений: 325


AirMike73 · 30-Дек-08 16:46 (спустя 3 мин.)

Shan1 писал(а):
раздутая в два раза по времени
Это ты в параметрах задал 768 битрейт, и кодировал DTS-padded, получал размер как для битрейта 1536. SurCode глючный. А попробуй закодировать 1536 DTS-padded. Я кодировал(случайно), размер от обычного 1536 DTS отличался на десятки мегабайт.
[Профиль]  [ЛС] 

Shan1

Стаж: 18 лет 3 месяца

Сообщений: 289


Shan1 · 30-Дек-08 16:47 (спустя 1 мин., ред. 30-Дек-08 16:49)

Незнаю почему delaycut неверно определяет общую длительность, но длительно фрейма он определяет верно.
DTS из DVD:
File is dts
Bitrate (kbit/s) 768
Act rate (kbit/s) 754.500
File size (bytes) 489682572
Channels mode C+L+R+SL+SR
Sampling Frec 48000
Low Frec Effects LFE: Present
Duration 01:26:32.128
Frame length (ms) 10.666667
Frames/second 93.750000
Num of frames 486762
Bytes per Frame 1006.0000
Size % Framesize 0
CRC present: NO
Кусок DTS из BD:
File is dts
Bitrate (kbit/s) 768
Act rate (kbit/s) 754.500
File size (bytes) 24986624
Channels mode C+L+R+SL+SR
Sampling Frec 48000
Low Frec Effects LFE: Present
Duration 00:04:24.934
Frame length (ms) 10.857522
Frames/second 92.102051
Num of frames 24401
Bytes per Frame 1024.0000
Size % Framesize 0
CRC present: NO
Других причин подобного я просто не вижу.
AirMike73 писал(а):
Это ты в параметрах задал 768 битрейт
Возможно ты прав, надо будет попробовать.
[Профиль]  [ЛС] 

AirMike73

Стаж: 17 лет 11 месяцев

Сообщений: 325


AirMike73 · 30-Дек-08 16:48 (спустя 29 сек.)

AnryV писал(а):
И откуда таймстампы появляются в mka?
А вот это как раз логично, мквмерге знает правильно формат DTS-padded, нужные DTS фреймы сует в нужные временные блоки.
[Профиль]  [ЛС] 

AirMike73

Стаж: 17 лет 11 месяцев

Сообщений: 325


AirMike73 · 30-Дек-08 16:50 (спустя 2 мин.)

Shan1 писал(а):
но длительно фрейма он определяет верно.
Shan1 писал(а):
Frame length (ms) 10.857522
Вот это и лажа, длительность фрейма в реале теже 10,6(6).
[Профиль]  [ЛС] 

AnryV

Top Seed 02* 80r

Стаж: 18 лет

Сообщений: 3151

AnryV · 30-Дек-08 16:59 (спустя 8 мин.)

AirMike73 писал(а):
Shan1 писал(а):
но длительно фрейма он определяет верно.
Shan1 писал(а):
Frame length (ms) 10.857522
Вот это и лажа, длительность фрейма в реале теже 10,6(6).
Проверил от кодека нифига не зависит - что АЦ3фильтр, что Киберлинк, что Арксофт - длительность не правильно, рассинхрон.
А вот откуда eac3to берет правильную длительность?
[Профиль]  [ЛС] 

Shan1

Стаж: 18 лет 3 месяца

Сообщений: 289


Shan1 · 30-Дек-08 17:01 (спустя 1 мин.)

Однако в DTS Pro Encoder я тоже не смог закодировать padded dts, или это не padded, или у производителей BD есть свой хитрый софт, который правильно кодирует padded. А у кодеков с этим беда.
[Профиль]  [ЛС] 

Shan1

Стаж: 18 лет 3 месяца

Сообщений: 289


Shan1 · 30-Дек-08 17:04 (спустя 2 мин.)

А может и не кодек виноват, а плеер. ведь это он скармливает кодеку поток, и решение принимать с какого места проигрывать, то-же ему.
[Профиль]  [ЛС] 

AirMike73

Стаж: 17 лет 11 месяцев

Сообщений: 325


AirMike73 · 30-Дек-08 17:07 (спустя 3 мин., ред. 30-Дек-08 17:09)

AnryV писал(а):
А вот откуда eac3to берет правильную длительность?
Правильно понимает длину фрейма DTS константной = 10,6(6). Все рассинхронизированные девайсы принимают так, что 1006 байт это 10,6(6)мс, а если размер фрейма больше, значит и длительность его больше.
Отсюда кстати мне кажется и идет различие в заявленных битрейтах(768) и актуальных (754). Битрейт 768 только для DTS-padded.
Вот я уже сам себя убедил, что проблема однозначно в этом формате DTS
[Профиль]  [ЛС] 

AnryV

Top Seed 02* 80r

Стаж: 18 лет

Сообщений: 3151

AnryV · 30-Дек-08 17:08 (спустя 1 мин.)

Shan1 писал(а):
А может и не кодек виноват, а плеер. ведь это он скармливает кодеку поток, и решение принимать с какого места проигрывать, то-же ему.
Кто виноват при проигрывании - это уже следствие. Причина в кривом заголовке DTS. Если плееры берут инфу оттуда же, откуда DelayCut, то...
[Профиль]  [ЛС] 

AirMike73

Стаж: 17 лет 11 месяцев

Сообщений: 325


AirMike73 · 30-Дек-08 17:13 (спустя 4 мин., ред. 30-Дек-08 17:13)

AnryV писал(а):
Причина в кривом заголовке DTS
Он не кривой, он такой какой есть. И возможно что эти 18 байт вовсе не лишние, а какие-нибудь CRC.
[Профиль]  [ЛС] 

Shan1

Стаж: 18 лет 3 месяца

Сообщений: 289


Shan1 · 30-Дек-08 17:30 (спустя 17 мин.)

Нет, это не CRC, там какая-то расширенная инфа по потоку. Я выше писал об этом.
[Профиль]  [ЛС] 

AirMike73

Стаж: 17 лет 11 месяцев

Сообщений: 325


AirMike73 · 30-Дек-08 17:33 (спустя 2 мин.)

Shan1 писал(а):
Я выше писал об этом.
Shan1 писал(а):
ac3-фреймы с одинаковым битретом всегда имеет одну и ту-же длительность по времени, а dts нет.
Дык это ошибочный посыл, DTS фрейм имеет тоже всегда одинаковую длительность(имхо).
[Профиль]  [ЛС] 

Mixin

Старожил

Стаж: 18 лет 2 месяца

Сообщений: 880

Mixin · 30-Дек-08 17:40 (спустя 7 мин., ред. 30-Дек-08 17:40)

AnryV
Пока в дебри не ушли, скажи, а что оно тебе далось-то?
AirMike73 писал(а):
DTS фрейм имеет тоже всегда одинаковую длительность(имхо
Выходит, что не всегда.
[Профиль]  [ЛС] 

AnryV

Top Seed 02* 80r

Стаж: 18 лет

Сообщений: 3151

AnryV · 30-Дек-08 17:43 (спустя 2 мин., ред. 30-Дек-08 19:03)

Mixin писал(а):
AnryV
Пока в дебри не ушли, скажи, а что оно тебе далось-то?
А фигли оно себя так ведет?!.
[Профиль]  [ЛС] 

Shan1

Стаж: 18 лет 3 месяца

Сообщений: 289


Shan1 · 30-Дек-08 17:49 (спустя 5 мин., ред. 30-Дек-08 17:49)

AirMike73 писал(а):
Дык это ошибочный посыл, DTS фрейм имеет тоже всегда одинаковую длительность(имхо).
Это я уже понял.
Сейчас поигрался, попробовал закодировать DTS Padded, и так и сяк пробовал, получается что в BD все таки не padded, а обычный compact, ибо все равно херня получается, даже если битрейт ставить 1536. Да и eac3to его определяет как DTS (zero padded), из BD всегда просто DTS. Да и delaycut говорит что размер фрейма в padded теже 1006 байт.
[Профиль]  [ЛС] 

AirMike73

Стаж: 17 лет 11 месяцев

Сообщений: 325


AirMike73 · 30-Дек-08 18:57 (спустя 1 час 8 мин.)

Mixin писал(а):
Выходит, что не всегда.
Ну пример, который исследует автор темы, как раз показывает, что всегда. Только программы некоторые глючит и они считают по другому.
Shan1 писал(а):
получается что в BD все таки не padded
Щас чего-нибудь раскодирую, кусочек потом SurCode закодирую.
[Профиль]  [ЛС] 

AirMike73

Стаж: 17 лет 11 месяцев

Сообщений: 325


AirMike73 · 30-Дек-08 19:38 (спустя 41 мин.)

Что и требовалось доказать. Закодировал в SurCode минуту звука в 4-х вариантах, 1536 768 Compact Padded.
Файлы нумер 1: 768 Compact
Eac3To : DTS, 5.1 channels, 0:01:00, 24 bits, 755kbps, 48khz
DelayCut : ====== INPUT FILE INFO ========================
File is dts
Bitrate (kbit/s) 768
Act rate (kbit/s) 754.500
File size (bytes) 5658750
Channels mode C+L+R+SL+SR
Sampling Frec 48000
Low Frec Effects LFE: Present
Duration 00:01:00.000
Frame length (ms) 10.666667
Frames/second 93.750000
Num of frames 5625
Bytes per Frame 1006.0000
Size % Framesize 0
CRC present: NO
=============================================
====== TARGET FILE INFO ======================
Start Frame 0
End Frame 5624
Num of Frames 5625
Duration 00:01:00.000
NotFixedDelay 0.0000
=============================================

Файл нумер 2: 768 Padded - ничего интересного, как и говорилось SurCode глючит и делает в таком случае 1536 Padded
Файл нумер 3: 1536 Compact
Eac3To : DTS, 5.1 channels, 0:01:00, 24 bits, 1510kbps, 48khz
DelayCut : ====== INPUT FILE INFO ========================
File is dts
Bitrate (kbit/s) 1536
Act rate (kbit/s) 1509.750
File size (bytes) 11323125
Channels mode C+L+R+SL+SR
Sampling Frec 48000
Low Frec Effects LFE: Present
Duration 00:01:00.000
Frame length (ms) 10.666667
Frames/second 93.750000
Num of frames 5625
Bytes per Frame 2013.0000
Size % Framesize 0
CRC present: NO
=============================================
====== TARGET FILE INFO ======================
Start Frame 0
End Frame 5624
Num of Frames 5625
Duration 00:01:00.000
NotFixedDelay 0.0000
=============================================

Файл нумер 4: 1536 Padded
Eac3To : DTS (zero padded), 5.1 channels, 0:01:00, 24 bits, 1510kbps, 48khz
DelayCut : ====== INPUT FILE INFO ========================
File is dts
Bitrate (kbit/s) 1536
Act rate (kbit/s) 1509.750
File size (bytes) 11520000
Channels mode C+L+R+SL+SR
Sampling Frec 48000
Low Frec Effects LFE: Present
Duration 00:01:01.043
Frame length (ms) 10.666667
Frames/second 93.750000
Num of frames 5722
Bytes per Frame 2013.0000
Size % Framesize 1614
CRC present: NO
=============================================
====== TARGET FILE INFO ======================
Start Frame 0
End Frame 5721
Num of Frames 5722
Duration 00:01:01.034
NotFixedDelay 0.0000
=============================================
[Профиль]  [ЛС] 

AirMike73

Стаж: 17 лет 11 месяцев

Сообщений: 325


AirMike73 · 30-Дек-08 20:02 (спустя 23 мин., ред. 30-Дек-08 20:02)

Как нетрудно заметить мой DelayCut глючит чутка по другому. Он почему то считает, что размер фрейма в 1536PADDED равен 2013, что конечно бред. 1 минута = 60секунд = 60000мс = 60000/10.6(6) = 5625 кадров. При размере файла 11520000 получаем размер фрейма 2048 байт.
Независимо от того, что считают неверно проги в DTS-padded, размер кадра меньший чем есть на самом деле, или длительность кадра большую чем есть на самом деле, приходят к неверному выводу о длине звука. Ну и как резалт всякие невкусные рассинхроны.
Ну а ларчик почему в MKV(MKA) все хорошо, открывается просто:
1. имею файлы DTS1536COMPACT.dts и DTS1536PADDED.dts
2. засовываю файл DTS1536PADDED.dts в mka
3. вынимаю через мквекстракт файл DTS1536fromMKA.dts
4. длина файла DTS1536fromMKA.dts = длине файла DTS1536COMPACT.dts
5. команда fc DTS1536fromMKA.dts DTS1536COMPACT.dts говорит различия не найдены
[Профиль]  [ЛС] 

AnryV

Top Seed 02* 80r

Стаж: 18 лет

Сообщений: 3151

AnryV · 30-Дек-08 20:04 (спустя 2 мин.)

AirMike73 писал(а):
Как нетрудно заметить мой DelayCut глючит чутка по другому. Он почему то считает, что размер фрейма в 1536PADDED равен 2013, что конечно бред. 1 минута = 60секунд = 60000мс = 60000/10.6(6) = 5625 кадров. При размере файла 11520000 получаем размер фрейма 2048 байт.
Независимо от того, что считают неверно проги в DTS-padded, размер кадра меньший чем есть на самом деле, или длительность кадра большую чем есть на самом деле, приходят к неверному выводу о длине звука. Ну и как резалт всякие невкусные рассинхроны.
Ну а ларчик почему в MKV(MKA) все хорошо, открывается просто:
1. имею файлы DTS1536COMPACT.dts и DTS1536PADDED.dts
2. засовываю файл DTS1536PADDED.dts в mka
3. вынимаю через мквекстракт файл DTS1536fromMKA.dts
4. длина файла DTS1536fromMKA.dts = длине файла DTS1536COMPACT.dts
5. команда fc DTS1536fromMKA.dts DTS1536COMPACT.dts говорит различия не найдены
Ээээ... Для файлов, которые я приводил, вкладывание-вынимание в матрешку ничего не меняет.
[Профиль]  [ЛС] 

AirMike73

Стаж: 17 лет 11 месяцев

Сообщений: 325


AirMike73 · 30-Дек-08 20:08 (спустя 4 мин.)

AnryV писал(а):
Для файлов, которые я приводил, вкладывание-вынимание в матрешку ничего не меняет.
А вот это уже жаль, а то был бы элегантный способ избавиться от лишнего
Судя по всему такие файлы не Zero Padded, а может наполнены какими полезными байтами, да и смотрю Eac2to про них пишет, как у меня про файлы DTS-compact, но по размеру это явный DTS-padded.
[Профиль]  [ЛС] 

AirMike73

Стаж: 17 лет 11 месяцев

Сообщений: 325


AirMike73 · 30-Дек-08 20:45 (спустя 37 мин., ред. 30-Дек-08 21:02)

Посчитав твой пример, забираю свою уверенность. Если размеры файла актуальные-реальные, то тут придетcя согласиться с Mixin, с длиной фрейма 10.6(6) выйти на нужную длину фильма будет нереально. - ошибочный вывод, арифметика подвела.
[Профиль]  [ЛС] 

AirMike73

Стаж: 17 лет 11 месяцев

Сообщений: 325


AirMike73 · 30-Дек-08 20:58 (спустя 13 мин.)

Выдрал свою маммумиу из матроски, полфильма(уже на диск запихал).
Актуальная длина видео 00:56:27.714
eac3to : DTS, 5.1 channels, 0:56:28, 24 bits, 768kbps, 48khz
delaycut: ===== INPUT FILE INFO ========================
File is dts
Bitrate (kbit/s) 768
Act rate (kbit/s) 754.500
File size (bytes) 325221376
Channels mode C+L+R+SL+SR
Sampling Frec 48000
Low Frec Effects LFE: Present
Duration 00:57:28.337
Frame length (ms) 10.857522
Frames/second 92.102051
Num of frames 317599
Bytes per Frame 1024.0000
Size % Framesize 0
CRC present: NO
=============================================

Собственно легко в расчетах выйду на DTS-padded:
Длина видео - 3387714мс, примем длину фрейма как 10.6(6), делим одно на другое, получаем сколько фреймов в dts = 317598,1875. Собственно как и показывает DelayCut 317599. Длина фрейма актуально верная 1024, умножаем на 317599, получаем 325221376.
Откель DelayCut высосал длительность фрейма 10.857522 и как следствие левую длину всего звука(00:57:28.337) знать не знаю.
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error