arib-subtitle-timedmetadater
Version:
ARIB subtitle copy as id3 timed-metadata
63 lines (62 loc) • 2.58 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
var _a, _b, _c;
Object.defineProperty(exports, "__esModule", { value: true });
var fs_1 = __importDefault(require("fs"));
var dgram_1 = __importDefault(require("dgram"));
var net_1 = __importDefault(require("net"));
var http_1 = __importDefault(require("http"));
var https_1 = __importDefault(require("https"));
var stream_1 = require("stream");
var index_1 = __importDefault(require("./index"));
var commander_1 = require("commander");
var program = new commander_1.Command();
program
.option('-i, --input <path>', 'input mpeg2ts path')
.option('-t, --tcp_port <port>', 'input tcp port')
.option('-u, --udp_port <port>', 'input udp port')
.option('-h, --host <address>', 'bind host address for udp/tcp')
.option('--http <url>', 'input url for http GET request')
.option('--https <url>', 'input url for https GET request')
.option('-b, --recv_buffer_size <size>', 'input udp recvBufferSize')
.option('-o, --output <path>', 'output mpeg2ts path');
program.parse(process.argv);
var options = program.opts();
// ffmpeg が UDP 受けで descriptor を保持するようになったらUDP対応を外す (これは ffmpeg 4.5 で確定なはず)
var src = new stream_1.PassThrough();
var dst = options.output == null || options.output === '-' ? process.stdout : fs_1.default.createWriteStream(options.output);
src
.pipe(new index_1.default())
.pipe(dst);
if (options.https) {
https_1.default.get(options.https, (function (res) { res.pipe(src); }));
}
else if (options.http) {
http_1.default.get(options.http, (function (res) { res.pipe(src); }));
}
else if (options.tcp_port) {
var server = net_1.default.createServer(function (socket) {
socket.pipe(src);
});
server.listen({
port: options.tcp_port,
host: (_a = options.host) !== null && _a !== void 0 ? _a : 'localhost'
});
}
else if (options.udp_port) {
var server = dgram_1.default.createSocket({
type: 'udp4',
recvBufferSize: (_b = options.recv_buffer_size) !== null && _b !== void 0 ? _b : 1000000,
});
server.on('message', function (msg) {
src.write(msg);
});
server.bind(options.udp_port, (_c = options.host) !== null && _c !== void 0 ? _c : 'localhost');
}
else {
var stream = options.input == null || options.input === '-' ? process.stdin : fs_1.default.createReadStream(options.input);
stream.pipe(src);
}