Quicktime .mov - Вкажіть часовий графік заголовка фільму 24000


1

Коли я запускаю Mov-файли Quicktime 24 кадрів в секунду через перекоду FFmpeg, вони виходять із часовим шкалом заголовка фільму 1000, коли вихідний файл має часовий масштаб 24000. Це низьке значення шкали часу викликає проблеми в деяких професійних програмних засобах при пошуку файлу. .

У моєму випадку вихідним файлом є Quicktime з 1-х відеодоріжкою (DNx115) та 1-х доріжкою даних (Timecode). Я перекодую це до DNx36.

Я можу примусити масштаб відеороликів до 24000, додавши "-video_track_timescale 24000", але це не впливає ні на що, окрім відеодоріжки.

Команда така:

ffmpeg -i input.mov -c:v dnxhd -b:v 36M -pix_fmt yuv422p -video_track_timescale 24000 output.mov

Нерозрізаний вихід консолі:

    ffmpeg version N-90214-gdd3f1e3a11-tessus Copyright (c) 2000-2018 the FFmpeg developers
      built with Apple LLVM version 9.0.0 (clang-900.0.39.2)
      configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
      libavutil      56.  8.100 / 56.  8.100
      libavcodec     58. 13.102 / 58. 13.102
      libavformat    58. 10.100 / 58. 10.100
      libavdevice    58.  2.100 / 58.  2.100
      libavfilter     7. 12.100 /  7. 12.100
      libswscale      5.  0.102 /  5.  0.102
      libswresample   3.  0.101 /  3.  0.101
      libpostproc    55.  0.100 / 55.  0.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mov':
      Metadata:
        major_brand     : qt  
        minor_version   : 537199360
        compatible_brands: qt  
        creation_time   : 2018-03-06T10:45:16.000000Z
        timecode        : 01:14:25:22
      Duration: 00:00:30.00, start: 0.000000, bitrate: 116392 kb/s
        Stream #0:0(eng): Video: dnxhd (DNXHD) (AVdn / 0x6E645641), yuv422p(tv, bt709), 1920x1080, 116391 kb/s, SAR 1:1 DAR 16:9, 24 fps, 24 tbr, 24k tbn, 24k tbc (default)
        Metadata:
          creation_time   : 2018-03-06T10:45:16.000000Z
          handler_name    : Apple Alias Data Handler
          encoder         : Avid DNxHD Codec
        Stream #0:1(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
        Metadata:
          creation_time   : 2018-03-06T10:45:20.000000Z
          handler_name    : Apple Alias Data Handler
          timecode        : 01:14:25:22
    Stream mapping:
      Stream #0:0 -> #0:0 (dnxhd (native) -> dnxhd (native))
    Press [q] to stop, [?] for help
    Output #0, mov, to 'output.mov':
      Metadata:
        major_brand     : qt  
        minor_version   : 537199360
        compatible_brands: qt  
        timecode        : 01:14:25:22
        encoder         : Lavf58.10.100
        Stream #0:0(eng): Video: dnxhd (DNXHD) (AVdn / 0x6E645641), yuv422p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-1024, 36000 kb/s, 0.04 fps, 24k tbn, 24 tbc (default)
        Metadata:
          creation_time   : 2018-03-06T10:45:16.000000Z
          handler_name    : Apple Alias Data Handler
          encoder         : Lavc58.13.102 dnxhd
    frame=  720 fps=151 q=4.0 Lsize=  132482kB time=00:00:29.95 bitrate=36226.7kbits/s speed=6.28x

Я перевірив значення часового масштабу в Atom Inspector і чітко бачу, що mvhd (заголовок фільму) змінено на 1000 у output.mov, коли для входу.mov було встановлено 24000.

1000 не ділиться чисто на 24, тому призводить до неточного пошуку.

Використовуючи Atom Inspector для вручну змінити цей часовий масштаб заголовка на 24000 та змінити тривалість полів на те, на чому вони повинні базуватися на цьому часовому шкалі, файл працює як очікувалося.

Чи варто встановити значення часового масштабу заголовка фільму як опцію у FFmpeg?


Я створив ffmpeg з останнього git і змінив MOV_TIMESCALE на 600 (що фактично є типовою специфікацією Quicktime) і знову перевірив свій робочий процес. Це вирішило проблему, тому здається, що значення 1000, яке задано проекту ffmpeg, є проблемою.
mwjb

Варто опублікувати це як відповідь, і ви можете згадати, що патч також був поданий!
bertieb

Уперше я представив патч FFmpeg, і його велика ймовірність, що моє нове подання буде відхилено за те, що воно не було представлено правильним способом, як перше, якщо його успіх я обов'язково оновлю тут напевно.
mwjb

Відповіді:


0

Відповідно до значення MOV_TIMESCALE у libavformat / movenc.h, це важко встановлено у 1000. Не впевнений, чому це було обрано як його дійсно не добре / корисне значення.

Я подав виправлення, щоб це змінилося на 600.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.