Я хочу иметь возможность просматривать экран видеонаблюдения в Интернете.
Я работаю над проектом, который позволяет просматривать ip-камеру в Интернете.Затем меня попросили сделать коаксиальную камеру видимой в Интернете.Поэтому я решил использовать DVR.Сначала я подключил видеорегистратор к роутеру.Затем вход коаксиальной камеры принимается DVR, и DVR передает информацию через маршрутизатор.Благодаря этому процессу я подтвердил, что RTSP работает нормально.Но это не сработало в Интернете.
В настоящее время я использую веб-сервер nginx.и используйте ffmpeg для отправки информации rtsp в rtmp на моем веб-сервере nginx.Затем веб-сервер преобразует его в файл hls (index.m3u8).Я думаю, что во время этого процесса что-то пошло не так.
Конфигурация Nginx RTMP
# RTMP Config
rtmp {
server {
listen 1935; # Listen on standard RTMP port
chunk_size 4000;
application live{
live on;
deny play all;
push rtmp://localhost/play;
on_publish http://localhost:3001/api/on-live-auth;
on_publish_done http://localhost:3001/api/on-live-done;
}
application play {
live on;
# Turn on HLS
hls on;
hls_nested on;
hls_fragment_naming system;
hls_path /home/banana/nginx/live;
hls_fragment 3;
hls_playlist_length 60;
# disable consuming the stream from nginx as rtmp
#deny play all;
}
}
}
# End RTMP Config
Команда FFMPEG
ffmpeg -i rtsp://<cameraIp> -c:v copy -rtsp_transport tcp -preset veryfast -c:a copy -fflags +igndts+genpts -f flv rtmp://localhost/live/<cameraId>
Результаты теста
IP-камера RTSP-адрес= admin: qwerty1. @ ssnet4.iptime.org: 555 / trackID = 3
Адрес DVR RTSP = admin: hrd-442s@hwakptz.iptime.org: 4524/1
Запуститевышеуказанные rtsp-адреса в vlc player соответственно
Успех: RTSP-адрес IP-камеры, RTSP-адрес DVR
HLS-адрес IP-камеры = http://168.131.150.80:4567/live/5c28ae28c6cd0c6c329e1ebc/index.m3u8
HLS-адрес DVR = http://168.131.150.80:4567/live/5c8746c9d7d74a600edf2460/index.m3u8
Запустите указанные выше rtsp-адреса в vlc player соответственно
Sucess: адрес HLS IP-камеры
Fail: адрес HLS DVR
Это тот же результат наигрок реакции.
const streamUrl = `http://168.131.150.80:4567/live/<cameraId>/index.m3u8`;
<ReactPlayer
onClick={this._onClickFullscreen}
width={"100%"}
height={"100%"}
url={streamUrl}
playing={true}
controls={false}
muted={true}
/>
Вопрос
- Есть ли способ увидеть rtsp непосредственно в Интернете?
- В чем проблема, а в чем проблема?