node-aribtsのご紹介

この記事は DTV Advent Calendar 2015 8日目の記事です。

突然ですが、nodeでMPEG-2 TSを扱えるモジュールを公開しました。
その名も、node-aribts です。

作ったわけ

MPEG-2 TSから情報を取得したい!nodeで!
軽いものならnodeだけで全部処理できればいいなぁと。
ARIBの資料とEDCBとariblibのソースコードを読んで書きました。
先人たちは偉大。

node-aribtsで出来ること

主に、SIを解析できます。

const fs = require("fs");
const util = require("util");
const aribts = require("aribts");
const TsStream = aribts.TsStream;

const readStream = fs.createReadStream(process.argv[2]);
const tsStream = new TsStream();
readStream.pipe(tsStream);

tsStream.on("data", data => {
    // パケット化されたbufferが出力される
});

tsStream.on("info", data => {
    // 終わったらpidごとのパケット数、ドロップ数、スクランブル数が出力される
    console.log("info", data);
});

tsStream.on("pat", (pid, data) => {
    // PATが流れてくるたびに出力される
    console.log(pid: ${pid});
    console.log(data: ${util.inspect(data, {depth: null})});
});

ね、簡単でしょ?

楽しい

bufferの数字の羅列がちゃんと人間に読めるものになると感慨深い物がありますね。
特に文字のデコードができた時はホントに嬉しかった。

明日はsudosanです。みんないろんなこと書いてて楽しい。

コメントを残す