2016-07-25 3 views
11

У меня есть проект, который должен будет знать время, когда был запущен видеофайл (например, .mp4, .mov, .mxf и т. Д.), Например, когда была нажата запись, и когда видеофайл был завершен за считанные секунды с эпохи ,Как определить время начала и время окончания (секунды с эпохи) видео в python?

До сих пор я занимался поиском File Modified и использовал это как конечную точку, а затем вычитал продолжительность, чтобы найти начало. В некоторых случаях это очень хорошо работает, но кажется, что некоторые камеры не точно пишут/модифицируют файлы линейным образом, поэтому иногда время начала и окончания видеофайлов перекрывается, когда вы явно не можете записывать 2 файла на в то же время.

Есть ли какой-нибудь другой метод или часть метаданных, которые я мог бы получить, используя, например, ffprobe (или альтернативу) в python, чтобы точно определить, когда видео было запущено и когда оно было закончено?

+0

В соответствии с: [Спецификация формата QuickTime] (https://developer.apple.com/library/mac/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html), похоже, что время создания файла не определено. – Rotem

+1

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

+0

В настоящее время он работает в Windows, но должен также работать на macOS. журналы системы/камеры недоступны. У нас есть только видеофайлы и любые метаданные, которые хранятся в них для работы. – abagshaw

ответ

0

Быстрый совет - использовать команду system() из python.

Вариант № 1:

$ ffmpeg -i file.flv 2>&1 | grep "Duration" 

Вариант № 2:

$ mediainfo --Inform="General;%Duration%" [inputfile] 
1

ваших лучших инструментов:

ffprobe 
mediainfo 
exiftool 

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

Попробуйте цифровой шкаф с часами или используйте цифровой диктофон, в котором вы можете управлять созданием временной метки во время записи.

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

0

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

Если вы хотите разницу в секундах с эпохи, вы можете использовать функцию time.time().

import time 

starttime = time.time() 

Вы можете связать это с OnClick событий с использованием Tkinter

0

Использование библиотеки времени должно решить вашу проблему. Попробуйте следующее:

import time 
timer = time.time() 
print(timer) 

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

import pygame, sys 
pygame.init() 
timer = pygame.time.Clock() " Call after video has begun playback " 
timer.tick() " Call onced playback has ended " 
video_time = timer.get_time() " Returns previous time amount in milleseconds. " 

 Смежные вопросы

  • Нет связанных вопросов^_^