Я использую mpc-hc для воспроизведения видео на Win7 x64. При настройках по умолчанию (# 1) воспроизведение видео в большинстве случаев великолепно. Но для кадров панорамирования воспроизведение не гладкое . Пошагово просматривая видео, я обнаружил, что движение панорамирования плавное (например, каждый кадр смещается по горизонтали на 10 пикселей), поэтому проблема заключается в том, как видео с частотой 23,976 кадр / с интерполируется до 60 Гц.
Похоже, что дрожание будет вызвано «2: 3» , где кадры воспроизводятся неравномерно, например:
frame 1, 1, 2, 2, 2, 3, 3, 4, 4, 4, etc
(# 2)
Использование «оптимальных настроек рендерера» (# 3) вместо значения по умолчанию отключает тему Aero и вызывает разрыв .
Установка моего ЖК-дисплея на 50 Гц, возможно, немного улучшила дрожание (но я не могу точно сказать). Мой дисплей не поддерживает 24 Гц или 48 Гц, и их принудительное использование на панели управления Nvidia дает размытый экран.
Я пробовал другие видеоплееры ( VLC и KMPlayer ), ReClock Directshow Filter , видеофайлы из разных источников (# 4) , включение / выключение DXVA и компьютер с другим GPU, но дрожание при воспроизведении схоже , Никто из них не решил проблему.
Можно ли плавно воспроизводить видео со скоростью 23,976 или 24 кадра в секунду на дисплее с частотой 60 Гц?
Я думаю, что видеоплеер может сделать видео более плавным, выполняя линейную интерполяцию, например:
1. 100% frame 1
2. 60% frame 1 + 40% frame 2
3. 20% frame 1 + 80% frame 2
4. 80% frame 2 + 20% frame 3
5. 40% frame 2 + 60% frame 3
6. 100% frame 3
7. 60% frame 3 + 40% frame 4
.. etc
Может ли существующий видеоплеер сделать это?
Сноски:
(# 1) Видео рендерер: EVR Custom Pres.
(# 2) Этот пример преобразует видео со скоростью 24 к / с в 30 к / с
(# 3) Вид> Настройки рендерера> Сброс> Сброс до оптимальных настроек рендерера
(# 4) Все файлы, которые у меня есть, представляют собой файлы M.2V H.264, но я не Не думаю, что формат файла / кодировка имеет значение.
Ответы:
Ознакомьтесь с проектом SmoothVideo :
источник
Я не знаю плеера, который мог бы делать это на лету, но вы можете конвертировать любое видео со скоростью 24/25 кадров в секунду в хорошее видео со скоростью 60 кадров в секунду, перекодировав видео с интерфреймированием.
Вот очень хороший пошаговый учебник, чтобы сделать это. Включает образцы видео до / после. http://www.spirton.com/convert-videos-to-60fps/
источник
Ваша идея сделать воспроизведение видео более плавным с помощью линейной интерполяции - это просто смешанный метод преобразования частоты кадров (или Blend FRC). MediaPlayer.NET (MPDN) использует эту технику и называет ее «Fluid Motion». MadVR называет это « плавным движением».
Этот метод FRC является самым основным из того, что использует SVP. Тем не менее, и MPDN, и madVR имеют возможность определять фактическую частоту обновления дисплея с очень высокой точностью. Хотя маловероятно, что вы заметите пропущенный / повторяющийся кадр на частоте 60 Гц, SVP все еще страдает от (хотя и незначительного) несоответствия скорости ввода / вывода (например, 60,001 Гц + отклонение эталонной тактовой частоты и 60FPS). Использование SVP также намного более интенсивно использует GPU, чем смешанный FRC игрока, который стоит лишь небольшую часть времени рендеринга.
Если вы можете разогнать свой дисплей, скоростной тюнер MPDN дает вам альтернативу смешиванию FRC и, как правило, считается лучшим вариантом. Смешивание FRC может вызвать размытие / ореолы, поэтому его следует рассматривать как последнее средство. См. Вики-тюнер MPDN на GitHub для получения дополнительной информации.
Отказ от ответственности: я автор MPDN.
источник
Я часто играю видео 24fps в VLC на 60 Гц дисплее, и оно плавно отображается с помощью аппаратного ускорения рендерера по умолчанию с аппаратным ускорением nVidia, похоже, не судит (не уверен, какой метод он использует).
источник
Для всех, кто использует монитор с частотой 60 Гц: в качестве первого шага убедитесь, что ваш монитор не поддерживает 23,976 Гц, 24 Гц, 47 952 Гц или 48 Гц, используя панель управления графического процессора (NVIDIA, AMD или Intel). Вероятно, он не будет указан в списке, поэтому потребуется создать собственное разрешение и протестировать его.
ОП говорит, что он сделал это, поэтому нам нужна некоторая форма интерполяции кадров. Самый безболезненный способ сделать это в настоящее время - использовать опцию плавного движения madVR.
Чтобы использовать madVR, установите MPC-HC и madVR, выберите madVR в качестве средства визуализации в параметрах MPC-HC. Если все идет хорошо, в MPC-HC вы сможете нажать CTRL-J и увидеть это:
Здесь подчеркнута красным то, что важно, работает на частоте 60 Гц, но с плавным движением. Это не будет идеально, но в основном это лучшее, на что вы можете надеяться, пытаясь уместить 24 кадра в 60 циклах обновления.
источник
Кто-то еще упомянул проект Smooth Video. Это может потенциально помочь, но иногда сглаживание движения делает что-то, предназначенное для более низкой частоты кадров, плохим, потому что видео 24fps имеет размытие движения, встроенное в отдельные кадры. Сглаживание движения делает видео, снятое на цифровом экране, лучше.
Видеоплеер MPV имеет сглаживание движения или интерполяции внутри кадра встроенный. Вы должны проверить его.
источник
Вы должны попробовать mpv с его
--interpolation
опцией, предпочтительно через графический интерфейс, такой как SMPlayer . Это делает что-то очень похожее на то, что вы описываете.Установите SMPlayer и в настройках сделайте следующее:
opengl-hq
--interpolation --video-sync=display-vdrop --tscale=oversample
Видео теперь должно воспроизводиться почти так же плавно, как на собственном дисплее с частотой 24 Гц, но без какого-либо «эффекта мыльной оперы».
Вот (возможно, устаревшее) техническое объяснение того, что делает эта опция (раздел «smoothmotion»).
источник
Вы пытались отключить «Пропустить кадры» в настройках VLC?
источник