LINUX.ORG.RU

Перекодирование видео с меньшего fps на больший

 , ,


0

2

Всем привет! Пробовал перекодировать с 23.97 до 29.97 кадров в секунду, так видео на 8 минут в оригинале получается на 3 секунды короче! Подозреваю, что кадры добавляются не совсем корректно. Использовал гуй Handbrake, который в свою очередь использует ffmpeg.

А как ты, товарищ, перекодируешь с меньшего на больший фреймрэйт? Это может быть правильная команда ffmpeg, прога с гуем, которая делает это корректно, и т.д.


А как ты, товарищ, перекодируешь с меньшего на больший фреймрэйт?

Никак. Менять фреймрейт — последнее дело

MrClon ★★★★★
()

А как ты, товарищ, перекодируешь с меньшего на больший фреймрэйт?

Никак. Повышать фреймрейт — затея крайне глупая.

правильная команда ffmpeg

Могу зачитать тебе man ffmpeg вслух и с выражением за €10/min (да, здесь тебе не StackExchange).

r3lgar ★★★★★
()
Ответ на: комментарий от Cesdo

Вернее, вам не нужен полноценный VFR, просто склейте куски с разным фреймрейтом, и всё. Все современные контейнеры это поддерживают.

ValdikSS ★★★★★
()
Ответ на: комментарий от Cesdo

23.97 до 29.97

Обычно делают 2:3 Pulldown в интерлейсном MPEG2/H.264. Эта процедура обратима. Смотреть нужно потом с деинтерлейсом в 59.94p или IVTC. Если разница 23.976/25 смена скорости.
Если нужен прогрессив, то неплохо работает ависинтовский ConvertMFlowFPS из состава XviD4PSP 5. Он перестраивает все кадры на основе анализа движения и оно будет плавным, но может появиться немного мазни, особенно в стоп кадрах.

Кстати посмотри честный ли у тебя 29.97, может там IVTC надо делать до 23.976 или Decimate до 25 и все сойдется, в крайнем случае сменить скорость (тональность сохранять не нужно). В ConvertMFlowFPS имеет смысл делать понижение (29.97>23.976), а не повышение, т.к. для mvtools будет запас из честных кадров.

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

В случае с MPEG2 можно даже не менять fps, а просто вставить pulldown флаги.

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

Я как-то перекодировал такой mkv в ffmpeg. ffmpeg цепляется за fps, что идет в начале. Если она там максимальная, то все норм, кодит в vfr, копируя таймкоды. Если нет, то остальные куски подгоняет дублями/дропами до первоначальной. fps при энкоде вроде бы не форсил, просто пересжал. А рассинхрон может быть в тех конвертерах, которые извлекают звук и работают с ним отдельно или поддерживают только CFR.

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

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

В частности твоё видео: зависает в фурифоксе в начале плана с городом, сегфолтит vlc там же. И это ещё хороший случай. Ошибка на виду, её легко обнаружить и трудно проигнорировать. Хуже когда косяк всплывёт через десять лет после удаления всех исходников

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

В частности твоё видео: зависает в фурифоксе в начале плана с городом, сегфолтит vlc там же.

У меня ни того, ни другого не произошло.

utf8nowhere ★★★
()
Ответ на: комментарий от ValdikSS

В хромом ломает в начале сцены с ведьмами.

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

Спасибо. Давно хотел потестить эту фичу webm контейнера. SMPlayer 15.11 Ubuntu 16.04 (mpv 0.14) расплющило: Все показал в 4:3, с середины ведьм пошли тормоза и пропал звук. Xine 1.2.6 тоже самое, только с начала второго куска еще зеленый муар. Говорят еще в MPG можно смешивать аспекты, при том же разрешении, а в AC3 количество каналов, но при том же битрейте. Что насчет TS?

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

Во второй сцене должен быть аспект 16:9. Chromium 66 показал всё в 4:3. Firefox 60 переключился со второй сцены на 16:9, но видео дальше не пошло, один кадр остался.

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

Я вижу, как у тебя работает XD

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

Можно подумать такие webm я часто смотрю. Остальное работает.

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

Любителям извращений: Lame (2006 года точно, потом хз, может выпилили фичу) может кодировать mp3 с битрейтом до 640 kbps, если задать ключ freeformat. Только мало кто потом его откроет.

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

Давно хотел потестить эту фичу webm контейнера

Что-то не помню чтобы для webm заявляли такую фичу, скорее это недовыпеленная фича mkv. При чём не факт что для mkv поведение в таких случаях прописано достаточно однозначно чтобы эту фичу можно было считать фичей

MrClon ★★★★★
()
Ответ на: комментарий от utf8nowhere

«Это видео оптимизировано для просмотра в браузере Firefox 61.0.1, на экране с разрешением 1920x1200 пикселей»

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

Нужна конкретика. Для чего делается: Youtube, DVD, BD, PC only. Кому-то выкладывать или для себя. Какие частоты. Честный ли 29.97, если пролистать покадрово. В зависимости от этих факторов и выбирать решение, примеры которых выше уже предложены.

anonymous
()

Любая коммерческая монтажка или проф. конвертер, например, тебе сделают frame blending, если им скормить такое. Интерлейсный или прогрессивный, в зависимости от проекта. Посмотри, может понравится. На Линуксе таких практически нет, придется расчехлять винду.

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

Но не херит картинку лишними пережатиями

dk-
()
Ответ на: комментарий от deep-purple

Смена скорости (самое правильное решение) актуальна только для преобразований 23.976<>25, где разница не превышает 4% и почти незаметна. Разница между 23.976 и 29.97 20% и никто никогда скорость не меняет при таких преобразованиях, т.к. это уже и на звук конкретно влияет. Приходится выкручиваться кто как может, идеального решения здесь нет.

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

А у меня и в Firefox 61, и в mpv 0.28.2 работает корректно.
Вероятно, играет роль еще версия ffmpeg.

Это не функциональность контейнера, а функциональность непосредственно кодека vpX. Но, при определенных условиях, такое можно проделать и с H.264, причем информация об изменении аспекта вшивается в метаданные видеопотока, а не в контейнер.

https://files.catbox.moe/bvf2i4.mkv

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

В TS можно вообще разные PID вещать, но нормальное из воспроизведение поддерживает только VLC. Я так вещаю аниме без перекодирования, в MPEG-TS, с разными кодеками видео и аудио прямо в одном потоке.

ValdikSS ★★★★★
()
Ответ на: комментарий от MrClon

Не вижу изврата. Я несколько лет назад подходил к этому вопросу, тестировал на разных компьютерных плеерах, медиаплеерах, телефонах, телевизорах — везде работало, проблем не было.

Это, по сути, VFR, только фреймрейт изменяется не так часто.

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

Разрешение тоже, но, в случае с H.264-потоком, используются хаки для отображения якобы анаморфа, а в самом контейнере указывается максимальное разрешение.

ValdikSS ★★★★★
()
Ответ на: комментарий от MrClon

смажьте своих лис, че у вас там застревает

t184256 ★★★★★
()
Ответ на: комментарий от ValdikSS

mkvtoolnix ругается, если склеивать файлы с разным fps, правда сохранить дает. В свое время тоже баловался, нарезку приколов из Твин Пикс делал без пересжатия. Как я сейчас только понял пережимать надо было, т.к. криворукий релизер сделал 29.97 с дублями (23.976), а с 25 fps было всего пара серий.

VFR

А вот если к видеофайлу прикрутить другой аудифайл (озвучку, скажем), который под другой fps, звук тоже можно не пережимать, а сделать растяжку средствами контейнера mkv. Видеоплееры при переключении на такую зв. дорожку обычно меняют fps видео при воспроизведении. Но на рутрекере за такое бьют по рукам. Хотя это единственный способ не гадить тональность и качество звука. Впрочем озвучками давно не увлекаюсь, уже неактуально.

deep-purple предлагал дельное решение. Можно пропатчить видеопоток под новую fps без пересжатия и потом уже муксить с CFR. Получится надежней. Придется растянуть и пересжать звук, но это уже не так страшно. 29.97 конечно пролетает.

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

Решения это скучно, то-ли дело обсуждение. Чё ты как первый день на ЛОРе

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

mkvtoolnix ругается

Наверное потому что еще надо проставить флаг VFR, а иначе получается уродец CFR, но с разным fps. Вот только как?

SVPflow

Плохая идея. SVP только генерирует новые кадры, но частота отличается некратно и плавности все равно не будет. Потому что кадры вставляются неравномерно. SVP хорош только для кратного повышения, для некратного лучше использовать ConvertMFlowFPS https://rutracker.org/forum/viewtopic.php?t=4733376 т.к. он перестраивает все кадры для равномерного движения. Т.е. высчитывает где должен находиться объект с учетом новой fps. И лучше делать понижение (имхо), т.к. больше ценной информации о движении. А то, что делает SVP, назвать качественным нельзя, кстати. А ConvertMFlowFPS может запросто преобразовать, например 25 fps > 15 fps почти без артефактов.

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