Форум Beholder http://beholder.ru/bb/ | |
Сжатие захваченного в Mpeg2 потока с использованием avisynth http://beholder.ru/bb/viewtopic.php?f=9&t=13077 |
Страница 1 из 2 |
Автор: | AgentSmith [ 07 май 2012, 20:18 ] |
Заголовок сообщения: | Сжатие захваченного в Mpeg2 потока с использованием avisynth |
При попытке сжатия захваченной в mpeg2 (звук захватывается в mp2) телепередачи получается дикий рассинхрон даже без вырезки рекламы. Причем длина видео и аудио по времени одинакова. Сначала индексирую видео dgindex-ом, открываю его в скрипте. Звук пробовал вырезать и в megui, и в скрипте avisynth-а - всё то же самое. Также пробовал сохранять звук в wav pcm отдельно, потом приклеивать его в скрипте ависинта к видео и с нарезкой и без - всё равно рассинхрон. Причем заметил - если видео не очень длинное ~ 1 час, то рассинхрона нет, а если что-то около 2ч, то появляется рассинхрон. Пишу сюда, потому что при сжатии двд-дисков с длинными фильмами, где звук в ac3, рассинхрона нет. В самом исходном видео при просмотре рассинхрона тоже не наблюдается. Открывать пробовал также и другими плагинами - directshowsource, ffms2, с подгонкой кадров и звука к стандартному значению и без - всё то же самое. Кто-нибудь сталкивался ? |
Автор: | hd44780 [ 08 май 2012, 08:58 ] |
Заголовок сообщения: | Re: Сжатие захваченного в Mpeg2 потока с использованием avis |
А результат в каком формате надо получить? Если AVI, то лучше всего VirtualDub-MPEG2. Если хотите, дам ссылку. Я обрабатывал им и 2-3 часовые записи - нормально. Рассинхрон появляется только если оригинал проблемный. Я сталкивался с таким, когда на тарелке глюки, изображение сыпется кубиками и звук щёлкает. Видимо при этом кодировщику MPEG2 кардинально рвёт крышу и он как-то рушит структуру MPEG2, не знаю. Оригинал смотрибельный на 100%, а AVI-шка не получается. Либо жуткий рассинхрон, либо вообще при кодировании вылетает с какими-то ошибками. Но это бывает ну о-очень редко. PS. AVISynt-ом не пользуюсь, посему ответить прямо на Ваш вопрос не могу ![]() И видеокассеты я не цифровал, у меня их нет. Как я понимаю, если плёнка убитая, затёртая и заезженная, то там запросто может быть что-то похожее на описанный мной случай со спутниковой тарелкой. |
Автор: | AgentSmith [ 08 май 2012, 14:35 ] |
Заголовок сообщения: | Re: Сжатие захваченного в Mpeg2 потока с использованием avis |
писал(а): А результат в каком формате надо получить? Если AVI, то лучше всего VirtualDub-MPEG2. Если хотите, дам ссылку. Спасибо, да у меня и так всё есть, если нет - гугл поможет :-) Жму я в контейнер mp4 кодеком h264, звук - в aac писал(а): Рассинхрон появляется только если оригинал проблемный. Я сталкивался с таким, когда на тарелке глюки, изображение сыпется кубиками и звук щёлкает. Это называется - битый транспортный поток, нужно прогонять прогами tsdoctor или mpeg2repair, хотя они тоже мало помогают писал(а): Как я понимаю, если плёнка убитая, затёртая и заезженная, то там запросто может быть что-то похожее на описанный мной случай со спутниковой тарелкой. А причем тут пленка ? Тюнеру глубоко пофигу, что идет с аналога, хоть просто обычный шум. Вот если ошибки в самом цифровом потоке - тогда это получается как с тарелкой. По теме - сам оригинал при просмотре идет без рассинхрона, а при просмотре через скрипт вначале видео рассинхрона нет, но со временем видео начинает обгонять звук, под конец расхождение - секунд 10-15, хотя длительность у видео и аудио одинаковая. Ну, и жмется, понятное дело, также. Что-то, мне кажется, с ависинтовскими плагинами не то. Потом попробую дабом повырезать, сейчас времени нет |
Автор: | AgentSmith [ 09 май 2012, 11:17 ] |
Заголовок сообщения: | Re: Сжатие захваченного в Mpeg2 потока с использованием avis |
В-общем, дабом то же самое. Я тут вумные статьи по видеокомпрессии почитал, звук в mpeg2 постоянно синхронизируется в потоке, а сэмплы не всегда совпадают. А если звук отодрать и приклеить потом отдельно, то получается гуляние в ту или иную сторону. Короче, я в звуковом редакторе сжал весь поток на 6 секунд и приклеил так на видео - начало и конец совпадают, а середина гуляет :-) Лажа, конечно, но эксперимента ради сойдет. Попробую интервидовским кодеком писать, это был майкрософтовский |
Автор: | Genus [ 10 май 2012, 11:32 ] |
Заголовок сообщения: | Re: Сжатие захваченного в Mpeg2 потока с использованием avis |
отключи привязку к частоте файлов и высокий приоритет записи. |
Автор: | AgentSmith [ 10 май 2012, 14:05 ] |
Заголовок сообщения: | Re: Сжатие захваченного в Mpeg2 потока с использованием avis |
К частоте кадров ? У меня на вкладке "аудио" ваще ничего не активно, может, потому что запись идет по шине ? Я ради эксперимента записал большой кусок интервидео энкодером, попробовал - вроде как рассинхрона нет. А чем приоритет может повлиять на полученный файл ? |
Автор: | samfednik [ 30 июн 2012, 17:33 ] |
Заголовок сообщения: | Re: Сжатие захваченного в Mpeg2 потока с использованием avis |
AgentSmith Ах вот Вы, оказывается про какую рассинхронизацию говорили тут, а я-то сразу не понял ![]() Да существует такая "фишка" с рассинхроном аудио при открытии скриптами Ависинта. Но как оказалось, идеально без рассинхрона звук извлекается, если .mpg открыть в самом виртуалдабе, и сохранить только звук (Save Wav) можно в РСМ, либо сжать сразу в AC3 к примеру, если жать в АС3, то может выскочить такая ерунда: Код: [!] Dub: input/output thread has not cycled for ten seconds -- possible livelock. (thread location: 777F6194) Но в итоге получаем полностью синхронную аудио дорогу с видео. (Проверял на более 3-х часовой записи лично). Пример скрипта: Код: SetMemoryMax(800) LoadPlugin("DGDecodeNV.dll") i = 2 V = DGMultiSource("(120625-235741).dgi", deinterlace=i).AssumeFPS(25*i) A = DirectShowSource("(120625-235741).wav").DelayAudio(.012) AudioDub(V, A) З.Ы.: Т.к. карточка Нвидия, то пользую крутой плагин DGDecodeNV. |
Автор: | AgentSmith [ 07 июл 2012, 15:57 ] |
Заголовок сообщения: | Re: Сжатие захваченного в Mpeg2 потока с использованием avis |
Спасибо за примечание. Но я сейчас кодеком intervideo пишу, рассинхрона вроде нет. Открываю полученный после индексации .mp2 звук плагином nicaudio прямо в скрипте писал(а): Код: A = DirectShowSource("(120625-235741).wav").DelayAudio(.012) А wavsource не проще ? А чем Intervideo encoder плохой ? Вроде не поддерживает более чем 8-битную точность цвета ? Но я как-то на глаз пиксели не сравнивал, более важно было, что рассинхрона нет :-) |
Автор: | samfednik [ 09 июл 2012, 08:33 ] |
Заголовок сообщения: | Re: Сжатие захваченного в Mpeg2 потока с использованием avis |
писал(а): А wavsource не проще ? Можно и его, в данном случае был просто пример. писал(а): А чем Intervideo encoder плохой ? Вроде не поддерживает более чем 8-битную точность цвета ? Но я как-то на глаз пиксели не сравнивал, более важно было, что рассинхрона нет :-) Ответ ниже, скопировал и выделил с "той" темы: писал(а): intervideo - довольно-таки паршивого качества выдаёт результат, и что самое для меня главное - не умеет захватывать интерлейсное видео по полям, т.е. надо использовать плагины деинтерлейса тюнера, которые вообще убивают картинку окончательно. Ну и чтобы не раскидывать инфу по разным темам отвечу тоже тут: писал(а): Лучше захватывать интерлейсное видео кодеком от microsoft, а прогрессив делать уже в скрипте ? Конечно да. Да сами сравните.Только у Вас, насколько я понял, видеокарточка от АТИ, тогда Вам надо искать какой-нибудь качественный деинтерлейс-фильтр/плагин для ависинта. Я пробовал разные - ни один не понравился по качеству, но DGDecodeNV.dll для Нвидия-карт - очень качественный результат даёт, причём на аппаратном уровне самой видяхи - налету, используя PureVideo Deinterlacer: Ну а о синхронности звука, я Вам уже ответил как решать эту проблему. писал(а): Там в настройках microsoft-кодека можно параметр dc precision выбирать вплоть до 10 бит. Это и есть точность цвета ? Типа - псевдо-HI10P получится ? :-) Справка как бэ намекает, как его использовать: "Intra DC precision - Точность вычислений DC коэффициентов в целочисленной арифметике. На малых битрейтах ниже 4000 кБит/с рекомендуется использовать 8Bit. На высоких битрейтах более 7000 кБит/с рекомендуется использовать 10Bit. В остальных случаях лучшее качество дает 9Bit. Выбор "Auto" автоматически подстраивает DC precision под используемый битрейт." |
Автор: | AgentSmith [ 09 июл 2012, 11:42 ] |
Заголовок сообщения: | Re: Сжатие захваченного в Mpeg2 потока с использованием avis |
samfednik, DGdecodeNV.dll, я так понимаю - это плагин открытия файла индекса mpeg2, использующий для декодирования вычислительную мощь видеокарты, а не деинтерлейсер. Полагаю, для видеокарт Ati похожего плагина может не быть, но мне, в принципе и стандартного хватает :-) Всё равно декодирование и так идет очень быстро, а основная нагрузка от, собственно, сжатия. Вот если бы путевые кодеки сжатия видео ресурсы видеокарты задействовали - это было бы лучше. Прям в драйвере Ati идет своя кодилка, но уж очень примитивная. Зато фильм где-то 1ч40мин длиной у меня жмет аж за 8 минут ! Для деинтерлейсинга я использую встроеные в MeGui плагины, уж не знаю - плохие они или хорошие. Ещё когда жму этим майкрософтовским кодеком, то в информации о файле значится тип видео - interlaced, при захвате в окне просмотра тюнера гребенку тоже видно, но в полученном файле её нет ! |
Автор: | Genus [ 09 июл 2012, 21:51 ] |
Заголовок сообщения: | Re: Сжатие захваченного в Mpeg2 потока с использованием avis |
AgentSmith не майся пиши в mpeg2 dvd на который тюнер изначально заточен. Из своего опыта: На запись с сжатием тюнер неадекватно реагирует оО (баги разные перечислять не буду) Особенно если кроме записи включены другие процессы, даже торрент оО |
Автор: | AgentSmith [ 09 июл 2012, 22:39 ] |
Заголовок сообщения: | Re: Сжатие захваченного в Mpeg2 потока с использованием avis |
samfednik, записал ролик, длиной 1ч. 42 мин. майкрософтовским кодеком, отодрал звук в virtual dub mod, прикрутил его в скрипте - рассинхрон всё равно есть. Субъективно - такой же, как и с родным .mp2. Да и ролик не особо-то длинный. Так что остаюсь пока на intervideo Genus, имеется в виду - пресет mpeg2 dvd ? Их там два, один - интервидео, другой майкрософт, которые используют те же самые кодеки, соответственно - intervideo и microsoft. И чем же они отличаются от того, если их выбрать вручную ? И mpeg2 - это, что-ли, не сжатие? писал(а): На запись с сжатием тюнер неадекватно реагирует оО (баги разные перечислять не буду) Если подразумевается сжатие в avi mpeg4-совместимыми кодеками, то я его не пользую только из-за того, что в случае какого-либо сбоя (неожиданное завершение работы, отключение света) восстановить файл в большинстве случаев не представляется возможным. Особенно после того, как приказал долго работать мой бесперебойник. Ну, и mpeg2 - это, всё-таки, кодек реального времени |
Автор: | samfednik [ 10 июл 2012, 16:29 ] |
Заголовок сообщения: | Re: Сжатие захваченного в Mpeg2 потока с использованием avis |
писал(а): отодрал звук в virtual dub mod, прикрутил его в скрипте - рассинхрон всё равно есть. Субъективно - такой же, как и с родным .mp2. Каким образом "отодрал"? Если использовать прямопотоковое копирование, то может быть и не получится... Я пробовал, выбирая "Режим полной обработки", и только тогда извлекал в PCM, всё синхронно. |
Автор: | AgentSmith [ 10 июл 2012, 17:54 ] |
Заголовок сообщения: | Re: Сжатие захваченного в Mpeg2 потока с использованием avis |
писал(а): Каким образом "отодрал"? Если использовать прямопотоковое копирование, то может быть и не получится... Отодрал - save wav писал(а): Я пробовал, выбирая "Режим полной обработки", и только тогда извлекал в PCM, всё синхронно. Но это же тогда нужно и видео сжимать ? Или в потоках выбрать "full processing mode", выбрать pcm, а потом "save wav" ? Что-то у меня там в режиме "no compression (pcm)" справа никакого выбора нет |
Автор: | Genus [ 10 июл 2012, 19:48 ] |
Заголовок сообщения: | Re: Сжатие захваченного в Mpeg2 потока с использованием avis |
MPEG Video Wizard всё в одном) |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |