Как я могу получить исходную метку времени захвата из файлов моего домашнего фильма: AVI и MPG4? - PullRequest
7 голосов
/ 17 октября 2008

У меня есть более чем ТБ домашних фильмов с ужасными именами файлов. Найти то, что вы хотите, невозможно. Я хотел бы переименовать все файлы в то время, когда они были изначально записаны (а не в то время, когда они были размещены на моем компьютере). Некоторые приложения (например, Ulead Video Studio) могут получить доступ к этой информации, которая, как мне кажется, встроена в кодек.

Я ЛЮБЛЮ, чтобы узнать, как я могу написать приложение .Net для извлечения этой информации, чтобы переименовать мои файлы, чтобы я мог легко организовать их ИЛИ найти приложение, которое сделает это для меня. Большое спасибо в продвинутом.

дополнительная информация: домашние фильмы снимались на видеокамерах miniDV и DVD.

Ответы [ 5 ]

7 голосов
/ 19 мая 2011

Вот хакерская инструкция, основанная на mplayer, которая работает по крайней мере для файлов MOV, созданных моей камерой:

mplayer -vo null -ao null -frames 0 -identify myfile.MOV 2>/dev/null|grep creation_time:

Я использую его для пакетного переименования:

for m in MVI*.MOV; do
    t=$(mplayer -vo null -ao null -frames 0 -identify $m 2>/dev/null|grep creation_time:|sed 's/.*creation_time: *//;s/[-:]//g;s/ /-/')
    mv ${m} ${t}_${m}
done
1 голос
/ 18 апреля 2016

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

http://www.sno.phy.queensu.ca/~phil/exiftool/#supported

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

1 голос
/ 29 мая 2013

Я не могу говорить о DVD, но кодек Digital Video (DV) действительно сохраняет время и дату (как установлено в камере) для каждого отдельного кадра!

Для Linux такие программы, как dvgrab, обрабатывают эти временные метки, для Windows я считаю, что инструмент с именем dvdate.exe делает.

DV-видео можно хранить в контейнерах AVI (.avi), raw (.dv или .dif) и QuickTime (.mov). Но не все AVI являются DV. 60 минут видео DV составляет около 13 ГБ. - Если ваши файлы меньше, они, вероятно, уже преобразованы в другие кодеки, и временные метки теряются.

1 голос
/ 18 октября 2008

С большой вероятностью вам не повезет, если в первоначальном снимке не использовались абсолютные метки времени. По моему опыту, большинство приложений захвата используют время 0 для первого кадра, а не универсальное время. Чтобы проверить это, получите GraphStudio , загрузите файл в нем, затем посмотрите на время начала в свойствах для первого выходного вывода.

Вы можете использовать GSpot , чтобы увидеть, присутствуют ли в файлах метаданные, которые вы ищете. Для ваших файлов AVI вы также можете посмотреть функции RIFF VirtualDub в его шестнадцатеричном редакторе. Если ваше приложение для захвата не понравилось вам, эти данные, вероятно, никогда не записывались.

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

Для моих видео я взял захват метаданных во время захвата, сохранение их в файле XML и наличие в моих приложениях транскодирования / постобработки сохраненной последней измененной временной метки в качестве исходной временной метки.

1 голос
/ 17 октября 2008

Вот фрагмент кода, который я нашел некоторое время назад, который должен помочь вам начать.

http://www.developerfusion.com/code/3435/a-convenient-wrapper-class-to-get-file-info/

...