Доповнення звукової доріжки фрагментом до більшої тривалості (без перекодування)

Нові коментарі

Нова тема   Відповісти
Автор Повідомлення
kszitadel 
VIP


З нами з: 02.09.09
Востаннє: 16.01.17
Повідомлень: 369

2010-01-23 18:34  
Описую ситуацію, коли існуючу обрізану звукову доріжку слід доповнити кількома хвилинами без перекодування.
Проблема виникає, коли доріжка, яку хочемо накласти на відеоряд, накладається синхронно з відео (початок співпадає), але відрізняється за тривалістю (хронометражем). Точніше, якщо звукова доріжка довша, ніж відео, то VirtualDub чи MKVMerge просто обріже її по довжині відео, а от якщо коротша, то отримаємо в кінці фільму (як правило, на титрах) беззвучне відео.
Можна, звичайно, розкодувати або mp3 доріжку до формату WAV PCM без стиснення, відкрити в звуковому редакторі, доклеїти до повної тривалості десь узятим звуковим уривком (а, можливо, зробити ще якісь маніпуляції), а потім закодувати назад в або mp3 з тим самим (або й не з тим самим) бітрейтом. Але це буде означати повторне кодування у формати /mp3, яке завжди проводиться зі втратою інформації й у результаті погіршенням якості, яке ми можемо й не відчути, але яке обов'язково буде.
Тому найкращий варіант - залишити матеріал існуючої короткої доріжки, а далі доклеїти новий звуковий фрагмент обов'язково у тому ж самому форматі й бітрейті.
Як інструкцію не хотів писати, оскільки в мене це вийшло трохи ненормальним способом через задній хід. Думав у техпитання. Але таки написав. Мій приклад:

Умова:

1. Існує 720x??? ріп фільму Володар перснів - Хранителі персня СРВ (2001) з українською доріжкою від Гуртом. Хронометраж 03:23:18.395 (обрізані титри)
2. Існує 720p 1280x??? HD-варіант цього фільму, який я роздобув у Інтернеті. Фільм містить російську й англійську звукові доріжки 448 кбіт/с Хронометраж 03:28:18 (повний)
3. Ще скачано додатковий пакет доріжок до цього 720p 1280x??? HD-варіанту, серед яких є англійська доріжка у 768 кбіт/с

Завдання:

Хочу звести скачаний відеоряд з українською доріжкою від Гуртом так, щоб результат вліз на DVD9. Бажано з повним хронометражем фільму й усіх залишених доріжок.

Попередній аналіз:

Щоб впихнути на DVD9, слід залишити дві доріжки по 448 кбіт/с. Отож російську доріжку доведеться видалити (замінивши на українську), а з англійських залишити 448 кбіт/с, а не кращої якості 768 кбіт/с. Таким чином до існуючої української доріжки 448 кбіт/с слід доклеїти 448 кбіт/с фрагмет англійської доріжки в кінці фільму (на титрах). Але оскільки всякий закодований семпл має певну довжину, то замість "відкушування" фрагменту з англійської доріжки 448 кбіт/с відкусимо з 768 кбіт/с. Тобто візьмемо цей фрагмент, розкодуємо, точно підріжемо початок/тривалість, підгонимо рівень звуку, закодуємо у 448 кбіт/с і далі доклеїмо без перекодування до української доріжки.

Розв'язання:

0. Про всяк випадок тимчасово витягаю один з каналів української доріжки. Як, правило, це центральний як основний. Просто, щоб подивитися у звуковому редакторі точну тривалість, рівень гучності, де обривається доріжка. Використаємо Tranzcode v0.40 з GUI:
Хід роботи:
1. "Відкушуємо" фрагмент з англійської доріжки 768 кбіт/с за допомогою delaycut v1.2.1.2. Для проги слід задати початок і кінець фрагменту в мілісекундах (що, між іншим, незручно). При цьому вирішив починати не з позиції 03:23:18.395, а з 03:23:08.395, тобто рівно на 10 секунд раніше. Закінчуємо на позиції 03:28:18.???, яку округлив до 03:28:19. Таким чином вийшли числа в мс від 12188395 до 12499000.
Хід роботи:
2. Розкодовуємо отриманий -фрагмент у шестиканальний WAV за допомогою Tranzcode v0.40 з GUI:
Хід роботи:
3. Відкриваємо обидва WAV у звуковому редакторі. Я юзав Sound Forge 10. Обрізаємо секундну тишу у шестиканальному фрагменті в кінці. Шукаємо співпадіння моментів звуку по пікам для обох файлів. Я визначив, що позиція 03:23:15.897 + 20 48-кілогерцних кадрів української доріжки відповідає 00:00:07.633 + 28 48-кілогерцних кадрів, отож з англійського фрагменту титрів слід видалити перші 10.087 секунд + 54 48-кілогерцних кадрів. Загальна формула:
Відрізати_спереду_від_доклеюваного_фрагменту = Тривалість_доріжки_до_якої_доклеюємо - Точка_на_доріжці_до_якої_доклеюємо + Відповідна_точка_на_доклеюваному_фрагменті.
А можна було зразу видалити 10 секунд рівно. Все одно на титрах розсинхрону бути не може, а від ривка в момент переходу навряд позбавимось.
4. Після обрізання доклеюваного фрагменту, слід змінити за потреби його рівень гучності, щоб відповідав доріжці, до якої клеїмо. Мені довелося підняти гучність на 4,6 дБ (169,82% від оригіналу). (Правда це я вже визначив, коли склеїв, почув різницю гучності, розкодував тимчасовий Вав і відкрив його в редакторі).
5. Зберігаємо обрізаний з відрегульованою гучністю фрагмент у шестиканальний WAV.
6. Перекодовуємо отриманий фрагмент у за допомогою eac3to 3.17 з бітрейтом 448 і з максимальною якістю (-quality=1.00).
Код:
eac3to LOTR1_Eng_End_Cutted.wav LOTR1_Eng_End_Cutted. -448 -quality=1.00

7. Склеюємо обрізану коротку доріжку з отриманим фрагментом у новий файл тупо побайтовим склеюванням двох файлів у новий засобами Вінди через командний рядок:
Код:
copy /b LOTR1_Ukr_Hurtom. + LOTR1_Eng_End_Cutted. LOTR1_Ukr_Full.

Або якщо імена файлів/шляхів мають пробіли, то беремо в лапки:
Код:
copy /b "D:\Torrents\Hurtom\LOTR1 Ukr Hurtom." + "D:\New Release\LOTR1 Eng End Cutted." "D:\New Release\LOTR1 Ukr Full."
Хід роботи:
Отримали доріжку, яку можна нормально слухати Media Player Classic, відкривати у Media Player Classic другим потоком через File->Open... разом з відеорядом і перемикатися, використати у VirtualDub. Здавалося б усе? Аж тут і почалися найцікавіші глюки. MKVMerge не захотів її в такому вигляді вганяти в .
Детальніше
До моменту склейки все пішло, як брехня по селу, а на моменті склейки обірвав доріжку й вона доклеїлася вкороченою, наче нічого ми й не доклеювали. Це навіть по розміру МКВ-шки видно. Нормально склеїти у VirtualDub два фрагменти, скажімо, з однаковим відео і з однаковим форматом та бітрейтом звуку, але закодованим різними прогами, як правило не вдається, бо щось там десь кодеки відрізняє.

Спеціальна професійна прога по склеюванню чомусь відмовилася відкривати склеєну VirtualDub'ом з розбитого на дві частини фільму гуртомівську доріжку. Незалежно від того, з розширенням .wav чи . я підсовував.
Єдиний спосіб оце описане у п. 7 криве копіювання через командний рядок, але тоді копіюється й заголовок/метадані на початку файла кудись усередину.
Отож пішов на хитрощі. Адже такий побайтово склеєний трек VirtualDub'ом читається.

8. Відкриваю оригінальну у VirtualDub і підміняю звук на склеєну доріжку (Audio->WAV audio...) Усе з'їв і не подавився.
9. Залишивши прямопотокове копіювання, експортую звук з VirtualDub через File->Save WAV... у WAV-файл, який насправді міститиме в собі . WAV файл вийшов трохи менший за криво склеєний . 699 896 224 байт проти 699 899 486 байт.

Результат:

І от тепер уже отримана доріжка була нормально перетравлена MKVMerge - на титрах є звук для обох доріжок і розмір файлу приблизно такий же, який був у оригінального з російською доріжкою цього ж бітрейту.
Вийшов цей реліз: Володар перснів - Хранителі персня СРВ 720p Ukr/Eng (2001) | Sub Eng/Rus
abodnya 
Відео Гуртом - фільмокрай
Відео Гуртом - фільмокрай


З нами з: 02.11.08
Востаннє: 18.08.17
Повідомлень: 5959

2010-01-23 19:05  
Як на мене - це зайва робота. Хіба що якщо в титрах показують невдалі дублі (як наприклад в фільмах з Джекі Чаном).
imonko 
Відео Гуртом - фільмокрай
Відео Гуртом - фільмокрай


З нами з: 20.07.08
Востаннє: 11.04.17
Повідомлень: 7308

2010-01-23 19:09  
abodnya написано:
abodnya

зате інструкція дуже корисна і доречна буде для багатьох
дякую
kszitadel ти маєш мабуть вагон часу щоб все так пояснювати)
kszitadel 
VIP


З нами з: 02.09.09
Востаннє: 16.01.17
Повідомлень: 369

2010-01-23 19:23  
abodnya написано:
Як на мене - це зайва робота. Хіба що якщо в титрах показують...

А в цих титрах он виявилася дуже хороша музика. Така, що навіть варто витягнути з , зробити MP3 і слухати у WinAMP, або навіть на мобілку залити. Звичайно, можна наприкінці просто перемикнутися на англійську доріжку й не морочити собі голову, але тоді реліз фільму стає якийсь неповноцінний.
А стосовно корисності інструкції - просто багато різних програм довелося скачати, інструкцій перечитати й самому мізками похитрувати (коли MKVMerge не захотів вшивати доклеєний фрагмент)

Мені он траплялися вже багато моментів, коли неабияку винахідливість стосовно компа слід виявити.
Наприклад, щоб вліпити AutoCAD-овський рисунок у інший документ слід:
1. Роздрукувати з AutoCAD на віртуальному принтері Acrobat Distiller
2. Відкрити *.pdf у CorelDRAW
3. Експортувати звідти у WMF
4. Імпортувати WMF у потрібну програму
...а для збереження розмірів:
1. Нарисувати обмежувальні лінії іншим кольором
2. Роздрукувати з AutoCAD на віртуальному принтері Acrobat Distiller
3. Відкрити *.pdf у CorelDRAW
4. Видалити обмежувальні лінії
5. Використовувати у CorelDRAW чи перегнати у іншу програму.
Бо результати Copy-Paste та експорту з AutoCAD виходили жахливі.

От вирішив з прогами познайомити. З delaycut, наприклад, що дозволяє витягнути фрагмент звукової доріжки без перекодування з *.wav, *.mpa, *. та *.
kszitadel 
VIP


З нами з: 02.09.09
Востаннє: 16.01.17
Повідомлень: 369

2010-01-24 19:18  
Коротше кажучи: ЦІ ДОРІЖКИ ВЖЕ БУЛИ НА СЕРВЕРІ ГУРТОМ повного хронометражу без потреби склеювати. А я тут дурнею страждав Tongue up (2) . Проте методику розробив.
Тож не забуваймо дивитися на https://toloka.to/dorizhky.php перед тим, як нарікати, що доріжка, вклеєна в скачаний ріп недолуга.
hupalo 
VIP


З нами з: 03.07.09
Востаннє: 05.01.16
Повідомлень: 519

2010-01-24 19:29  
Дякую
matrex 
Новенький


З нами з: 01.04.08
Востаннє: 11.08.17
Повідомлень: 17

2010-06-23 16:39  
А можна посилання на програми, які використовувались?
Ваш часовий пояс: GMT + 2 Години

Нова тема   Відповісти