RTSP-поток завершен с ошибкой ": тайм-аут соединения - PullRequest
1 голос
/ 30 сентября 2019

Я создаю веб-приложение в облаке AWS, которое требует потоковой передачи записанного / живого видео по глобальной сети. Я купил IP-камеру (GV-AVD4710) и NVR (GV-SNVR0811) для нашего приложения. В будущем мне нужно стрим нет. камер в моем приложении.

Пока используется камера С NVR я подключил NVR в нашей локальной сети и камеру на channel_1 NVR. Теперь давайте предположим, что NVR получает IP 192.168.1.203. Таким образом, для потокового rtsp URL для channel_1 будет "rtsp://id:password@192.168.1.203:554/ch1" согласно спецификации производителя. Для потоковой передачи камеры я использую мультимедийную среду "ffmpeg" (https://github.com/xpcrts/Steaming-IP-Camera-Nodejs). Так что работает нормально. Я проверил это и хорошо работает в локальной сети. Код, работающий на сервере

Stream = require('node-rtsp-stream')
stream = new Stream({
    name: 'name',
    streamUrl: 'rtsp://ID:PASSWORD@abcxyz.com:554/ch1',
    wsPort:3000,
    ffmpegOptions: {
        '-stats': '',
        '-r': 30
    }
})

, и код, работающий на стороне клиента, который не зависит от каких-либо подключаемых модулей

<div>
       <canvas id="chanel1" width="auto" height="auto"></canvas>
       <script type="text/javascript" src="jsmpeg.min.js"></script>
       <script type="text/javascript">
            var canvas = document.getElementById('chanel1');
            var websocket = new WebSocket("ws://34.202.222.188:3000");
            var player= new jsmpeg(websocket, {canvas:canvas, autoplay:true, loop:true})
       </script>
</div>  

Когда я сделал этот IP-адрес общедоступным, итогда начинается проблемаОн не работает и выдает ошибку:

 "[tcp @ 0x563911f0a340] Connection to tcp://192.168.1.205:554?timeout=0 failed: Connection timed out
rtsp://admin:admin@192.168.1.205: Connection timed out RTSP stream exited with error"

В камере без NVR я подключил камеру напрямую к нашей локальной сети и получил URL-адрес rtsp, например, rtsp: // id: password@192.168.1.205/СМИ / video1. То же самое происходит снова. Хорошо работает в локальной сети, но не работает, когда я делаю это доступным в общедоступной сети.

Как можно передавать видео через глобальную сеть? Можно ли реализовать эту логику, используя мультимедийную среду ffmpeg? Может ли VLC помочь в этих случаях?

Я хотел бы повторить, что в будущем их нет. камеры должны быть потоковыми.

...