Realice el acoplamiento del protocolo RTSP de las cámaras de vigilancia en el sistema Linux a Tencent Cloud Live
Instalación 1.ffmpeg
sudo yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
yum -y install ffmpeg
Instalación y configuración 2.nginx-rtmp
Instalar componentes de nginx
yum -y install gcc openssl-devel pcre-devel zlib-devel
Descarga nginx-rtmp-module
//方式一:git命令下载
git clone https://github.com/arut/nginx-rtmp-module.git
//方式二:下载nginx-rtmp-module-1.2.0.tar.gz
//解压
tar -zxvf nginx-rtmp-module-1.2.0.tar.gz
//重命名
mv nginx-rtmp-module-1.2.0 nginx-rtmp-module
Instalar nginx
tar zxvf nginx-1.14.2.tar.gz
cd nginx-1.14.2/
Compilar e instalar
./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module
make
make install
3. Abra Tencent Cloud Live
(1) Haga clic para activar el servicio inmediatamente
(2) Haga clic en la herramienta auxiliar para seleccionar el generador de direcciones para generar la dirección de inserción
4. configuración de nginx-rtmp
(1) Cree el directorio de almacenamiento de archivos local nginx
mkdir -p /mnt/share/html/hls
(2) configuración rtmp
vim /usr/local/nginx/conf/nginx.conf
#文件末尾追加
rtmp {
server {
listen 1935; #监听的端口
chunk_size 4000;
# rtmp推流请求路径
application hls {
live on;
hls on;
# 本地保存hlv格式文件
hls_path /mnt/share/html/hls;
hls_fragment 10s;
# 转推[腾讯云](https://l.gushuji.site/tencent)
push rtmp://106630.livepush.myqcloud.com/live/rtsptest?txSecret=b8d28c20ab68f2467727b837eefcb4a2&txTime=5F140099;
}
}
}
(3) Compruebe si la configuración es correcta
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
(4) Iniciar nginx
/usr/local/nginx/sbin/nginx
5. ffmpeg extrae la transmisión de video de la cámara
ffmpeg -rtsp_transport tcp -i "rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0" -vcodec copy -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 4000x3000 -q 10 -f flv "rtmp://127.0.0.1:1935/hls"
Nota: Si a la izquierda -rtsp_transport
puede reportar Could not find codec parameters for stream 0 (Video: h264, none)
un error, ffmpeg usando el modo de transmisión udp por defecto, use: avformat_find_stream_info situación devolverá codec_id == AV_CODEC_ID_NONE aparecerá;
Si id = none, definitivamente se informará un error al abrir el decodificador, por lo que es necesario juzgar la validez de la información del video al ejecutar avformat_find_stream_info.
Antes de que avformat_open_input abra la dirección de flujo, forzar a ffmpeg a transmitir por tcp puede resolver el retorno anterior de none.
6. Detección
(1) Compruebe si ffmpeg extrae la transmisión de la cámara a nginx-rtmp; si tiene éxito, puede ver:
[aac @ 0x12fb900] Queue input is backward in time0:01:59.57 bitrate=4261.0kbits/s speed=0.934x
[flv @ 0x12e37a0] Non-monotonous DTS in output stream 0:1; previous: 119622, current: 119605; changing to 119622. This may result in incorrect timestamps in the output file.
[aac @ 0x12fb900] Queue input is backward in time0:02:14.50 bitrate=4266.0kbits/s speed=0.933x
[flv @ 0x12e37a0] Non-monotonous DTS in output stream 0:1; previous: 134622, current: 134605; changing to 134622. This may result in incorrect timestamps in the output file.
[aac @ 0x12fb900] Queue input is backward in time0:02:29.15 bitrate=4263.7kbits/s speed=0.932x
[flv @ 0x12e37a0] Non-monotonous DTS in output stream 0:1; previous: 149621, current: 149606; changing to 149621. This may result in incorrect timestamps in the output file.
[aac @ 0x12fb900] Queue input is backward in time0:02:44.50 bitrate=4267.9kbits/s speed=0.931x
[flv @ 0x12e37a0] Non-monotonous DTS in output stream 0:1; previous: 164621, current: 164606; changing to 164621. This may result in incorrect timestamps in the output file.
[flv @ 0x12e37a0] Failed to update header with correct duration.ate=4267.0kbits/s speed=0.93x
[flv @ 0x12e37a0] Failed to update header with correct filesize.
frame= 4333 fps= 23 q=-1.0 Lsize= 90306kB time=00:02:53.47 bitrate=4264.6kbits/s speed=0.931x
video:86498kB audio:3599kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.231989%
[aac @ 0x12fb900] Qavg: 1180.000
Exiting normally, received signal 2.
[root@localhost hls]# ll
总用量 54324
-rw-r--r--. 1 nobody nobody 5484336 7月 16 07:03 live-10.ts
-rw-r--r--. 1 nobody nobody 6584324 7月 16 07:03 live-11.ts
-rw-r--r--. 1 nobody nobody 5495052 7月 16 07:03 live-12.ts
-rw-r--r--. 1 nobody nobody 5491292 7月 16 07:04 live-13.ts
-rw-r--r--. 1 nobody nobody 5482456 7月 16 07:04 live-14.ts
-rw-r--r--. 1 nobody nobody 5491104 7月 16 07:04 live-15.ts
-rw-r--r--. 1 nobody nobody 4022072 7月 16 07:04 live-16.ts
-rw-r--r--. 1 nobody nobody 5485652 7月 16 07:02 live-7.ts
-rw-r--r--. 1 nobody nobody 5487720 7月 16 07:03 live-8.ts
-rw-r--r--. 1 nobody nobody 6585452 7月 16 07:03 live-9.ts
-rw-r--r--. 1 nobody nobody 155 7月 16 07:04 live.m3u8
(2) Compruebe si desea enviar a Tencent Cloud
Si la inserción es exitosa, puede ver las palabras en la transmisión en vivo en el estado de la interfaz de administración de transmisión.
Haga clic en la prueba en funcionamiento para ver el video en vivo de la cámara de la siguiente manera: