ffmpeg + nginx realiza stream de vídeo rtsp para stream de vídeo m3u8, transcodificação push stream (linux)

O FFmpeg não é apenas uma ferramenta de codificação e decodificação de áudio e vídeo, mas também um conjunto de kits de desenvolvimento de codificação de áudio e vídeo. Como um kit de desenvolvimento de codificação, ele fornece aos desenvolvedores interfaces de chamada ricas para processamento de áudio e vídeo.

O FFmpeg fornece encapsulamento e desencapsulamento de uma variedade de formatos de mídia, incluindo uma variedade de codificação de áudio e vídeo, mídia de streaming de vários protocolos, uma variedade de conversão de formato colorido, uma variedade de conversão de taxa de amostragem, uma variedade de conversão de taxa de código, etc.; A estrutura FFmpeg fornece uma variedade de módulos de plug-in, incluindo plug-ins para empacotamento e desencapsulamento, plug-ins para codificação e decodificação, etc. Ao mesmo tempo, também pode ser usado para gravar, converter áudio digital, vídeo e convertê-lo em um programa de computador de código aberto para streaming. Adote a licença LGPL ou GPL. Ele fornece uma solução completa para gravação, conversão e streaming de áudio e vídeo.

site oficial do ffmpeg

1. Baixe e instale o FFmpeg

  1. Download (versão personalizada: http://www.ffmpeg.org/releases/)

wget http://www.ffmpeg.org/releases/ffmpeg-5.1.tar.gz

  1. descomprimir

tar -zxvf ffmpeg-5.1.tar.gz

  1. Compile e instale (leva muito tempo)
    /home/ffmpeg é o diretório de instalação especificado por ele mesmo

cd ffmpeg-5.1
./configure --prefix=/home/ffmpeg
make && make install

  1. Configurar variáveis ​​de ambiente (fáceis de usar em qualquer lugar)

vi /etc/profile

Adicione a variável de ambiente no final do PATH:

export PATH=$PATH:$JAVA_HOME/bin:/home/ffmpeg/bin

fonte /ect/perfil

insira a descrição da imagem aqui

  1. Verifique a instalação correta

ffmpeg -versão
insira a descrição da imagem aqui

Dois, instale o nginx

1. Instalar dependências

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

  1. Baixe, compile e instale
# 下载  
 wget http://nginx.org/download/nginx-1.21.5.tar.gz
 
# 解压缩
tar -zxvf nginx-1.21.5.tar.gz
cd nginx-1.21.5/
 
# 执行配置并加载ssl模块
./configure --prefix=/usr/local/nginx --with-http_ssl_module
 
# 编译安装(默认安装在/usr/local/nginx)
make
make install
  1. comece
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
 
 
# 进入:/usr/local/nginx/sbin
1 启动 ./nginx  
2 停止 ./nginx -s stop
3 重启 ./nginx -s reload

4. Configure o nginx (lembre-se de abrir o número da porta no servidor de rede externo e reinicie o nginx e o firewall)

   	server {
    
    
		listen       82;
        location / {
    
    
            types{
    
    
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }

            root /home/ffmpeg/video/; #root后的路径改为转码后的视频文件夹路径
            add_header Cache-Control no-cache;
            add_header Access-Control-Allow-Origin *;
        }
	}

3. Inicie a transcodificação

nohup ffmpeg -i substituído por endereço de fluxo rtsp -c copy -y /home/ffmpeg/video/AK_PHAROS1_000003/1ZNBJ4800C006B/video.m3u8 2>/dev/null 2>&1 &

Observação:
o primeiro lugar em negrito foi alterado para seu endereço RTSP para garantir a reprodução normal (você pode usar a ferramenta vlc para testar) o
segundo lugar é o caminho do local onde o fluxo de vídeo é armazenado após a transcodificação
PS: Este comando é executado em segundo plano, se você quiser colocar em primeiro plano, execute para remover o nohup no início e 2>/dev/null no final 2>&1 &

insira a descrição da imagem aqui
insira a descrição da imagem aqui

O vídeo após a transcodificação bem-sucedida é acessado por meio do nginx, e o endereço de reprodução do resultado após a execução do método acima é:

http://endereço IP:82/AK_PHAROS1_000003/1ZNBJ4800C006B/video.m3u8

Teste no VLC:
insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/qq_35222232/article/details/132044524
Recomendado
Clasificación