UNPKG

arib-subtitle-timedmetadater

Version:
63 lines (62 loc) 2.58 kB
#!/usr/bin/env node "use strict"; 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); }