LINUX.ORG.RU

Несколько вопросов про рипы

 ,


2

2

Не нашёл какого-то вменяемого руководства или отдельных ответов на вопросы. Какая-то одна ерунда из пары действий или целая энциклопедия по кодекам. Ссылки приветствуются.

Ну, во первых, наверно: в чем под линуксом делать рипы с двд и бд образов?

Я пока попробовал avidemux, но возникает несколько проблем и вопросов:

  • Можно как-то в нём сделать заставочку\менюшку на несколько секунд с музыкой, как оно заложено в образе? Открыть образ-то оно открывает, а вот эти заставки и меню не воспринимает, просто проигрывает их за какие-то миллисекунды или пропускает.
  • Не сохраняет информацию о сценах, то есть если в smplayer перематывать видео, то должна быть видна разбивка на сцены, вместо этого одна сплошная полоса перемотки, это как-то можно сделать?
  • Есть настройки кодирования, но в них или пресеты для 264 кодека (slow, fast...) и дополнительные, типа film, ssim, и ещё всякое - это хорошо, что они есть, но какого фига из-за этого отрубается тонкая настройка, даже не отображается и reframes выкручивается на 16? Если не использовать пресеты, то доступны куча дополнительных настроек, но не представляю, как в них разбираться, до фига, блин.
  • Я тут уже накодировал на veryslow, вроде, нормально, но вот вначале не знал и внимания на обратил, что reframes 16, насколько это проблема или не проблема уже давно? Лично у себя-то на ПК или смартфоне проблем не вижу.
  • На 265 кодек сейчас внимания не обращать? Я пробовал, но результат какой-то мыльный и очень медленно, ну, на slow не так уж и медленно, но результат заметно хуже 264 на veryslow.
  • Контейнер любой использовать?
  • Для аудио только аас? Чо-то всего его используют, прям лучше ogg? Или если в самом образе ac3 с всего лишь с 192 kbps, то лучше его и оставлять?
  • При кодировании с yadif иногда вверху полоска может появляться, как забороть интерлеисинг?

Кстати, с wmv файлами avidemux работает с багами, пробовал просто объединить несколько частей, которые были одинаково закодированы, так после этого при перемотке артефакты на видео пошли и при создании скринов тоже. Объединял без перекодирования. Некоторые видео и аудио (не образы) оно не переваривает, то звук свистел с какого-то жирного bd-аудио, то с видео какая-то ерунда, забыл уже, а smplayer их нормально играет.

★★★★

Последнее исправление: Ros (всего исправлений: 1)

mencoder хорош тем, что в нем есть IVTC фильтр. Но в ffmpeg его вроде бы тоже можно задействовать. Кодировать в H.264 mencoder умеет, но в контейнер AVI. Потом можно пересобрать в MKV.
Однако IVTC лучше делать в TDecimate Avisynth. Он точнее удаляет дубликаты, особенно после внезапных изменений сцен:

ConvertToYV12(interlaced=true)
interp = nnedi3(field=-1, qual=2)
tmmask = TMM(order=-1, field=-1)
deint = TDeint(order=-1, field=-1, edeint=interp, slow=2, emask=tmmask)
TFM(order=-1, mode=3, clip2=deint, slow=2)
TDecimate(mode=2, rate=23.976023976)
Двухпроходный режим для простого прореживания:
TDecimate(mode=4, output="y:\metrics.txt")
TDecimate(mode=2, rate=25.000, input="y:\metrics.txt")
Удаление транскода:
MPEG2Source("video.d2v", cpu=0)
ConvertToYV12(interlaced=true)
QTGMC(Preset="Fast", Sharpness=0.4)
Crop(0, 0, -0, -0)
SRestore(frate=25)
Однако, процедура эта неидеальная. Небольшие рывки местами могут остаться. По сути этот код деинтерлейсит видео в двойную частоту. Потом SRestore пытается найти и удалить дубли и бленды, оставляя только настоящие кадры.

anonymous
()
Ответ на: комментарий от anonymous

Мне не понравились результаты Avisynth и компании, и качества деинтерлейсинга в особенности. Те консольные приблуды работающие с сырым потоком вроде ничего показали себя. Тоже через удвоение и преобразование, примерно то же делали. Вот не помню за рывки, там в оригинале очень сложное видео с переменной скоростью и артистическими артефактами было и в принципе меня результат устроил (после удвоения, перекодировать в 30 причин не было). Там ещё какой-то прикол был, что обычный софт не учитывает что там field rate 60000:1001 и округляет куда-то не туда. Так что только ручками.

anonymous
()
Ответ на: комментарий от anonymous

Он точнее удаляет дубликаты

Потому что у обычных дециматоров (ffmpeg -vf decimate=cycle=5) маленький буфер, доступа к предыдущим кадрам у них нет и перестраиваются они на лету. Если структура дублей поменялась (например, появился или исчез лишний кадр), они перестроятся, конечно, но в этот момент мы увидим рывок. Например, на титрах после долгой черноты.

TDecimate в mode=2 (а двухпроходный mode=4 сначала, потом mode=2 еще лучше) имеет большой буфер (mode=4 вообще знает всю структуру), может править предыдущие кадры, а перестраиваться там, где это менее заметно (на предыдущей статике). Например, в этом видео (25>30 fps) только в mode=2 нет рывка на финальных титрах за счет коррекции в предыдущей черноте и начало плавное. Но не пользуйтесь mode=7, это практически синоним простейшей cycleR=1,cycle=N, только с другим синтаксисом.

Как узнать какая была исходная fps. Полистайте покадрово. Если видео 29.97, но каждый пятый кадр дубль, значит 23.976. Если каждый шестой дубль, значит 25.
Пропорция (из 5 кадров - 4 нормальные):
29.97 - 5
x - 4
x=29.97*4/5=23.976
Для интерлейса - на небольшом сэмпле, где много движения, сделайте деинтерлейс в двойную частоту (50 или 59.94), смотрите покадрово (или сделайте раскадровку) и удаляйте все дубли и бленды. Из того, что осталось, по пропорции высчитываете оригинальную частоту кадров. Хотя иногда бывает бленды уже окончательно вшиты в видеопоток (если расчет покажет слишком малую частоту <23.976), тут уж ничего не поделать.

Если структура не постоянна и с виду не поддается логике, считайте на как можно большем участке среднее значение и используйте TDecimate в двухпроходном режиме (сначала генерация metrics.txt, потом финальная обработка). Обычно такую нестандартщину в 2pass он переваривает вполне нормально, в отличии от других фильтров.

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

Можно даже из захардкоденного деинтерлейснутого Hard Telecine (не подвергшегося ресайзу, по крайней мере по вертикали), где чередуются 3 прогрессивных кадра и 2 бленда, вытащить 23.976 с помощью:

AnimeIVTC(1, bbob=5, blend=true, extbob=MC_A_bob, mode22=false, aa=0)#.trim(1,0)

fdk-aac@192 наверно минимальное допустимое качество

Это максимальное качество для fdk (непатченного). Но лучше указывать -vbr 5, это примерно 192 и будет, но на несложных (например, псевдостерео=моно) может и 128 получиться, это норм звучит.

anonymous
()
Ответ на: комментарий от anonymous

Узнать какая частота в видео на ютубе можно не скачивая его. ПКМ - Статистика для сисадминов, значение после @. Полистать покадрово кнопками < >.
Во втором видео я попутал что-то, дублей нет, только пропуски. Исходник был 29.97 скорее всего. Но, кстати, если структура пропусков постоянна (24 - 25 кадров, например), хотя это бывает редко, на их месте можно построить искусственные кадры с помощью SVP. Он строит не очень хорошо, но это лучше, чем ничего. Но, конечно, всегда предпочтительнее найти нормальный исходник.

anonymous
()
Ответ на: комментарий от anonymous

Давай что-нибудь полезное, вот допустим у меня в руках dvd с 480i, дальнейшие действия?

Допустим, выясняем верхняя половина нам нужна или нижняя, да? Это первое с чем нужно определиться. Dar, sar, что там ещё? Надо будет посмотреть, что я там наворотил и остались ли ещё претензии по результату. Лежит коллекция самых различных dvd (в том числе похереных), которые надо обработать.

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

А вообще любые фильтры для деинтерлейсинга какое-то убожество.

anonymous
()
Ответ на: комментарий от anonymous

60 не 59.94, почему принято забивать? Потом рассинхрон же на длинных файлах. То же самое с 30.

anonymous
()
Ответ на: комментарий от anonymous

dvd с 480i, дальнейшие действия

Для начала посмотреть soft telecine 23.976p ли там, это можно даже в MediaInfo. Но от soft telecine надо тоже правильно избавляться (в том числе при просмотре). Потом посмотри нет ли там hard telecine, interlace или transcode. А бывает еще гибрид. Вообще с NTSC довольно много гемора. Исходник точно лучше не удалять.

anonymous
()
Ответ на: комментарий от anonymous

Мне показалось там изначально 29 (и снято в 59.94, причём в формате где несколько минут занимают гигабайты) и надо только выяснить какая половинка ведущая. Вообще, я пытаюсь сделать универсально конечно и мне не достаёт различной экзотики для тестирования, но похоже мне нужна была только экзотика.

Вот тут об этом написано вроде, том числе про мои «половинки».

anonymous
()
Ответ на: комментарий от anonymous

Залей сэмпл, я посмотрю.

Еще одно наблюдение. Есть адаптивные деинтерлейсеры с анализом движения, сохраняющие четкость (Yadif, TDeint, QTGMC), а есть примитивные вроде linear blend или простой bob, где половина строк выкидывается и четкость падает в два раза. Hard Telecine вообще полагается пропускать через IVTC, но если его пропустить через деинтерлейсер (на половинной частоте 29.97), то после простого деинтерлейса будет 3 прогрессивных кадра и 2 бленда. А после адаптивного 4 прогрессивных кадра и 1 дубль (по крайней мере на динамике) - их оценка движения перестраивает 2 бленда в 1 полноценный кадр и он дублируется для сохранения частоты 29.97.

На двойной же частоте 59.94 все деинтерлейсеры работают одинаково (но адаптивные сохраняют четкость). Также как и separate fields. Там нет блендов, структура PPPDD, где P - прогрессивные кадры, D - дубли. Тоже самое было бы, если 23.976 (после IVTC, например) играть на 59.94 Hz (опустим пока разницу 59.94-60). PPPDD. Это значит, что на железных плеерах и телевизорах, которые как правило работают на двойной частоте, в NTSC не будет мазни и рывков, как многие боятся. Хотя деинтерлейсер все-таки картинку попортит (зависит от продвинутости, но даже адаптивные портят прогрессивные кадры). Транскоды тоже смотрятся нормально только на двойной частоте, а не как в обычных рипах. Причем частота экрана должна совпадать. Но PAL>NTSC как правило играется нормально всегда, а вот NTSC>PAL (50 fps) не повезло. Что на 60 Hz, что на 85 Hz будут рывки, нужно переводить устройство отображения на четные 50/100 Hz.

Там еще много нюансов. Добавлю только, что NTSC Soft Telecine (aka 2:3 Pulldown) лучше смотреть в SMPlayer с mplayer движком (не mpv). mplayer игнорирует pulldown флаги и играет честные 23.976 без рывков. На винде рекомендую ffdshow или Cyberlink.

anonymous
()
Ответ на: комментарий от anonymous

PPPDD

Пардон, конечно же имелось в виду PDPDD. Ну или 11222.

Кстати транскод opensource утилиты делать не умеют (может и к лучшему). Хотя через avisynth можно извратиться. Зато умеет делать коммерческий софт, например: ProCoder при отключенной смены скорости, интерлейсный MainConcept экспорт в Sony Vegas, Edius по моему и т.п. Это плохой способ, но все-таки лучше, чем безвозвратное выкидывание кадров в ffmpeg при уменьшении fps.
А ProCoder может закодить через QuickTime 23.976 в AVI DV NTSC (в котором разрешено вообще-то только 29.97). Там как-то хитро, в заголовках значится 29.97 max, но воспроизводится 23.976. Интересно как переварят такой файл линуксовые монтажки...

anonymous
()
Ответ на: комментарий от anonymous
QTGMC(Preset="Fast", Sharpness=0.4)
SRestore(frate=25)

Необязательно использовать такой тяжелый деинтерлейсер, как QTGMC. А он очень медленный даже на Faster пресетах. Сам SRestore достаточно быстрый. Для скорости и простоты можно обойтись вместо него:

Yadif(mode=1, order=-1)
Если качество устроит и лесенок не будет видно.
Может быть и в плеере на лету получится обработать. Виндовый PotPlayer поддерживает проксирование через Avisynth и Vapoursynth.

anonymous
()
Ответ на: комментарий от anonymous

Если структура пропусков постоянна, на их месте можно построить искусственные кадры с помощью SVP

Я такое несколько раз проделывал, а в одном случае даже три раза за фильм структуру подправлял. Если кому нужно, пример скрипта (начало обсуждения).
Если дроподублей на месте пропусков нет, то их можно создать с помощью ChangeFPS и нацелить через Trim, а дальше GameDropFix. Но, можно придумать решение элегантнее на основе скрипта выше. Еще пара занятных примеров.

anonymous
()
Ответ на: комментарий от anonymous

ProCoder может закодить через QuickTime

Только это глюкалово, которое официально стоит 5000$ o_O запросто может уронить винду в синий экран насовсем. И вообще винды что-то у меня часто дохнуть стали, казалось бы это линукс легче убить должно быть. Наверное потому что всякий софт с торрентопомоек в нем не ставлю.

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от anonymous

А я знаю, почему мало кто замечал. При установке еще нет дров на аудиокарту, но виртуалбоксовое железо XP понимает.

anonymous
()
Ответ на: комментарий от anonymous

Прикольно они гармоник от НЧ добавили, чтобы на беленьких «Гениусах» типа глубокий бас был. «Вау-эффект», однако!

Quasar-Napilnik_CPY
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.