Замедление видео с частотой 960 к / с с помощью ffmpeg (setpts не работает)

Я пытаюсь замедлить видео, записанное на телефоне Android в 960fps, Я нашел много предыдущих постов и блогов, которые в основном говорят одно и то же, что вам нужно изменить "метку времени презентации" (оч). Я также нашел официальную документацию, которая говорит то же самое. Командная строка в основном выглядит так:

ffmpeg -i input.mp4 -filter:v "setpts=4*PTS" -r 30 -y output.mp4

Я скопировал видеофайл с помощью Android Filter Transfer, и когда я использую приведенную выше командную строку, он работает, чтобы замедлить его, но в результате получается нестабильный. Выход из ffmpeg также указывает, что он дублирует кадры:

frame=  687 fps=103 q=-1.0 Lsize=    4454kB time=00:00:22.80 bitrate=1600.1kbits/s dup=515 drop=0 speed=3.42x

Бег ffprobe на файл показывает это:

ffprobe version 3.1.1 Copyright (c) 2007-2016 the FFmpeg developers
  built with Apple LLVM version 7.3.0 (clang-703.0.31)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/3.1.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-lda
  libavutil      55. 28.100 / 55. 28.100
  libavcodec     57. 48.101 / 57. 48.101
  libavformat    57. 41.100 / 57. 41.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 47.100 /  6. 47.100
  libavresample   3.  0.  0 /  3.  0.  0
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'VID_20161030_213810.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2016-10-30 16:08:14
    location        : +17.3874+078.3395/
    location-eng    : +17.3874+078.3395/
    com.android.version: 6.0.1
    com.android.capture.fps: 120.000000
  Duration: 00:00:05.73, start: 0.000000, bitrate: 14991 kb/s
    Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p, 1280x720, 13859 kb/s, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      creation_time   : 2016-10-30 16:08:14
      handler_name    : VideoHandle

Это, кажется, обнаруживает, что видео 30 fps вместо 960 fpsВероятно, поэтому он заполняется дублирующими кадрами, а не использует существующие кадры.

Я записываю видео на Lenovo Z2 Plus (AKA Zuk Z2). Если я воспроизводлю видео с помощью встроенного плеера на низкой скорости, оно выглядит очень плавным, поэтому кадры определенно присутствуют. Может ли кто-нибудь помочь мне понять правильный путь? Файл доступен здесь (около 10 МБ), на случай, если кто-то захочет его попробовать.

Обновление: воспроизведение видео в режиме slo-mo на телефоне, записанном на другом телефоне. Обратите внимание, насколько плавными и медленными становятся искры, что невозможно, если исходное видео составляет 30 кадров в секунду.

0 ответов

Другие вопросы по тегам