2016-10-27 13 views
0

Я хочу извлечь исходное имя и дату из файлов m2ts в узле. Я нашел какой-то мертвый код (m2ts-parser), используя пакет «пакет». Хотя я слишком послушник, чтобы действительно понять. Но я хочу узнать :-)Извлечь оригинальное имя и дату из файлов m2ts (mpeg2-ts)

Так может кто-нибудь сказать мне, как извлечь оригинальное имя файла и первоначальную дату создания файла m2ts (в узле, но любой код псевдо будет делать :-)

Благодарности

обновление

я нашел - на основе ответа @aergistal частичного решения. Я могу извлечь оригинал даты/времени из файла m2ts. Протестировано только в файле Canon и Panasonic:

var fs = require('fs'); 


fs.open('C:/temp/28685338476.mts', 'r', function (status, fd) { 
    if (status) { 
     console.log(status.message); 
     return; 
    } 
    var chunk = new Buffer(10000); 
    var syncFound = false; 
    var i, l; 
    fs.read(fd, chunk, 0, 10000, 0, function (err, num) { 

     for (i = 0, l = chunk.length; i < l; i++) { 

      if (chunk[i] === 0x47) { 
       syncFound = true; 
      } 

      if (syncFound) { 
       if (chunk[i] === 0x66 && chunk[i + 1] === 0x4D && chunk[i + 2] === 0x44 && chunk[i + 3] === 0x50 && chunk[i + 4] === 0x4D) { 
        console.log("GOT 'MDPM' at byte ", i); 
        var yy = chunk[i + 8].toString(16) + chunk[i + 9].toString(16); 
        var MM = chunk[i + 10].toString(16); 
        var dd = chunk[i + 12].toString(16); 
        var hh = chunk[i + 13].toString(16); 
        var mm = chunk[i + 14].toString(16); 
        var ss = chunk[i + 15].toString(16); 
        var timeStamp = yy + "/" + MM + "/" + dd + " " + hh + ":" + mm + ":" + ss; 
        console.log("TimeStamp: "+ timeStamp); 
        return timeStamp; 
       } 

      } 


     } 
    }); 
}); 

ответ

2

В контейнере MPEG-TS такой информации нет.

Этот вид метаданных может включать в один из элементарных потоков, и в этом случае его местоположение будет отличаться для каждого типа потока. Чтобы ухудшить ситуацию, нет единого стандарта даже для того же типа.

Например, если ваш файл m2ts содержит H.264 видеопотока такие метаданные может быть найдены в дополнительной информации расширения (SEI), если это предусмотрено. Структура описана в стандарте H.264.

Как только вы узнаете, где находятся данные, вам нужно будет выяснить, какой формат он использует. Одним из примеров является Метаданные модифицированного цифрового видеопакета (MDPM), которые поддерживаются exiftool и могут содержат метку DateTimeOriginal. Example.

Конечно, метаданные могут вообще отсутствовать или сохраняться во вспомогательном файле.

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

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