Я использую ffmpeg для сегментации видеопотока, и я бы хотел, чтобы ffmpeg имена сегментным файлам созданную дату / время.

Это возможно?

Допустим, у меня есть сегменты 30- секундного видео каждый: 0000.flv , 0001.flv , 0002.flv и т.д.

Когда я делаю ffprobe из каждого сегмента видео, я "правильно" получаю 30 секунд, что приятно.

Однако у каждого файла есть "время последнего изменения"/"время создания", которое я могу прочитать, и когда я 0001.flv (время изменения) - 0000.flv (время изменения), я получаю результат в 29 секунд.

Продолжительность видео составляет 30 секунд, но время между датой создания или последнего изменения составляет 29 секунд!

Если время сегмента составляет 600 секунд, то время между датой создания или последнего изменения составляет 591 секунду! Таким образом, для файловой системы не хватает 9 секунд, но видео действительно 600 секунд.

Это огромная проблема - может кто-нибудь помочь?

Это моя командная строка:

    ffmpeg = spawn('ffmpeg', [
        '-loglevel', 'quiet',
        '-r', '20',
        '-i', 'pipe:0',
        '-vcodec', 'copy',
        '-f', 'segment',
        '-segment_time', '30',
        dataDir + '/' + '%04d.flv'
    ]);

Кроме того, когда ffmpeg записывает сегмент, файлы не имеют "времени рождения", а время "созданного" и "измененного" всегда одинаково ... поэтому я действительно никогда не узнаю, когда файл был создан, если я не использую "debugfs" (в режиме sudo) копать глубже ....

все, что я хочу, это чтобы ffmpeg поместил временную метку в имя файла при создании сегмента, почему это не считается полезным? я думаю, что это очень полезно при захвате времени из живого источника ...

и я НЕ кодирую ... перестаньте думать, что это кодировка, пожалуйста ... я знаю, что перекодирование занимает больше времени и вызывает задержки во времени ...

Из моих наблюдений, когда я делаю копию кодека, время "последнего изменения" между сегментами составляет всего 591 секунду, когда у меня продолжительность видео равна 600 секундам ... так что я фактически теряю время ...

Но я знаю, что это не надежная временная метка - поэтому я прошу способ получить более надежную временную метку из ffmpeg, кроме необходимости использовать команду "stat", которая не дает мне надежных временных меток ...

И да - моя камера производит 20 кадров в секунду :)

0