FFmpeg выдает ошибку длительности, метки времени, pts

#python #macos #ffmpeg

Вопрос:

Я использовал команду ffmpeg, вызванную из скрипта python, для перекодирования папок с файлами:

 ffmpeg -y -i in_file.mov -loglevel warning -codec:v libx264 -preset veryfast -b:v 10000k -minrate 8000k -maxrate 10000k -bufsize 4800k -threads 0 -movflags  faststart -s 1920x1080 -pix_fmt yuv420p -codec:a aac out_file.mov
 

Это работало нормально, но на некоторых новых компьютерах Mac я начал получать следующую ошибку:

 [mov @ 0x7fa92e010c00] Application provided duration: -9223372036854775808 / timestamp: -9223372036854775808 is out of range for mov/mp4 format
[mov @ 0x7fa92e010c00] pts has no value
 

Похоже, это никак не влияет на файл, но я хотел бы знать, что его вызывает и может ли это вызвать ошибки позже.

Системные спецификации без ошибок:

  • iMac Pro, macOS 10.15.7, Python 3.7.9, FFmpeg 4.3.2

Системные характеристики с ошибками

  • MacBook Pro 2019 15″, macOS 10.15.7, Python 3.7.0, FFmpeg 4.4

Я предполагаю, что моя проблема вызвана более новой версией FFmpeg, но я все еще не уверен в том, что ее вызывает.

Комментарии:

1.trac.ffmpeg.org/ticket/9328 amp; trac.ffmpeg.org/ticket/9402

2. @RichardBarber итак, это известная ошибка в версии 4.4?

3. Это может быть связано с тем, что ваша ошибка указывает на наличие дорожки с временным кодом. Эти ошибки были зарегистрированы в версии 4.4, но на самом деле их необходимо проверить на соответствие сборке из главной главы git, которая уже значительно опередила выпуск.

4. Я скомпилировал версию из git, и она выдает точно такие же предупреждения.

5. В этом случае я настоятельно призываю вас внести изменения в оба существующих билета.

Ответ №1:

Я подтверждаю, что такое поведение началось с версии 4.4 (которую я вчера создал самостоятельно локально из источников). Предыдущие версии были 4.2.* и 4.3.*, и они не проводили эту диагностику. Поэтому я предполагаю, что этот вопрос следует адресовать команде разработчиков ffmpeg, в последнее время что-то изменилось.

Комментарии:

1. На самом деле я запустил тикет на трекере ошибок ffmpeg, и мне сказали «да, мы можем воспроизвести это» без какой-либо информации о том, почему это происходило, или если это была ошибка или функция. Они, казалось, не очень интересовались. Смотрите билет: trac.ffmpeg.org/ticket/9328