Menu Home

Бесплатная техническая библиотека для любителей и профессионалов Бесплатная техническая библиотека


VirtualDub. Соединение нескольких AVI файлов

Искусство видео

Справочник / Искусство видео

Комментарии к статье Комментарии к статье

Соединять в один несколько AVI файлов, не такое простое дело, как может показаться по началу. Дело в том, что чаще всего отдельные фрагменты, имеют разный FPS, и именно по этой причине VirtualDub отказывается их соединять.

Разный FPS, другими словами разное количество кадров в секунду, могло получиться из-за того, что при захвате видео вы делали привязку видео потока к звуку, во избежание рассинхронизации видео и звука. Что же теперь делать, спросите вы...

Самый простой и верный способ избежать таких проблем - это захватывать видео не кусками, а все сразу. Тем более, что вы уже знаете, как создавать большие по продолжительности и по объему AVI файлы (статья "Захват видео"), и знаете, что особых проблем при этом нет.

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

Теперь я вас предупредил, что лучше так не делать и рассказал о том, как можно этого избежать.:) Поэтому переходим, непосредственно, к способу соединения...

1. Идеальный вариант - AVI файлы имеют одинаковый FPS

Открываем в VirtualDub первый фрагмент, с которого в дальнейшем начнется будущий ролик.

VirtualDub. Соединение нескольких AVI файлов

Присоединяем, к уже открытому фрагменту, следующий, для этого выбираем команду:

VirtualDub. Соединение нескольких AVI файлов

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

Последующие фрагменты присоединяются так же. Как вы уже поняли, фрагменты необходимо присоединять именно в той последовательности, в которой они потом будут идти в конечном ролике.

Все фрагменты открыты, теперь, при желании вы можете производить любые манипуляции, перед тем как перейти к сохранению. Можете накладывать фильтры, вырезать не нужные куски и т.д.

Сохранить тоже можно по разному, можно с пережатием и без пережатия видео и аудио потоков.

В общем, не буду повторяться - вы все это знаете из предыдущих описаний...

2. Не идеальный вариант - AVI файлы имеют различный FPS

Мы имеем некоторое количество видео фрагментов, которые в свою очередь имеют различный FPS. Сразу склеить их, при помощи VirtualDub, нам не удастся. Поэтому для начала все имеющиеся фрагменты необходимо привести к одному FPS, и это совсем не простая задача!

Меняя частоту кадров AVI, мы ускоряем или замедляем поток кадров, следовательно, меняем продолжительность AVI. Но при этом звуковая дорожка остается неизменной, VirtualDub не сопоставляет ее видео потоку! Поэтому, неизбежно получается рассинхронизация видео и аудио потоков.

Выясним FPS фрагментов, которые нужно соединить. Для этого, поочередно, каждый файл открываем в VirtualDub, в меню "Video" выбираем:

VirtualDub. Соединение нескольких AVI файлов

В открывшемся окне видим FPS текущего файла:

VirtualDub. Соединение нескольких AVI файлов

Запоминаем или лучше записываем значение FPS. Открываем следующий AVI файли таким же образом выясняем его FPS, и т.д.

Если вы видите, что FPS всех файлов меняется незначительно - рассчитайте или приблизительно оцените их среднее значение. Потом частоту кадров будете приводить к этому среднему значению. Это важно, т.к. при этом FPS для большинства фрагментов будет меняться незначительно и, следовательно, меньше будет рассинхронизация.

Если из всех имеющихся фрагментов всего один или несколько имеют значительно отличающееся значение FPS - обрабатывайте их по отдельности. Т.е. этот один или несколько фрагментов пока не трогайте, возьмите те, что похожи, рассчитайте и приведите их к среднему FPS. Оставшиеся приведите к этому же среднему FPS другим способом, об этом дальше.

Если у всех файлов разбег FPS значительный их так же следует приводить к среднему значению, но по-другому.

2.1. Приведение AVI файлов к одному FPS (разбег незначительный)

Обычно, если видео фрагменты захватывались с одного и того же источника, то FPS у них изменяется весьма не значительно. Кроме того, чем фрагменты меньше по продолжительности, тем разбег, еще меньше.

И так мы знаем средний FPS, к которому будем приводить все имеющиеся фрагменты. Открываем в VirtualDub первый AVI файл:

VirtualDub. Соединение нескольких AVI файлов

Передвинете ползунок в конец фрагмента или нажмите соответствующую кнопку на панели и посмотрите его продолжительность:

У меня фрагмент имеет продолжительность 0 часов, 08 минут, 40.369 секунд.

Переходим к уже знакомому диалоговому окну:

VirtualDub. Соединение нескольких AVI файлов

Выбираем пункт "Change to...". Вписываем среднее известное значение, остальное по умолчанию, нажимаем ОК.

VirtualDub. Соединение нескольких AVI файлов

Посмотрите снова на продолжительность вашего фрагмента, теперь она другая:

VirtualDub. Соединение нескольких AVI файлов

В силу того, что у меня фрагмент всего 8 минут продолжительностью и FPS изменялся очень не значительно - изменение в его продолжительности составило лишь доли секунды. Это значит, что в конце фрагмента рассинхронизация видео и звука составляет как раз эти доли секунды. Что, в общем-то, совсем не много и даже если очень стараться вряд ли можно их будет заметить при просмотре. Поэтому я не вижу смысла корректировать синхронизацию, в данном случае, пусть остается, как есть.

Сохраняем изменения FPS. Для этого, предварительно убедитесь, что для видео и аудио потоков, в соответствующих меню, выбран пункт "Direct stream copy". Т.е. потоки будут копироваться без обработки.

VirtualDub. Соединение нескольких AVI файлов VirtualDub. Соединение нескольких AVI файлов

Сохраняем.

VirtualDub. Соединение нескольких AVI файлов

Таким образом, обрабатываются все фрагменты. Если у всех у них будет такая незначительная рассинхронизация, как в примере, то можно сказать, что вам повезло.

После обработки всех фрагментов, вы можете переходить, непосредственно к соединению AVIшек. Делается это, теперь, в точности так же, как и при идеальном варианте, пункт 1.

Тем же кому, повезло меньше, и рассинхронизация получилась заметной, посвящается дальнейшее описание...

Рассинхронизацию в пределах 0.5 секунд, к концу фрагмента, можно в какой-то степени исправить имеющимися у VirtualDub средствами. Для этого нужно зайти:

VirtualDub. Соединение нескольких AVI файлов

Здесь выберете "Preload" и "Interleave.." = 1000ms ... 1500ms. Изменяя значение "Delay audio track by" вы можете немного сдвинуть звук, относительно видео потока. Положительное значение используйте, если звук опережает видео. Отрицательные значения используйте, если наоборот звук отстает от видео.

VirtualDub. Соединение нескольких AVI файлов

Вообще, конечно, в нашем случае рассинхронизация имеет нарастающий характер, поэтому ее нельзя исправить простым сдвижением аудио потока, относительно видео потока. Но ее можно в некоторой степени компенсировать или сделать менее заметной.

К примеру, изначально вы имеете, в начале полную синхронизацию, а к концу уход одного потока относительно другого составляет 0.5 секунд. Сделайте так, что бы уже в начале была рассинхронизация 0.25 секунд, таким образом, где-то по середине будет синхронность, а в конце снова уход на 0.25 секунд.

Только не подумайте, что 0.5 секунд - это какое-то ограничение, просто я считаю, что большую рассиннхронизацию, таким сдвижением потока не исправить и не компенсировать, она все равно останется заметной.

Для сохранения изменений в AVI, после изменения параметра "Delay audio track by", так же достаточно выбрать для видео и аудио потоков "Direct stream copy", после чего сохранить.

VirtualDub. Соединение нескольких AVI файлов

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

2.2. Приведение AVI файлов к одному FPS (разбег большой)

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

Открываем в VirtualDub первый AVI файл:

VirtualDub. Соединение нескольких AVI файлов

Сохраняем звук открытого AVI в отдельный WAV файл:

VirtualDub. Соединение нескольких AVI файлов

Для видео выбираем "Direct stream copy", для звука "No audio":

VirtualDub. Соединение нескольких AVI файлов VirtualDub. Соединение нескольких AVI файлов

Переходим к знакомому диалоговому окну:

VirtualDub. Соединение нескольких AVI файлов

Выбираем пункт "Change to...". Вписываем среднее известное значение, остальное по умолчанию, нажимаем ОК.

VirtualDub. Соединение нескольких AVI файлов

Перейдите на конец фрагмента, что бы посмотреть его продолжительность, после изменения FPS.

VirtualDub. Соединение нескольких AVI файлов

Запишите значение времени. Сохраните AVI.

VirtualDub. Соединение нескольких AVI файлов

Таким образом, мы имеет отдельно звук в WAV файле, и имеем AVI файл, с измененным FPS без звука.

Теперь нам понадобиться звуковой редактор, например SonicFoundry Sound Forge или Syntrillium Cool Edit (конечно же, есть и другие). У меня под руками оказалась программа Cool Edit, поэтому я буду рассказывать, и показывать на ее примере.

Запускаем Cool Edit, открываем WAV файл.

VirtualDub. Соединение нескольких AVI файлов

Для сжатия/растяжения звука по времени, выбираем в меню:

VirtualDub. Соединение нескольких AVI файлов

В диалоговом окне, в поле "Length" необходимо ввести новую длину WAV файла, т.е. то значение, которое мы переписали поле смены FPS в VirtualDub. Значение необходимо вводить в секундах (например, у меня значение 0:07:13.595, в секундах это 7*60+13.595=433.595). Вводим, нажимаем OK:

VirtualDub. Соединение нескольких AVI файлов

По окончанию обработки убедитесь, что продолжительность соответствует необходимой. У меня она отличается на 1 тысячную долю секунды, думаю это в пределах допустимого.:)

VirtualDub. Соединение нескольких AVI файлов

Сохраняем.

VirtualDub. Соединение нескольких AVI файлов

Запускаем VirtualDub, открываем наш AVI файл без звука. Через меню "Audio" подключаем новый звук:

VirtualDub. Соединение нескольких AVI файлов

Для сохранения AVI с новым звуком, для видео и аудио потоков выбираем "Direct stream copy":

VirtualDub. Соединение нескольких AVI файлов VirtualDub. Соединение нескольких AVI файлов

Сохраняем.

VirtualDub. Соединение нескольких AVI файлов

Так обрабатываем все AVI файлы. Ну а после того как все будет готово, файлы можно соединять так, как это делается при идеальном варианте, пункт 1 (см. выше).

Автор: Дмитрий Корнев; Публикация: pctuner.ru

 Рекомендуем интересные статьи раздела Искусство видео:

▪ Авторинг DVD

▪ Ошибки новичков при видеосъемке

▪ Видеомонтаж. Язык склейки

Смотрите другие статьи раздела Искусство видео.

Читайте и пишите полезные комментарии к этой статье.

<< Назад

Последние новости науки и техники, новинки электроники:

Спасение коралловых рифов пересадкой доноров 10.12.2024

Ученые из Университета Бар-Илана предложили пересаживать фрагменты экосистемы здорового коралла на поврежденный. В результате здоровая экосистема помогает кораллу восстановиться. В новом исследовании был применен метод "пересадки экосистемы кораллового рифа". Он заключается в том, что со здорового рифа берется разнообразное сообщество организмов, в том числе беспозвоночных и микробов, выращивается на терракотовой плитке, а потом вместе с плиткой переносится на поврежденный риф. Эксперименты показали заметное улучшение здоровья кораллов: повысилась эффективность фотосинтеза и увеличилась популяция симбиотических водорослей. Результаты показали, что пересадка здоровой экосистемы может значительно повысить жизнестойкость и физиологические функции кораллов. Важным элементом эксперимента являются сами терракотовые плитки. Они повторяют сложную 3D-структуру природных коралловых рифов и обеспечивают удобную среду для разнообразных организмов. Ученые подробно описали проведенный эк ...>>

Разработана долговечная алмазная батарея 10.12.2024

Британские ученые построили уникальную батарею, способную работать тысячелетиями. Это устройство, получившее название алмазной батареи, основано на использовании радиоактивного изотопа углерода-14 и может стать революцией в мире энергетики. Принцип работы алмазной батареи схож с работой солнечных панелей, но с одной важной разницей: вместо света она использует радиоактивный распад углерода-14. Углерод-14 - это радиоактивный изотоп, известный по методу радиоуглеродного датирования, который широко применяется в археологии и геологии для определения возраста органических материалов. При распаде углерода-14 высвобождаются электроны, которые алмазная структура улавливает и преобразует в электрический ток. Этот процесс обеспечивает стабильное и долговечное производство энергии, так как период полураспада углерода-14 составляет около 5700 лет. Алмазная батарея обладает рядом значительных преимуществ: 1. Долговечность: Благодаря стабильности радиоактивного изотопа устройство способ ...>>

Влияние просмотра телевизора на размер мозга 09.12.2024

Продолжительный просмотр телевизора может негативно сказаться на здоровье мозга, снижая объем серого вещества - области, где сосредоточены нейроны, ответственные за обработку информации. Эти данные были получены в рамках исследования, проведенного командой ученых из Школы общественного здравоохранения Блумберга при Университете Джонса Хопкинса. Возглавлял проект Райан Догерти. Ученые анализировали данные крупного долгосрочного исследования "Развитие риска коронарных артерий у молодых взрослых" (CARDIA), начатого в 1985 году при поддержке Национального института сердца, легких и крови США. В исследовании участвовали более 5000 человек из четырех городов Соединенных Штатов, и его цель заключалась в изучении факторов, влияющих на здоровье на протяжении жизни. Один из аспектов, изученных в рамках CARDIA, был связан с привычками участников, включая время, проводимое перед экраном телевизора. Выяснилось, что те, кто смотрел телевизор более 1,4 часа в день, к 50 годам теряли около 0,5% ...>>

Случайная новость из Архива

Космический полет продлевает человеческую жизнь 16.07.2012

Международная группа ученых, изучающая потерю костной и мышечной массы у космонавтов, обнаружила, что космический полет может продлить жизнь. Оказалось, что космические полеты уменьшают количество токсичных белков, которые обычно накапливаются в процессе старения мышц. Также ученые обнаружили группу генов, экспрессия которых в течение космического полета снижается. В ходе лабораторных экспериментов на Земле у модельных организмов (черви Caenorhabditis elegans) снижение экспрессии тех же генов приводило к увеличению продолжительности жизни.

"Мы определили семь генов, инактивация которых продляет жизнь в лабораторных условиях, - говорит один из авторов исследования, эксперт в мышечном метаболизме доктор Натаниэль Шевчик. - Мы пока точно не знаем, каким образом эти гены работают. Судя по всему, они влияют на восприятие окружающей среды и соответствующую адаптацию организма. Например, один из генов контролирует выработку инсулина, связанного с метаболизмом и продолжительностью жизни".

Что это открытие означает для практической космонавтики? Ученым известно, что в условиях космических полетов мышцы неизбежно сокращаются в объеме. Однако это не патология, а лишь реакция на условия окружающей среды, в частности невесомость. Не исключено, что в результате процессов адаптации также может увеличиться и продолжительность жизни.

Ученые намерены продолжить свои исследования, включая изучение здоровья космонавтов и опыты с Caenorhabditis elegans. При этом черви предоставляют особенные возможности. Дело в том, что Caenorhabditis elegans является первым многоклеточным организмом, чей геном полностью расшифрован. Многие из его 20 тыс. генов выполняют те же функции, что и человеческие, например, 2 тыс. генов играют определенную роль в развитии мышц и 50-60 % из них имеют человеческие аналоги.

Кроме того, установлено, что данные черви могут жить и размножаться в космосе в течение не менее шести месяцев. Таким образом, их относительно недорого можно отправить в экспериментальный долгосрочный полет, например к Марсу, и изучить воздействие космической среды на живой организм.

Другие интересные новости:

▪ Занятые женнщины сохраняют свое здоровье

▪ Освещение женской сумочки

▪ Процессор Qualcomm Snapdragon G3x Gen1

▪ Металинза - искусственный глаз

▪ Ноутбук с водяным охлаждением от Hitachi

Лента новостей науки и техники, новинок электроники

 

Интересные материалы Бесплатной технической библиотеки:

▪ раздел сайта Детская научная лаборатория. Подборка статей

▪ статья Классификация элементарных частиц. История и суть научного открытия

▪ статья Как относительно друг друга расположены ростовские улицы Вертикальная и Горизонтальная? Подробный ответ

▪ статья Кунгурская пещера. Чудо природы

▪ статья Усилитель НЧ для переносной радиоаппаратуры. Энциклопедия радиоэлектроники и электротехники

▪ статья Преобразователь для питания ламп дневного света от автомобильного аккумулятора. Энциклопедия радиоэлектроники и электротехники

Оставьте свой комментарий к этой статье:

Имя:


E-mail (не обязательно):


Комментарий:





Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua

www.diagram.com.ua
2000-2024