ffmpeg: webcam, vídeos ou câmera RTSP em mosaico

Publicado por Fabio em 06/10/2022

[ Hits: 3.855 ]

 


ffmpeg: webcam, vídeos ou câmera RTSP em mosaico



Antes de tudo, o play de vários vídeos foi feito no Ubuntu 22.04.1 LTS.

Tem que ter o ffmpeg instalado:

sudo apt-get install ffmpeg

Estarei colocando aqui 3 exemplos de play que podem ser colocados em um script e executados com permissão de execução.

Exemplo 1º:

Supondo que você tem 4 vídeos no formato MKV, onde cada vídeo tem os seguintes nomes: 01.mkv, 02.mkv, 03.mkv e 04.mkv.

Salve em um arquivo com o nome play-video.sh o seguinte:

###############################################################
ffmpeg
   -i 01.mkv
   -i 02.mkv
   -i 03.mkv
   -i 04.mkv
  -filter_complex "
      [0:v] setpts=PTS-STARTPTS, scale=qvga [a0];
      [1:v] setpts=PTS-STARTPTS, scale=qvga [a1];
      [2:v] setpts=PTS-STARTPTS, scale=qvga [a2];
      [3:v] setpts=PTS-STARTPTS, scale=qvga [a3];
      [a0][a1][a2][a3]xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0[out]
      "
    -map "[out]"
    -c:v libx264 -t '30' -f matroska output_col_2x2.mkv
###############################################################

Dê permissão de execução:

sudo chmod 777 play-video.sh

Execute o script:

./play-video.sh

Exemplo 2º:

Supondo que você tem 2 webcam onde cada uma está nos seguintes devices:

/dev/video0
/dev/video1

Salve em um arquivo com o nome play-webcam.sh o seguinte:

###############################################################
ffmpeg 
   -i /dev/video0 
   -i /dev/video1 
  -filter_complex " 
      [0:v] setpts=PTS-STARTPTS, scale=qvga [a0]; 
      [1:v] setpts=PTS-STARTPTS, scale=qvga [a1]; 
      [a0][a1]xstack=inputs=2:layout=0_0|0_h0|w0_0|w0_h0[out] 
      " 
      -map "[out]" 
	-c:v libx264 -preset superfast -crf 18 -f matroska - | ffplay -
###############################################################

Dê permissão de de execução:

sudo chmod 777 play-webcam.sh

Execute o script:

./play-webcam.sh

Exemplo 3º:

Supondo que você tem 4 câmeras com a seguinte configuração:

IP = 192.168.1.116
Porta = 554
Protocolo = rtsp
User = admin
Password = "nao tem senha, esta em branco"
Canal = 1, 2, 3, 4

Salve em um arquivo com o nome play-rtsp.sh o seguinte:

###############################################################
ffmpeg -rtsp_transport tcp 
    -i "rtsp://192.168.1.116:554/user=admin&password=&channel=1&stream=0.sdp" 
    -i "rtsp://192.168.1.116:554/user=admin&password=&channel=2&stream=0.sdp"
    -i "rtsp://192.168.1.116:554/user=admin&password=&channel=3&stream=0.sdp"
    -i "rtsp://192.168.1.116:554/user=admin&password=&channel=4&stream=0.sdp"
    -filter_complex "
		nullsrc=size=1920x1080 [base];
		[0:v] setpts=PTS-STARTPTS, scale=960x540 [upperleft];
		[1:v] setpts=PTS-STARTPTS, scale=960x540 [upperright];
		[2:v] setpts=PTS-STARTPTS, scale=960x540 [lowerleft];
		[3:v] setpts=PTS-STARTPTS, scale=960x540 [lowerright];
		[base][upperleft] overlay=shortest=1 [tmp1];
		[tmp1][upperright] overlay=shortest=1:x=960 [tmp2];
		[tmp2][lowerleft] overlay=shortest=1:y=540 [tmp3];
		[tmp3][lowerright] overlay=shortest=1:x=960:y=540
	" 
	-c:v libx264 -preset superfast -crf 18 -f matroska - | ffplay -
###############################################################

Dê permissão de execução:

sudo chmod 777 play-rtsp.sh

Execute o script:

./play-rtsp.sh

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

fdisk - Visualizando tamanho do disco

Apagar somente os arquivos

Executar comandos ao efetuar login ou logout no Linux

Gerenciar pacotes em baixo nível no Debian

Scripts adduser (para criar usuários) em distros não Debian - Para iniciantes

  

Comentários
[1] Comentário enviado por maurixnovatrento em 23/10/2022 - 13:45h


o ffmpeg é bem completo mesmo.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts