Nginx ffmpeg lit le RTSP de la caméra et le convertit en flux HLS et prend des captures d'écran régulières pour une couverture dynamique

1. Tirez une image de menu fixe FFmpeg.

docker pull jrottenberg/ffmpeg

2. Créez un script de démarrage start-ffmpeg-all.sh, car j'ai plusieurs caméras, donc je dois démarrer plusieurs conteneurs.

#! /bin/bash

for((i=2;$i<=31;i++))
do
        if (( ($i >= 9 && $i <= 12) || $i == 22 ))
           then
                echo "192.168.0.$i is not camera IP"
           else
                docker stop ffmpeg$i && docker rm ffmpeg$i
                docker run -d --privileged=true -v /root/preview:/tmp/workdir --restart=always --name="ffmpeg$i" jrottenberg/ffmpeg -stats -i "rtsp://admin:[email protected].$i:554/h264/ch1/sub/av_stream" -vcodec libx264 -an -f flv rtmp://{ip}:12005/hls/movie$i   -f image2 -y -update 1 -r 0.0001 preview$i.jpg
        fi
done

主要 命令 是 : ffmpeg -i "rtsp: // admin: [email protected].$i: 554 / h264 / ch1 / sub / av_stream" -vcodec libx264 -an -f flv rtmp: // {ip}: 12005 / hls / movie $ i -f image2 -y -update 1 -r 0.2 aperçu $ i.jpg

Expliquez ces paramètres:

-i flux d'entrée, adresse de flux de caméra

-vcodec spécifie le codec vidéo

-an n'obtient pas de son, économise les ressources du processeur

-f format de sortie, faites attention aux deux ci-dessus, un push flv, une capture d'écran image2

-y Écraser les images portant le même nom

-mise à jour mise à jour

-r La fréquence des captures d'écran chronométrées, quelques captures d'écran en 1 seconde, 0,2 signifie une capture d'écran en 5 secondes

 

3. Tirez une image nginx

docker pull nginx

4. Créez le script de démarrage start-nginx.sh

#!/bin/bash
docker stop nginx && docker rm nginx

sleep 3s

docker run --privileged=true -v /root/preview:/usr/share/nginx/html --restart=always -d -p 8010:80 -p 443:443 --name nginx   nginx
~                                                                                                                                    

5. Notez que le répertoire monté / root / preview est le répertoire dans lequel les captures d'écran du conteneur ffmpeg sont enregistrées, donc ça va.

 

Je suppose que tu aimes

Origine blog.csdn.net/qq_36961530/article/details/112858865
conseillé
Classement