Безкоштовна технічна бібліотека КНИГИ ТА СТАТТІ VirtualDub. З'єднання декількох файлів AVI З'єднувати в один кілька AVI файлів, не така проста справа, як може здатися спочатку. Справа в тому, що найчастіше окремі фрагменти мають різний FPS, і саме з цієї причини VirtualDub відмовляється їх з'єднувати. Різний FPS, тобто різна кількість кадрів на секунду, могло вийти через те, що при захопленні відео ви робили прив'язку відео потоку до звуку, щоб уникнути розсинхронізації відео і звуку. Що ж тепер робити, спитайте ви... Найпростіший і найвірніший спосіб уникнути таких проблем - це захоплювати відео не шматками, а все відразу. Тим більше, що ви вже знаєте, як створювати великі за тривалістю та обсягом AVI файли (стаття "Захоплення відео"), і знаєте, що особливих проблем при цьому немає. Другий спосіб уникнути проблем при склеюванні файлів – це не робити прив'язки відео потоку до звуку під час захоплення. Звичайно, при цьому ви ризикуєте отримати розсинхронізацію, тому це рішення малопридатне. Тепер я вас попередив, що краще так не робити і розповів про те, як можна цього уникнути. Тому переходимо, безпосередньо, до способу з'єднання... 1. Ідеальний варіант – AVI файли мають однаковий FPS Відкриваємо у VirtualDub перший фрагмент, з якого надалі розпочнеться майбутній ролик. Приєднуємо до вже відкритого фрагменту наступний для цього вибираємо команду: Вибираємо файл. Відкритий, таким чином, файл буде приєднано до кінця попереднього. Наступні фрагменти приєднуються так само. Як ви вже зрозуміли, фрагменти необхідно приєднувати саме в тій послідовності, в якій вони йтимуть потім у кінцевому ролику. Всі фрагменти відкриті, тепер, за бажання, ви можете робити будь-які маніпуляції, перед тим як перейти до збереження. Можете накладати фільтри, вирізати непотрібні шматки і т.д. Зберегти також можна по-різному, можна з перетисканням і без перетискання відео та аудіо потоків. Загалом, не повторюватимуся - ви все це знаєте з попередніх описів... 2. Не ідеальний варіант – AVI файли мають різний FPS Ми маємо кілька відео фрагментів, які в свою чергу мають різний FPS. Відразу склеїти їх за допомогою VirtualDub нам не вдасться. Тому для початку всі наявні фрагменти необхідно привести до одного FPS, і це зовсім не просте завдання! Змінюючи частоту кадрів AVI, ми прискорюємо чи уповільнюємо потік кадрів, отже, змінюємо тривалість AVI. Але при цьому звукова доріжка залишається незмінною, VirtualDub не зіставляє її відео потоку! Тому неминуче виходить розсинхронізація відео та аудіо потоків. З'ясуємо фрагменти FPS, які потрібно з'єднати. Для цього, по черзі, кожен файл відкриваємо у VirtualDub, у меню "Video" вибираємо: У вікні бачимо FPS поточного файлу: Запам'ятовуємо чи краще записуємо значення FPS. Відкриваємо наступні AVI файли так само з'ясовуємо його FPS, тощо. Якщо ви бачите, що FPS всіх файлів змінюється незначно - розрахуйте або оцініть їхнє середнє значення. Потім частоту кадрів призводите до цього середнього значення. Це важливо, т.к. при цьому FPS для більшості фрагментів змінюватиметься незначно і, отже, менше буде розсинхронізація. Якщо з усіх наявних фрагментів всього один або кілька мають значення FPS, що значно відрізняється, - обробляйте їх окремо. Тобто. цей один або кілька фрагментів доки не чіпайте, візьміть ті, що схожі, розрахуйте та приведіть їх до середнього FPS. Ті, що залишилися, приведіть до цього ж середнього FPS іншим способом, про це далі. Якщо у всіх файлів розбіг FPS значний їх також слід приводити до середнього значення, але по-іншому. 2.1. Приведення файлів AVI до одного FPS (розбіг незначний) Зазвичай, якщо відео фрагменти захоплювалися з одного й того джерела, то FPS у них змінюється дуже незначно. Крім того, чим фрагменти менші за тривалістю, тим розбіг ще менше. І так ми знаємо середній FPS, до якого наводитимемо всі наявні фрагменти. Відкриваємо у VirtualDub перший AVI файл: Посуньте повзунок у кінець фрагмента або натисніть відповідну кнопку на панелі та перегляньте його тривалість: У мене фрагмент має тривалість 0:08, 40.369 хвилин, XNUMX секунд. Переходимо до вже знайомого діалогового вікна: Вибираємо пункт "Change to...". Вписуємо середнє відоме значення, інше за умовчанням, натискаємо ОК. Подивіться знову на тривалість вашого фрагмента, тепер вона інша: У силу того, що у мене фрагмент всього 8 хвилин тривалістю і FPS змінювався дуже незначно - зміна його тривалості склала лише частки секунди. Це означає, що в кінці фрагмента розсинхронізація відео та звуку складає саме ці частки секунди. Що, загалом, зовсім небагато і навіть якщо дуже намагатися навряд чи можна буде їх помітити при перегляді. Тому я не бачу сенсу коригувати синхронізацію, в даному випадку нехай залишається як є. Зберігаємо зміни FPS. Для цього попередньо переконайтеся, що для відео та аудіо потоків, у відповідних меню, вибрано пункт "Direct stream copy". Тобто. потоки копіюватимуться без обробки.
Зберігаємо. Таким чином обробляються всі фрагменти. Якщо у всіх у них буде така незначна розсинхронізація, як у прикладі, можна сказати, що вам пощастило. Після обробки всіх фрагментів, ви можете переходити безпосередньо до з'єднання AVIшек. Робиться це, тепер, точно так само, як і при ідеальному варіанті, пункт 1. Тим же кому пощастило менше, і розсинхронізація вийшла помітною, присвячується подальший опис... Розсинхронізацію в межах 0.5 секунд, до кінця фрагмента, можна певною мірою виправити наявними у VirtualDub засобами. Для цього потрібно зайти: Тут оберете "Preload" та "Interleave.." = 1000ms...1500ms. Змінюючи значення "Delay audio track by" ви можете трохи зрушити звук щодо відео потоку. Позитивне значення використовуйте, якщо звук випереджає відео. Від'ємні значення використовуйте, якщо навпаки звук відстає від відео. Взагалі, звичайно, у нашому випадку розсинхронізація має наростаючий характер, тому її не можна виправити простим зсувом аудіо потоку щодо відео потоку. Але її можна деякою мірою компенсувати або зробити менш помітною. Наприклад, спочатку ви маєте на початку повну синхронізацію, а до кінця відхід одного потоку щодо іншого становить 0.5 секунд. Зробіть так, що вже на початку була розсинхронізація 0.25 секунд, таким чином, десь по середині буде синхронність, а в кінці знову догляд на 0.25 секунд. Тільки не подумайте, що 0.5 секунд - це якесь обмеження, просто я вважаю, що велику розсинхронізацію, таким зрушенням потоку не виправити і не компенсувати, вона все одно залишиться помітною. Для збереження змін в AVI, після зміни параметра "Delay audio track by", також достатньо вибрати для відео та аудіо потоків "Direct stream copy", після чого зберегти. Тих же, кого не влаштовує усунення розсинхронізації за рахунок зсуву потоку, а також комусь взагалі не пощастило і наявна розсинхронізація значна - читайте наступний пункт. 2.2. Приведення файлів AVI до одного FPS (розбіг великий) VirtualDub хороша програма - це без сумніву. Однак немає в ній опцій, які могли б усунути значну розсинхронізацію відео та звуку при великій зміні частоти кадрів. Тому спосіб описується далі, передбачає обробку звуку окремо від відео. Відкриваємо у VirtualDub перший AVI файл: Зберігаємо звук відкритого AVI в окремий WAV файл: Для відео вибираємо "Direct stream copy", для звуку "No audio":
Переходимо до знайомого діалогового вікна: Вибираємо пункт "Change to...". Вписуємо середнє відоме значення, інше за умовчанням, натискаємо ОК. Перейдіть на кінець фрагмента, щоб переглянути його тривалість, після зміни FPS. Запишіть значення часу. Збережіть AVI. Таким чином, ми маємо окремо звук у WAV файлі, і маємо AVI файл, зі зміненим FPS без звуку. Тепер нам знадобиться звуковий редактор, наприклад, SonicFoundry Sound Forge або Syntrillium Cool Edit (звичайно, є й інші). У мене під руками опинилася програма Cool Edit, тому я розповідатиму, і показуватиму на її прикладі. Запускаємо Cool Edit, відкриваємо WAV файл. Для стиснення/розтягування звуку за часом вибираємо в меню: У діалоговому вікні, у полі "Length" необхідно запровадити нову довжину WAV файлу, тобто. те значення, яке ми переписали поле зміни FPS VirtualDub. Значення необхідно вводити в секундах (наприклад, я маю значення 0:07:13.595, в секундах це 7*60+13.595=433.595). Вводимо, натискаємо OK: Після закінчення обробки переконайтеся, що тривалість відповідає потрібній. У мене вона відрізняється на 1 тисячну частку секунди, думаю це в межах допустимого. Зберігаємо. Запускаємо VirtualDub, відкриваємо наш AVI файл без звуку. Через меню "Audio" підключаємо новий звук: Для збереження AVI з новим звуком, для відео та аудіо потоків вибираємо "Direct stream copy":
Зберігаємо. Так обробляємо всі файли AVI. Ну а після того, як все буде готове, файли можна з'єднувати так, як це робиться при ідеальному варіанті, пункт 1 (див. вище). Автор: Дмитро Корнєв; Публікація: pctuner.ru Рекомендуємо цікаві статті розділу Мистецтво відео: ▪ Класичний набір джерел світла ▪ Плата Pinnacle Systems та ТВ-тюнери - що краще для захоплення? Дивіться інші статті розділу Мистецтво відео. Читайте та пишіть корисні коментарі до цієї статті. Останні новини науки та техніки, новинки електроніки: Штучна шкіра для емуляції дотиків
15.04.2024 Котячий унітаз Petgugu Global
15.04.2024 Привабливість дбайливих чоловіків
14.04.2024
Інші цікаві новини: ▪ Транзистори сімейства MDMESH V ▪ MWC 2015: гарнітура-окуляри віртуальної реальності HTC Vive ▪ Супертонкий матеріал для акумуляторів ▪ Кишкова паличка передає досвід через покоління Стрічка новин науки та техніки, новинок електроніки
Цікаві матеріали Безкоштовної технічної бібліотеки: ▪ Розділ сайту Електронні довідники. Добірка статей ▪ стаття Одна, але полум'яна пристрасть. Крилатий вислів ▪ стаття Як харчуються губки? Детальна відповідь ▪ стаття Салат спаржевий. Легенди, вирощування, способи застосування ▪ стаття Досліди з мідним дротом. Хімічний досвід
Залишіть свій коментар до цієї статті: All languages of this page Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт www.diagram.com.ua |