Воспроизведение видео на nodejs с использованием аутентификации basi c - PullRequest
0 голосов
/ 28 января 2020

Привет! Я пытаюсь создать сервер в nodejs, который прослушивает запрос на публикацию тега nf c и затем отправляет значение nf c на другой сервер отдыха.

I я ищу способ воспроизведения видео в реальном времени по URL на моем Raspberry Pi, на котором расположен сервер nodejs.

Я использовал библиотеку omxplayer и все работало правильно, когда я сделал запрос к другим тестовым серверам, но это защищено базовой аутентификацией c.

Знаете ли вы проигрыватель для nodejs или другой способ, позволяющий воспроизводить видеопоток с остального сервера с помощью Basi c встроенная аутентификация?

Вот мой текущий код:

var http = require('http');
var url = require('url');
var Omx = require('node-omxplayer');
var querystring = require('querystring');
var player = Omx();
const NodeMediaServer = require('node-media-server');
http.createServer(function (req, res) {
  if (req.method === 'POST' && req.headers.host === '192.168.42.1') {
    let body = '';
    req.on('data', chunk => {
        body += chunk.toString(); // convert Buffer to string
    });
    //Get tag id on end of post
    req.on('end', () => {
        body= querystring.parse(body);
        res.end('ok');
        console.log('ID TAG => ' + body.UID);

        //basic authentication
        var options = {
                'method': 'GET',
                'hostname': '---host---',
                'path': '---path---',
                'headers': {
                        'Authorization': 'Basic ---key---'
                },
                'maxRedirects': 20
        };
        var video;
        var req = http.request(options, function (res) {
                        var chunks = [];

                        res.on("data", function (chunk) {
                                chunks.push(chunk);
                        });

                        res.on("end", function (chunk) {
                        var body = Buffer.concat(chunks);
                                video=body.toString();
                        });

                        res.on("error", function (error) {
                                console.error(error);
                        });
        });
        req.end();
        player.newSource(video, 'local', true);
     });
   }
res.end("OK");
}).listen(4000);
...