2016-10-27 9 views
0

ノードのm2tsファイルから元の名前と日付を抽出します。 "packet"というパッケージを使っていくつかのデッドコード(m2ts-parser)が見つかりました。私は本当に理解するのは初心者ですが。しかし、私はm2ts(mpeg2-ts)ファイルから元の名前と日付を抽出します。

だから誰がどのように元のファイル名とノードでm2tsファイル(の元の作成日を抽出するために私に言うことができる:-)学びたいが、任意の擬似コードは行います

おかげ

:-)

更新

私が見つかりました - @aergistal部分的な解決の回答に基づいて。 m2tsファイルからDate/Timeオリジナルを抽出できます。キヤノンとパナソニックのファイルでのみテストされています。

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コンテナにこのような情報はありません。

この種類のメタデータはエレメンタリーストリームの1つに含まれていることがあります。その場合、ストリームの種類ごとにその場所が異なります。物事を悪化させるために、同じタイプであっても共通の基準はありません。例えば

あなたm2tsファイルが提供されている場合H.264ビデオストリームなどのメタデータ付加拡張情報SEI)内見つけることがありますが含まれている場合。この構造は、H.264標準に記述されている。

データがどこにあるか分かったら、それがどのフォーマットを使用しているかを知る必要があります。一例は修正されたデジタルビデオパックメタデータMDPM)であり、exiftoolおよびかもしれないにはDateTimeOriginalタグが含まれています。 Example

もちろん、メタデータが存在しないか、補助ファイルに格納されている可能性があります。

関連する問題