Я использую 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
?
Должен ли я удалять повторяющиеся кадры и не повреждает ли это видео?