Nano Hash - криптовалюты, майнинг, программирование

DVD в x265 mp4 Удалить повторяющиеся кадры с правильной частотой кадров

Я использую FFmepg для перекодирования видео m2v в mp4 x265.

Исходное видео - DVD NTSC с частотой кадров 29.97.

Свойства VLC и Windows дают 29.97, но FFprobe говорит, что r_frame_rate равно 59.94.

Свойства файла FFprobe:

codec_name=mpeg2video
codec_time_base=1001/30000
r_frame_rate=60000/1001
avg_frame_rate=30000/1001

Проблема

Использование без параметров частоты кадров FFmpeg приводит к тому, что частота кадров нового mp4 будет равна 59.94.

С параметрами частоты кадров он достигает 29.97, как и исходный.

-x265-params "fps=30000/1001" 
-framerate 30000/1001 
-r 30000/1001 

Удаление дубликатов кадров

Я получил предупреждение More than 1000 frames duplicated, вероятно, из-за преобразования 60000/1001 в 30000/1001. Хотя на самом деле это не может быть 59.94 fps, потому что источником является DVD NTSC.

вертикальная синхронизация

-vsync 0 удалил повторяющиеся кадры, но сделал видео 23.94 fps.

mpdecimate

-vf "mpdecimate, fps=30000/1001"

Удалены повторяющиеся кадры и заданы правильные 29.97 fps, но выглядит более прерывисто. Может быть, эти дублирующие кадры были нужны?


Настройки FFmpeg

ffmpeg -y 

-fflags +genpts 

-i input.m2v

-c:v libx265 
-preset medium -x265-params "crf=20:rc-lookahead=18:fps=30000/1001"
-pix_fmt yuv420p 
-tune grain -profile:v main -level 4.1 

-copyts 
-avoid_negative_ts make_zero 

-vf "mpdecimate, fps=30000/1001"

-threads 0

output.mp4

Вопросы

Как правильно преобразовать это в x265 mp4 при сохранении исходной частоты кадров?

Является ли исходная частота кадров DVD 29.97 или 59.94?

Должен ли я удалять повторяющиеся кадры и не повреждает ли это видео?

02.07.2018

  • Кадры были деинтерлейсированы? Если нет, показывает ли ffmpeg его как чересстрочный? 02.07.2018
  • @Gyan Я считаю, что источник прогрессивный, в кадрах нет чересстрочных линий. Как я могу определить, является ли он чересстрочным, используя ffprobe или ffmpeg? 02.07.2018
  • @Gyan Он говорит field_order=progressive, перебирает время и говорит 1pkt_pts_time=81.281200|interlaced_frame=0. 02.07.2018
  • И ffprobe in.m2v -fpsprobesize 100 -show_entries stream=r_frame_rate,avg_frame_rate -select_streams v -of compact=p=0 -v 0? 02.07.2018
  • @Gyan Это дает r_frame_rate=60000/1001|avg_frame_rate=30000/1001. Я считаю, что команда, которую вы дали ранее, показывает, что она прогрессивная, а не чересстрочная. 02.07.2018
  • Ваш ввод будет иметь несколько кадров продолжительностью 1001/60000 с и, следовательно, r_frame_rate, который ffmpeg использует для установки скорости вывода. Ручное переопределение — ваш обходной путь. 02.07.2018
  • @Gyan Почему r_frame_rate на DVD установлено на 60000/1001, когда фактическая частота кадров 29.97? Каков наилучший способ переопределить его вручную? 02.07.2018
  • ffmpeg устанавливает r_frame_rate в значение, обратное кадру с наименьшей продолжительностью, которую он находит во время проверки потока. Рекомендуется ввод -framerate . 02.07.2018
  • @Gyan Я удалил mpdecimate и добавил -framerate 30000/1001 перед вводом -i. Кажется, проблема устранена, предупреждение о дублирующихся кадрах отсутствует, а mp4 - это 29.97 fps. Это правильный способ сделать это? 02.07.2018
  • Для ввода m2v да. 02.07.2018
  • @Gyan У меня есть еще один вопрос о параметрах частоты кадров FFmpeg, если вы хотите взглянуть. stackoverflow.com/q/51143100/6806643 03.07.2018

Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..