My BeeCam é uma versão do Raspberry Pi3 / Raspbian Stretch w / recém-compilada do ffmpeg N-89882-g4dbae00bac rodando isso como um serviço:
#!/bin/bash
cd /usr/local/bin/
while true
do
./ffmpeg -re -thread_queue_size 512 -rtsp_transport tcp -i \
"rtsp://anonymous:[email protected]:554" -i WilliamTellOverture.mp3 \
-vcodec copy -acodec copy -t 00:11:51 -f flv \
"rtmp://a.rtmp.youtube.com/live2/my-youtube-streaming-key"
sleep 10s
done
onde 192.168.1.11 é o meu novo Reolink RLC-423S, e -t 00:11:51 é o tamanho do meu MP3 royalty-free. Isso normalmente funciona muito bem:
e loops continuamente. O fluxo do YT falha quando é reiniciado, mas o fluxo é retomado com apenas cerca de 15 segundos de perda de vídeo. Ele funcionou continuamente durante a noite por pelo menos 8 horas (por exemplo, muitos loops) antes de começar a brincar com ele.
Eu mudei o sono para 5s, e isso não parece incomodá-lo.
Mas de vez em quando eu fiz um sudo systemctl stop StreamToYouTube seguido de sudo systemctl start StreamToYouTube , dentro de 1-2 segundos (por exemplo, o mais rápido que eu digito < strong> Up Up Up e Enter ), e às vezes quando faço isso, o fluxo falha, e o ffmpeg inicia o dumping:
[rtsp @ 0x302c2f0] RTP: PT=60: bad cseq e680 expected=0b49
[rtsp @ 0x302c2f0] RTP: PT=60: bad cseq 93ab expected=0b49
[rtsp @ 0x302c2f0] RTP: PT=60: bad cseq 93ac expected=0b49
[rtsp @ 0x302c2f0] RTP: PT=60: bad cseq e682 expected=0b49
infinitamente.
A reinicialização do Pi não corrige isso (por exemplo, o fluxo do YT ainda falha e o sudo systemctl status StreamToYouTube retorna o mesmo fluxo de erros do "bad cseq"), mas a reinicialização da câmera corrige . Eu estou querendo saber o que exatamente esse erro significa, e como relatar isso para Reolink.
Durante o estado "falhou", a câmera parece estar funcionando corretamente de outros clientes, por exemplo, Posso iniciar o Reolink.app no meu Mac ou visualizar a página da web da câmera em qualquer navegador, e o vídeo parece bem.
Mas, por alguma razão, o fluxo do RTSP fica do jeito que o ffmpeg não consegue resolver.
É bastante repetitivo se eu parar / iniciar o serviço rapidamente, mas reiniciar com uma pausa de 5 segundos no meu script não parece incomodá-lo.
Obrigado!