Непонятная проблема - фильтр десинхронизации сегментированного фильтра FFmpeg - PullRequest
0 голосов
/ 10 мая 2018

Мне нужно сегментировать большой (72 ГБ) видео файл Prores и объединить сегменты, чтобы получить файл, идентичный оригиналу.

./ffmpeg -i video.mov -codec copy -f segment -segment_time 300 -segment_list list.ffcat -reset_timestamps 1 -v error chunk_%d.mov

К сожалению, сегменты, возникающие при выполнении этой команды, не синхронизируются после нескольких секунд воспроизведения с помощью Quicktime Player. Интересно, что при поиске, перемотке назад или быстрой перемотке видео выполняется корректная синхронизация по крайней мере несколько секунд.

При написании нового сегмента появляется следующее предупреждение:

[segment @ 0x7f87ae001200] Opening 'chunk_0.mov' for writing
[mov @ 0x7f87ad807200] Valid timecode frame rate must be specified. Minimum value is 1

Тем не менее, установка частоты кадров с помощью -r 24 не помогает.

Некоторые потенциально важные метаданные:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'A004_04121423_C001.mov':
  Duration: 00:13:31.25, start: 0.000000, bitrate: 710117 kb/s
    Stream #0:0(eng): Video: prores (apch / 0x68637061), yuv422p10le(bt709, progressive), 3840x2160, 707415 kb/s, SAR 1:1 DAR 16:9, 24 fps, 24 tbr, 24 tbn, 24 tbc (default)
    Metadata:
      creation_time   : 2018-04-12T20:23:16.000000Z
      handler_name    : ?Apple Alias Data Handler
      timecode        : 14:23:16:02
    Stream #0:1(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, stereo, s32 (24 bit), 2304 kb/s (default)
    Metadata:
      creation_time   : 2018-04-12T20:23:16.000000Z
      handler_name    : ?Apple Alias Data Handler
      timecode        : 14:23:16:02
    Stream #0:2(eng): Data: none (tmcd / 0x64636D74) (default)
    Metadata:
      creation_time   : 2018-04-12T20:23:16.000000Z
      handler_name    : ?Apple Alias Data Handler
      timecode        : 14:23:16:02

Output #0, segment, to 'chunk_%d.mov':
    Stream #0:0(eng): Video: prores (apch / 0x68637061), yuv422p10le(bt709, progressive), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 707415 kb/s, 24 fps, 24 tbr, 12288 tbn, 24 tbc (default)
    Metadata:
      creation_time   : 2018-04-12T20:23:16.000000Z
      handler_name    : ?Apple Alias Data Handler
      timecode        : 14:23:16:02
    Stream #0:1(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz, stereo, s32 (24 bit), 2304 kb/s (default)
    Metadata:
      creation_time   : 2018-04-12T20:23:16.000000Z
      handler_name    : ?Apple Alias Data Handler
      timecode        : 14:23:16:02
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)

Я на OS X.

Большое спасибо за ваше время и помощь по этому вопросу! Я, конечно, надеюсь, что я не пропустил что-то очевидное:)


ОБНОВЛЕНИЕ (10 мая): Сравнивая исходный видеофайл с сегментами, я обнаружил некоторые интересные отличия. Adobe Premiere сообщает, что у оригинального видео есть следующие свойства:

QuickTime Details:
Movie contains 1 video track(s), 1 audio track(s), 0 closed caption track(s), **and 1 timecode track(s).**

Video:
There are 19470 frames with a **duration of 1/24th.**

Video track 1:
Duration is **0:13:31:06**

Video data block #1:
Frame Size = 3840 x 2160
Compressor = 
**Quality = Most (-2623.00)
Temporal = Most (1.00)**

Timecode data block #1:
Start Time = 14:23:16:02
Reel name = 

С другой стороны, при просмотре видео, полученного в результате сшивания сегментов, мы обнаруживаем следующее:

QuickTime Details:
Movie contains 1 video track(s), 1 audio track(s), 0 closed caption track(s), **and 0 timecode track(s).**

Video:
There are 19470 frames with a **duration of 41/1000ths.**

Video track 1:
Duration is **0:01:06:00**

Video data block #1:
Frame Size = 3840 x 2160
Compressor = 
**Quality = Normal (3.00)
Temporal = Normal (3.00)**

1 Ответ

0 голосов
/ 14 мая 2018

Хотя мне бы хотелось найти решение с использованием только FFmpeg, я обнаружил, что использование функции «Сшивание клипов вместе» в Adobe Media Encoder дает мне вывод, который работает без каких-либо явных сбоев.

Если бы я собирался решить это с помощью FFmpeg, я бы попытался выяснить, почему он меняет длительность кадра с 1/24 на 41/1000. Вывод Media Encoder сохраняет длительность кадра 1/24 и не имеет заметных проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...