LINUX.ORG.RU

IVTC на лету в плеере

 ,


0

1

Кто знает какие решения? На ум приходит:

1. IVTC фильтр в VLC. Но мне попался DVD Kickboxer 3, где 80% FILM, в результате из-за постоянного переключения Film-Video страдает плавность. По идее нужно следовать Pulldown флагам, а потом сразу применять IVTC как делают оффлайн решения.

2. Фильтры mplayer (mpv, SMPlayer) http://www.mplayerhq.hu/DOCS/HTML/ru/menc-feat-telecine.html Проблема в том, что mplayer, насколько я понял, делает IVTC, но выкидывать дубликаты фильтром softskip (29.97>23.976) умеет только mencoder при кодировании. При воспроизведении остаются рывки.
http://manpages.ubuntu.com/manpages/cosmic/ru/man1/mplayer.1.html > softskip (Имеет смысл только с MEncoder).
Опцию decimate mplayer игнорирует. Видно менять частоту кадров фильтры при воспроизведении все-таки не могут. Поправьте, если я не прав.

3. На винде я бы просто скормил Avisynth скрипт с IVTC любому плееру. В линуксе есть Vapoursynth (для убунты есть ppa https://launchpad.net/~djcj/ archive/ubuntu/vapoursynth)
Предложенный там вариант http://www.vapoursynth.com/doc/plugins/vivtc.html слишком сложный и медленный для realtime. Я его сократил:

import vapoursynth as vs
core = vs.get_core(4)

input_clip = core.d2v.Source(input=r'/home/denis/Kickboxer.d2v')

matched_clip = core.vivtc.VFM(input_clip, 1)
decimated_clip = core.vivtc.VDecimate(matched_clip)
decimated_clip.set_output()

Скорость все равно немногим больше realtime. Неудобства по сравнению с виндой: приходится использовать консольный патченный mpv, Vapoursynth в отличии от Avisynth не поддерживает звук, его надо подавать плееру отдельной дорожкой. mpv из ppa требует также их libass и не совсем совместим по опциям с SMPlayer из репозитория убунты. Это можно обойти скриптом переключения версий, но очень уж все геморно получается. Через pipe же, наверное, не будет работать перемотка.

4. Сделать деинтерлейс (например Yadif) в двойную частоту 59.94p. Недостатки: ресурсоемкость, хуже качество из-за деинтерлейса прогрессивных кадров, частоту монитора желательно иметь 60 или кратной для плавного воспроизведения. Подобным образом работают железные плееры, скорее всего.

5. Не париться, просто перекодировать DVD в Handbrake и смотреть рип. Неплохое решение, жаль что свободное место на винте стремительно подходит к концу, чтобы тратить его на пережатки.

6. Поставить винду в дуалбут.

Что еще я упустил?

Некоторые источники лучше смотреть в Yadif(2x), некоторые в VLC с IVTC, некоторые лучше играет Xine и Mplayer без обработки. Найдите сцену с медленным движением и сравнивайте глазами его ровность. Конечно, лучше предпочитать непересжатое видео, там меньше шансов нарваться на косяки при риповании.

Например, довольно часто попадаются DVD (особенно музыкальные) транскодированные из другой системы (PAL, NTSC) методом frame blending. 99% рипов с них будет с дерготней. Например, если это NTSC, его играть нужно в 59.94p или специальными инструментами вытаскивать 25p. А что мы видим на трекерах? Только что был свидетелем: 3 рипа, все кривые. 29.97, 23.976 и 25 (тупо получена из 29.97), ни одна из частот не является корректной, это просто потрясающе. Каюсь, сам так делал раньше. Или честное интерлейсное видео - большинство рипов не передадут всю его плавность. Поэтому рипы лучше избегать.

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

Причем, ирония в том, что 29.97 неправильно, конечно, но еще куда ни шло (особенно, если использовался linear blend деинтерлейсинг), а примитивные <=25 это совсем плохо. Но именно они ничтоже сумняшеся получают лычку «проверено».

anonymous ()

А чем делать хотя бы просто decimate? На рутрекере целые сериалы выкладывают с кривым fps. ffmpeg'овский параметр decimate=cycle=6 mpv отказывается есть, а mplayer ест, но разницы нет.

Придется, наверное, заводить в дуалбутной винде PotPlayer с Avisynth или делать пакетное конвертирование. А хочется в realtime исправить под линуксом.
Хотя можно передать данные от ffmpeg к mpv через pipe, но вопрос заведется ли перемотка.

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

Отказывается можно смотреть в ffplay
29.97>25:

ffplay -i input.mkv -vf decimate=cycle=6,scale=768:576 -fs
29.97>23.976:
ffplay -i input.mkv -vf decimate,scale=768:576 -fs

Вообще-то в первом случае частота получится 24.975 (25/1.001). Более точно в ffmpeg'овском decimate не задать, так как он оперирует целыми числами. Это значит, что каждые 40 секунд будет пропускаться полезный кадр. На деле это не очень заметно и всяко лучше, чем без коррекции смотреть. Вот, если бы на входе было 30, тогда получилось бы ровно 25.

anonymous ()

DVD Kickboxer 3

Неактуально. Уже есть WEBDL 1080p, где с кадрами все в порядке, правда нет оригинальной дорожки, но ее не проблема вытащить с DVD и перетянуть при необходимости.

anonymous ()

Vapoursynth PPA для Ubuntu мертв. Убунте доверился - в дураках остался!

Сначала он был тут https://launchpad.net/~djcj/ archive/ubuntu/vapoursynth потом перехал сюда https://launchpad.net/~djcj/ archive/ubuntu/hybrid теперь сюда https://launchpad.net/~vapoursynth/ archive/ubuntu/git-ppa но внимание, для 16.04 пакетов нет http://ppa.launchpad.net/vapoursynth/git-ppa/ubuntu/pool/main/v/vapoursynth/ . А ведь казалось бы еще недавно ставил в 16.04! Надо было хоть в web archive сохранить. Обсуждение этих лошадиных скачек здесь https://github.com/vapoursynth/vapoursynth/issues/443 и здесь https://github.com/vapoursynth/vapoursynth/issues/455 Не нравятся мне люди вокруг Vapoursynth, подленькие какие-то. И сам Vapoursynth не нравится.

anonymous ()