Захватил фильм в MJPEG, со звуком было все в порядке (звук в PCM формате). После того как в VirtualDub закодировал видео в DivX 5, а аудио в MP3, фильм получился расхронизирован относительно звука. В конце фильма звук отстает от видео где то на 1 сек. Подскажите как исправить эту проблему или есть возможность как то удлинить аудио файл на 1 сек.?
Оригинал не удалил? Попробуй отдельно кодировать звук, а потом его подцепишь.
Можно сильно не задумываясь закодировать программой AutoGK - требуется выбрать файл, выставить качество, кодек(DIVX,Xvid) и нажать старт.
Рассинхронизацию можно убрать меняя в VDub Video\FrameRate
Хоть и поднималась эта тема много раз, но предлагаю её не закрывать, а наоборот развить. Я взял на себя ответственность немного подкорректировать её название. И прошу в этой ветке описывать проблемы по теме, а так-же по возможности способы их решений.
Итак давайте разберёмся более подробно. Для начала правильный термин. Это называется рассинхронизация видео и аудио потоков (далее просто рассинхронизация).Причины возникновения могут быть самыми различными, но с ними мы сейчас разбиратся не будем, а займёмся сразу следствием. А следствием имеем мы файл с качественным видео и звуком (терять который жалко или просто второй раз кодировать в лом ) и с не менее "качественной" рассинхронизацией потоков.
Можно выделить три основных типа рассинхронизации:
1.Звук сместился относительно видео равномерно (т.е. и в начале, и в конце файла мы имеем одинаковое смещение)
2.Звук смещается относительно видео постепенно всё больше и больше к концу файла.
3.Звук смещается относительно видео скачкообразно в середине файла(или несколько скачков в разных местах)
Опишу способы которыми я пользуюсь обычно с помощью VirtualDub.
Рассинхронизацию №1 исправить проще всего. Открываете в VirtualDub нужный файл, в VIDEO и AUDIO выбираете Direct Stream Copy. Затем открываете Audio->Interleaving и там выставляете параметр Delay audio track by... в миллисекундах, такой какой считаете нужным для сведения потоков. Кстати параметр может быть и отрицательным. Для проверки правильности выбранного значения, просто запустите просмотр прямо в Дубе, лучше в начале файла, т.к. файл может быть поражен и рассинхроном №2. Если всё в порядке, сохраняйте файл.
Рассинхронизацию №2 исправить ненамного сложнее. Открываете в VirtualDub нужный файл, в VIDEO и AUDIO выбираете Direct Stream Copy. Затем открываете Video->Frame Rate и в рамке Source rate ajustment выбираете Change to_______frames per second, а в рамочке меняете частоту кадров на сотые (подчёркиваю: сотые) доли. Для проверки правильности выбранного значения, просто запустите просмотр прямо в Дубе, лучше в конце файла т.к.в этом случае там рассинхронизация наиболее заметна.
Рассинхронизацию №3 исправить намного сложнее. Для этого надо выдрать звук из файла. Открываете в VirtualDub нужный файл и... Fail->Save Wav...сохраняете в нужное место звук. Это продлится минут 10-20. Затем открываете полученный звуковой файл в удобном для Вас аудиоредакторе (я пользуюсь CoolEditPro,ныне Adobe Audition) и в нужном месте вырезаете кусочек или вставляете "тишину" той продолжительности которая нужна для синхронизации. Как найти нужное место? Просматривая файл в Дубе надо засечь на таймлайне время где проявляется скачёк и примерно там и произвести операцию, в каком нибудь тихом/неважном месте фонограммы. Сохраняете аудиофайл. затем в VirtualDub выбираете Audio->WAV Audio и указываете на отредактированый аудиофайл. Проверяете прямо в Дубе и если всё нормально, в VIDEO выбираете Direct Stream Copy, в AUDIO выбираете Full processing mode, там же выбираете Compression... и нужный кодек. Сохраняете файл.
Все эти операции можно делать как с исходным файлом, так и уже обработанным, но вот рассинхронизацию №3 лучше всё же устранять в исходном файле.
В принципе все проблемы синхронизации звука и видео связаны с несовершенством контейнера AVI. В нем просто не предусмотрена синхронизация потоков Поэтому ИМХО самы простой способ это воспользоваться другим контейнером например матрешкой www.matroska.org или же ASF. И тот и другой можно прикрутить без проблем к iuVCR. Полученый файл обработать в VirtualDub и сохранить уже в любимый нами контейнер AVI
avs73:Открываете в VirtualDub нужный файл и... Fail->Save Wav...сохраняете в нужное место звук. Это продлится минут 10-20.
Вот специально сейчас проверил: из записи 42 минуты у меня Vdub извлекал звук 37 секунд. Если извлекает 10 минут, то это что, видео длительностью 11 часов ?
SviMik
Возможно я ошибся в протяжённости этого процесса. Это для кого-нибудь принципиально? К тому же это зависит напрямую от того каким кодеком и насколько сильно был сжат звук в исходнике, мощности компа, продолжительности ролика.
Но твой вопрос неслучаен. Я вот подумываю создать FAQ "Что делать если обработка видео на моём компе происходит слишком быстро"
Здравствуйте! У меня вот такая проблема: необходимо соединить несколько avi файлов в один. Делаю все как надо, но с присоединением каждого следующего звук начинает вырываться вперед. Количество fps у всех одинаково - 25. Что делать?
Всем любителям цифрового видео Боо-ольшой привет! У мен я такой вопрос. При записи видео никогда не получеется 25к/сек, частота на тысячные чуть меньше, или больше. Это было как на 878, так и на 7134 чипе. Вычитал, что это вполне нормально. Подскажите как видео, к примеру, с частотой в 24,992 к/сек (рассинхронизации В. и А. нет). перекодировать в MPEG1 или MPEG2. Т.к. у этих кодеров стандартные частоты к/сек (может я не прав?), мое видео получается с 25к/сек. и соответственно идет рассинхронизация. Может есть спец прога или плагины к Дубу чтоб на выходе получать с 24,992к/сек - 25к/сек. Поделитесь, плиз, опытом Вашей видео записи (видеомаг, ТВ)и кодирования в MPEG2. Заранее спасибо.
Victor9
Я захватываю кодеком PicVideo, звук PCM, потом пережимаю Mainconcept MPEG2 Encoder. Если в исходном материале рассинхронизации нет то и при пережатии в МПЕГ2 её не возникает.
Скачал Mainconcept MPEG Encoder 1.4.2, открыл файл длинной 32мин 24сек с частотой 24,993 к/сек(DivX3) перекодировал сначала в MPEG1, затем в MPEG2. Ничего не получается. Исходное видео у меня с частотой 24,993 к/сек, а получаю с 25ю. Разница в 0,007 дает рассинхронизацию. Может, какие-нибудь
параметры в проге надо выставить? Хотя скорее всего дело в исходнике. Он должен быть с частотой равной стандартным частотам кодека. Кто-нить сталкивался с такой проблеммой?
Rumlin :Рассинхронизацию можно убрать меняя в VDub Video\FrameRate
Есть такой пакет для создания АВИшек с картинок AVI Constructor дразнится. (Весит незапакованый 2MB.) В нем есть программка AVI Speed Adjuster. Так вот. Сначала, открываем файл в Дубе, смотрим нужную частоту, закрываем Дуб. Открываем файл в AVI Speed Adjuster, выставляем нужную частоту, жмем OK. Вся уловка в том, что не надо ждать пока Дуб прямым потоком скопирует файл. После нажатия OK сразу же запускается видеоплейер для просмотра файла. Очень удобно, когда видео gродолжительностью часа полтора.
Это все я со своей рассинхронизацией. Я тут повозился немного и обнаружил что: если в Дабе поставить галочку нв закладке Видео>Частота кадров в пункте Изменять аудио и видео для совпадения продолжительности, то рассинхронизация сходит на нет. Почему этот пункт здесь не рассматривался? Или это чем то вредно файлу?
Изменять аудио и видео для совпадения продолжительности, то рассинхронизация сходит на нет. Почему этот пункт здесь не рассматривался? Или это чем то вредно файлу?
Далеко не всегда точно срабатывает. По мне вручную надёжнее
avs73 :1.Звук сместился относительно видео равномерно (т.е. и в начале, и в конце файла мы имеем одинаковое смещение)
и
avs73 :3.Звук смещается относительно видео скачкообразно в середине файла(или несколько скачков в разных местах)
то ничего и не получится. При записи с ТВ тюнера у меня всегда:
avs73 :2.Звук смещается относительно видео постепенно всё больше и больше к концу файла.
. Правда один раз бала N3, и то при записи с в.касеты, на которой Запись-Стоп-Запись-Стоп. (рекламу удалял:))
Но я всегда сначала делаю "Видео>Частота кадров в пункте Изменять аудио и видео для совпадения продолжительности"(только своим методом), потом просмотрев видео в плейере легко определяется тип рассинхронизации.
avs73 :Я захватываю кодеком PicVideo, звук PCM, потом пережимаю Mainconcept MPEG2 Encoder. Если в исходном материале рассинхронизации нет то и при пережатии в МПЕГ2 её не возникает.
"Меня терзают смутные сомнения", что у тебя ровно 25к/с , или нет?
Страно, я наверно особенный какой-то. При сжатии в MPEG2 использовал
TMPGEnc-2.53.35.130 и Mainconcept MPEG Encoder 1.4.2, исходник без рассинхронизации, а на выходе рассинхрон. Может имеет значение тип кодека видео и размер картинки? Из-за неимения нужного дискового пространства приходится захватывать 512х384 кодеком 3ivX (Constant Qualyty - 100)
Звук только PCM 44100 16бит моно.
Да ты вообще получается всё через ж... , извини делаешь . На фига захватывать в МПЕГ4 и затем пережимать в МПЕГ2 ? Проще тогда сразу в МПЕГ2 захватывать.
Страно, я наверно особенный какой-то.
Вот этим способом захвата в кодек с максимальными потерями и потом пережатием в более качественный кодек ты и особенный.
В начале ветки есть тема "Настоятельно...." - вот тебе сначала туда....А потом уже с рассинхроном....
добавлено спустя 4 мин.
Кстати если конечным результатом предполагается DVD то звук лучше РСМ 48000 16бит Стерео. Тогда при создании ДВД меньше будет преобразований звука.
1мин Хуфуй 512х384 44100 16бит моно - 230Мег
1мин Хуфуй 720х576 44100 16бит моно - 440Мег
Хорошо если гектар 15 свободного места нашкребу. Отсюда следует: извращаюсь как могу.:D
На днях думаю винт 160ку взять, так только Хуфуем и буду захватывать.
Сегодня сидел, значит, экспериментировал AVI->MPEG1, MPEG2. Получилось! Никакой рассинхронизации!
Кодер: Mainconcept MPEG Encoder 1.4.2
Исходное видео1 Хуфуй 720х576 24.97к/сек, 44100 16бит моно, продолжительностью 10мин.
Исходное видео2 3ivX 512х384 24,972к/сек, 44100 16бит моно, продолжительностью 10мин.
Делаю эксперимент: меняю частоту видео с 24.97(2)к/сек на 25к/сек - наблюдается рассинхронизация, возвращаю на 24.97(2)к/сек.
видео1 конвертирую в DVD 720х576 25к/сек, 48000 16бит Стерео - ОК
видео1, видео2 конвертирую в MPEG2 - OK
видео1, видео2 конвертирую в VCD - OK
Конечно 10 мин еще не показатель, хорошо бы все это проделать с видео минут так на 90-120, но ехватает дискового пространства.
Заключение: из этого всего я понял, что я ничего не понял. Прошлый раз делал все тоже самое и получал рассинхрон, сейчас же все в порядке! Я в шоке!
Victor9
Ты меня не понял. Нет смысла хватать в 3ivX что бы затам перекодировать в МПЕГ2. Если нет места хватай сразу в МПЕГ2 720х576 с переменным битрейтом (нижний 2500, верхний 6000) файл будет 2-3гб/час
А я, МПЕГ4 во 2й и не собираюсь конвертить, я просто подготавливаюсь к приобретению второго винта. То что я раньше писал (МПЕГ4->МПЕГ4) было исключительно для себя. Соглашусь на 100% качеством оно никаким не блещет, но лучьше так чем никак. При захвате в DVD у меня идет загрузка проца на 100%
При захвате в DVD у меня идет загрузка проца на 100%
А какой пргой хватаешь и каким кодеком? У меня при захвате в МПЕГ2 загрузка проца наоборот меньше чем при захвате в МПЕГ4. Странное что-то у тебя.
добавлено спустя 3 мин.
я просто подготавливаюсь к приобретению второго винта.
Вот купишь и начинай экперименты. А то как "нырять научитесь - тогда воды нальём"
Возможно загрузка в МПЕГ2 у тебя высокая из-за большого потока на сильно фрагментированный маленький винт.
:)
Люблю классные шутки.
Захват делаю Fly2000TV. При стандартном DVD - 100%. Потом на Custom... выставил MPEG2 Variable, в колонках битрейта вверху - 6000, внизу -2500. Загрузка проца 7х%, видео в квадратиках. Сегодня перепроверил, смотрю средний битрейт - 6000, а пиковый - 2500. Поменял на 4000 и 6000 соответственно. Загрузка 8х%.
И качество Вообще захват во MPEG2 я невзлюбил еше на старом K-World Xpert TV-PVR 878RF, его прога (MPEG1,2,4) не поддерживала синхронизацию потоков, а FLY я еще не знал. Да и прог, кроме Дуба (обычного), небыло. Вот и осталось нехорошее впечатления.