Текущее время: 02 май 2025, 14:26 • Часовой пояс: UTC + 3 часа |
Сжатие захваченного в Mpeg2 потока с использованием avisynth
Автор | Сообщение |
AgentSmith
|
|
Зарегистрирован: 02 янв 2012, 16:55 Сообщения: 376
|
При попытке сжатия захваченной в mpeg2 (звук захватывается в mp2) телепередачи получается дикий рассинхрон даже без вырезки рекламы. Причем длина видео и аудио по времени одинакова. Сначала индексирую видео dgindex-ом, открываю его в скрипте. Звук пробовал вырезать и в megui, и в скрипте avisynth-а - всё то же самое. Также пробовал сохранять звук в wav pcm отдельно, потом приклеивать его в скрипте ависинта к видео и с нарезкой и без - всё равно рассинхрон. Причем заметил - если видео не очень длинное ~ 1 час, то рассинхрона нет, а если что-то около 2ч, то появляется рассинхрон. Пишу сюда, потому что при сжатии двд-дисков с длинными фильмами, где звук в ac3, рассинхрона нет. В самом исходном видео при просмотре рассинхрона тоже не наблюдается. Открывать пробовал также и другими плагинами - directshowsource, ffms2, с подгонкой кадров и звука к стандартному значению и без - всё то же самое. Кто-нибудь сталкивался ?
Behold H8
|
|
|
hd44780
|
|
Эксперт |  |
Зарегистрирован: 23 мар 2007, 14:32 Сообщения: 4034 Откуда: РФ, ДНР, Донецк
|
А результат в каком формате надо получить? Если AVI, то лучше всего VirtualDub-MPEG2. Если хотите, дам ссылку. Я обрабатывал им и 2-3 часовые записи - нормально. Рассинхрон появляется только если оригинал проблемный. Я сталкивался с таким, когда на тарелке глюки, изображение сыпется кубиками и звук щёлкает. Видимо при этом кодировщику MPEG2 кардинально рвёт крышу и он как-то рушит структуру MPEG2, не знаю. Оригинал смотрибельный на 100%, а AVI-шка не получается. Либо жуткий рассинхрон, либо вообще при кодировании вылетает с какими-то ошибками. Но это бывает ну о-очень редко. PS. AVISynt-ом не пользуюсь, посему ответить прямо на Ваш вопрос не могу  . И видеокассеты я не цифровал, у меня их нет. Как я понимаю, если плёнка убитая, затёртая и заезженная, то там запросто может быть что-то похожее на описанный мной случай со спутниковой тарелкой.
Behold TV 609FM, Behold TV X7 Intel Core i7-4770K, ASUS Z87-K, RAM 32 GB, NVidia GT630 2GB. Win7, на 10 худо-бедно пахал только X7 влагодаря аппаратному кодировщику.
|
|
|
AgentSmith
|
|
Зарегистрирован: 02 янв 2012, 16:55 Сообщения: 376
|
hd44780 писал(а): А результат в каком формате надо получить? Если AVI, то лучше всего VirtualDub-MPEG2. Если хотите, дам ссылку. Спасибо, да у меня и так всё есть, если нет - гугл поможет :-) Жму я в контейнер mp4 кодеком h264, звук - в aac hd44780 писал(а): Рассинхрон появляется только если оригинал проблемный. Я сталкивался с таким, когда на тарелке глюки, изображение сыпется кубиками и звук щёлкает. Это называется - битый транспортный поток, нужно прогонять прогами tsdoctor или mpeg2repair, хотя они тоже мало помогают hd44780 писал(а): Как я понимаю, если плёнка убитая, затёртая и заезженная, то там запросто может быть что-то похожее на описанный мной случай со спутниковой тарелкой. А причем тут пленка ? Тюнеру глубоко пофигу, что идет с аналога, хоть просто обычный шум. Вот если ошибки в самом цифровом потоке - тогда это получается как с тарелкой. По теме - сам оригинал при просмотре идет без рассинхрона, а при просмотре через скрипт вначале видео рассинхрона нет, но со временем видео начинает обгонять звук, под конец расхождение - секунд 10-15, хотя длительность у видео и аудио одинаковая. Ну, и жмется, понятное дело, также. Что-то, мне кажется, с ависинтовскими плагинами не то. Потом попробую дабом повырезать, сейчас времени нет
Behold H8
|
|
|
AgentSmith
|
|
Зарегистрирован: 02 янв 2012, 16:55 Сообщения: 376
|
В-общем, дабом то же самое. Я тут вумные статьи по видеокомпрессии почитал, звук в mpeg2 постоянно синхронизируется в потоке, а сэмплы не всегда совпадают. А если звук отодрать и приклеить потом отдельно, то получается гуляние в ту или иную сторону. Короче, я в звуковом редакторе сжал весь поток на 6 секунд и приклеил так на видео - начало и конец совпадают, а середина гуляет :-) Лажа, конечно, но эксперимента ради сойдет. Попробую интервидовским кодеком писать, это был майкрософтовский
Behold H8
|
|
|
Genus
|
|
Зарегистрирован: 16 окт 2010, 19:41 Сообщения: 271 Откуда: город на Волхове
|
отключи привязку к частоте файлов и высокий приоритет записи.
Behold TV 409FM, Behold TV 505FM, Behold TV X7Intel® Core™ i5, 4RAM, GTX660, Win7 x32 Ultimate
|
|
|
AgentSmith
|
|
Зарегистрирован: 02 янв 2012, 16:55 Сообщения: 376
|
К частоте кадров ? У меня на вкладке "аудио" ваще ничего не активно, может, потому что запись идет по шине ? Я ради эксперимента записал большой кусок интервидео энкодером, попробовал - вроде как рассинхрона нет. А чем приоритет может повлиять на полученный файл ?
Behold H8
|
|
|
samfednik
|
|
Зарегистрирован: 13 сен 2009, 14:59 Сообщения: 276 Откуда: Ижевск
|
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.
BIOSTAR P43-A7,IntelCore2Quad Q8200 @2.33GHz GTX260 896MB,DDR2(PC2-6400) 4x1024Mb Behold TV 609FM, btv_v517 drv_v5350 Windows XP SP3 & Windows7(32bit) Acer GD245HQ, NVidia 3D-Vision
|
|
|
AgentSmith
|
|
Зарегистрирован: 02 янв 2012, 16:55 Сообщения: 376
|
Спасибо за примечание. Но я сейчас кодеком intervideo пишу, рассинхрона вроде нет. Открываю полученный после индексации .mp2 звук плагином nicaudio прямо в скрипте samfednik писал(а): Код: A = DirectShowSource("(120625-235741).wav").DelayAudio(.012) А wavsource не проще ? А чем Intervideo encoder плохой ? Вроде не поддерживает более чем 8-битную точность цвета ? Но я как-то на глаз пиксели не сравнивал, более важно было, что рассинхрона нет :-)
Behold H8
|
|
|
samfednik
|
|
Зарегистрирован: 13 сен 2009, 14:59 Сообщения: 276 Откуда: Ижевск
|
AgentSmith писал(а): А wavsource не проще ? Можно и его, в данном случае был просто пример. AgentSmith писал(а): А чем Intervideo encoder плохой ? Вроде не поддерживает более чем 8-битную точность цвета ? Но я как-то на глаз пиксели не сравнивал, более важно было, что рассинхрона нет :-) Ответ ниже, скопировал и выделил с "той" темы: samfednik писал(а): intervideo - довольно-таки паршивого качества выдаёт результат, и что самое для меня главное - не умеет захватывать интерлейсное видео по полям, т.е. надо использовать плагины деинтерлейса тюнера, которые вообще убивают картинку окончательно. Ну и чтобы не раскидывать инфу по разным темам отвечу тоже тут: AgentSmith писал(а): Лучше захватывать интерлейсное видео кодеком от microsoft, а прогрессив делать уже в скрипте ? Конечно да. Да сами сравните.Только у Вас, насколько я понял, видеокарточка от АТИ, тогда Вам надо искать какой-нибудь качественный деинтерлейс-фильтр/плагин для ависинта. Я пробовал разные - ни один не понравился по качеству, но DGDecodeNV.dll для Нвидия-карт - очень качественный результат даёт, причём на аппаратном уровне самой видяхи - налету, используя PureVideo Deinterlacer:  Ну а о синхронности звука, я Вам уже ответил как решать эту проблему. AgentSmith писал(а): Там в настройках microsoft-кодека можно параметр dc precision выбирать вплоть до 10 бит. Это и есть точность цвета ? Типа - псевдо-HI10P получится ? :-) Справка как бэ намекает, как его использовать: " Intra DC precision - Точность вычислений DC коэффициентов в целочисленной арифметике. На малых битрейтах ниже 4000 кБит/с рекомендуется использовать 8Bit. На высоких битрейтах более 7000 кБит/с рекомендуется использовать 10Bit. В остальных случаях лучшее качество дает 9Bit. Выбор "Auto" автоматически подстраивает DC precision под используемый битрейт."
BIOSTAR P43-A7,IntelCore2Quad Q8200 @2.33GHz GTX260 896MB,DDR2(PC2-6400) 4x1024Mb Behold TV 609FM, btv_v517 drv_v5350 Windows XP SP3 & Windows7(32bit) Acer GD245HQ, NVidia 3D-Vision
|
|
|
AgentSmith
|
|
Зарегистрирован: 02 янв 2012, 16:55 Сообщения: 376
|
samfednik, DGdecodeNV.dll, я так понимаю - это плагин открытия файла индекса mpeg2, использующий для декодирования вычислительную мощь видеокарты, а не деинтерлейсер. Полагаю, для видеокарт Ati похожего плагина может не быть, но мне, в принципе и стандартного хватает :-) Всё равно декодирование и так идет очень быстро, а основная нагрузка от, собственно, сжатия. Вот если бы путевые кодеки сжатия видео ресурсы видеокарты задействовали - это было бы лучше. Прям в драйвере Ati идет своя кодилка, но уж очень примитивная. Зато фильм где-то 1ч40мин длиной у меня жмет аж за 8 минут ! Для деинтерлейсинга я использую встроеные в MeGui плагины, уж не знаю - плохие они или хорошие. Ещё когда жму этим майкрософтовским кодеком, то в информации о файле значится тип видео - interlaced, при захвате в окне просмотра тюнера гребенку тоже видно, но в полученном файле её нет !
Behold H8
|
|
|
Genus
|
|
Зарегистрирован: 16 окт 2010, 19:41 Сообщения: 271 Откуда: город на Волхове
|
AgentSmith не майся пиши в mpeg2 dvd на который тюнер изначально заточен. Из своего опыта: На запись с сжатием тюнер неадекватно реагирует оО (баги разные перечислять не буду) Особенно если кроме записи включены другие процессы, даже торрент оО
Behold TV 409FM, Behold TV 505FM, Behold TV X7Intel® Core™ i5, 4RAM, GTX660, Win7 x32 Ultimate
|
|
|
AgentSmith
|
|
Зарегистрирован: 02 янв 2012, 16:55 Сообщения: 376
|
samfednik, записал ролик, длиной 1ч. 42 мин. майкрософтовским кодеком, отодрал звук в virtual dub mod, прикрутил его в скрипте - рассинхрон всё равно есть. Субъективно - такой же, как и с родным .mp2. Да и ролик не особо-то длинный. Так что остаюсь пока на intervideo Genus, имеется в виду - пресет mpeg2 dvd ? Их там два, один - интервидео, другой майкрософт, которые используют те же самые кодеки, соответственно - intervideo и microsoft. И чем же они отличаются от того, если их выбрать вручную ? И mpeg2 - это, что-ли, не сжатие? Genus писал(а): На запись с сжатием тюнер неадекватно реагирует оО (баги разные перечислять не буду) Если подразумевается сжатие в avi mpeg4-совместимыми кодеками, то я его не пользую только из-за того, что в случае какого-либо сбоя (неожиданное завершение работы, отключение света) восстановить файл в большинстве случаев не представляется возможным. Особенно после того, как приказал долго работать мой бесперебойник. Ну, и mpeg2 - это, всё-таки, кодек реального времени
Behold H8
|
|
|
samfednik
|
|
Зарегистрирован: 13 сен 2009, 14:59 Сообщения: 276 Откуда: Ижевск
|
AgentSmith писал(а): отодрал звук в virtual dub mod, прикрутил его в скрипте - рассинхрон всё равно есть. Субъективно - такой же, как и с родным .mp2. Каким образом "отодрал"? Если использовать прямопотоковое копирование, то может быть и не получится... Я пробовал, выбирая "Режим полной обработки", и только тогда извлекал в PCM, всё синхронно.
BIOSTAR P43-A7,IntelCore2Quad Q8200 @2.33GHz GTX260 896MB,DDR2(PC2-6400) 4x1024Mb Behold TV 609FM, btv_v517 drv_v5350 Windows XP SP3 & Windows7(32bit) Acer GD245HQ, NVidia 3D-Vision
|
|
|
AgentSmith
|
|
Зарегистрирован: 02 янв 2012, 16:55 Сообщения: 376
|
samfednik писал(а): Каким образом "отодрал"? Если использовать прямопотоковое копирование, то может быть и не получится... Отодрал - save wav samfednik писал(а): Я пробовал, выбирая "Режим полной обработки", и только тогда извлекал в PCM, всё синхронно. Но это же тогда нужно и видео сжимать ? Или в потоках выбрать "full processing mode", выбрать pcm, а потом "save wav" ? Что-то у меня там в режиме "no compression (pcm)" справа никакого выбора нет
Behold H8
|
|
|
Genus
|
|
Зарегистрирован: 16 окт 2010, 19:41 Сообщения: 271 Откуда: город на Волхове
|
MPEG Video Wizard всё в одном)
Behold TV 409FM, Behold TV 505FM, Behold TV X7Intel® Core™ i5, 4RAM, GTX660, Win7 x32 Ultimate
|
|
|
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7 |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
|
|