Ma BeeCam est un Raspberry Pi3/Raspbian Stretch avec une version fraîchement compilée de ffmpeg N-89882-g4dbae00bac s'exécutant en tant que service:
#!/bin/bash
cd /usr/local/bin/
while true
do
./ffmpeg -re -thread_queue_size 512 -rtsp_transport tcp -i \
"rtsp://anonymous:password@192.168.1.11: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
où 192.168.1.11 est mon nouveau et chic Reolink RLC-423S, et -t 00:11:51 est la durée de mon MP3 libre de droits. Cela fonctionne normalement assez bien:
https://www.youtube.com/user/IAmTheWaterbug/live
et cela boucle en continu. Le flux YT aura des problèmes lorsqu'il redémarre, mais le flux reprend avec seulement environ 15 secondes de vidéo perdues. Il a fonctionné en continu toute la nuit pendant au moins 8 heures (par exemple, de nombreux cycles) avant que je ne commence à bidouiller avec.
J'ai changé le délai à 5s, et cela ne semble pas le déranger.
Mais parfois, j'ai fait un sudo systemctl stop StreamToYouTube suivi de sudo systemctl start StreamToYouTube, dans un délai de 1 à 2 secondes (par exemple, aussi vite que je peux taper Up Up Up et Entrée), et parfois lorsque je le fais, le flux échoue, et ffmpeg commence à déverser:
[rtsp @ 0x302c2f0] RTP: PT=60: mauvais cseq e680 attendu=0b49
[rtsp @ 0x302c2f0] RTP: PT=60: mauvais cseq 93ab attendu=0b49
[rtsp @ 0x302c2f0] RTP: PT=60: mauvais cseq 93ac attendu=0b49
[rtsp @ 0x302c2f0] RTP: PT=60: mauvais cseq e682 attendu=0b49
sans fin.
Le redémarrage du Pi ne résout pas cela (par exemple, le flux YT échoue toujours, et sudo systemctl status StreamToYouTube renvoie la même série d'erreurs "bad cseq"), mais le redémarrage de la caméra le résout. Je me demande ce que signifie exactement cette erreur, et comment la signaler à Reolink.
Pendant l'état "échec", la caméra semble fonctionner correctement depuis d'autres clients, par exemple, je peux lancer l'application Reolink sur mon Mac ou visionner la page web de la caméra depuis n'importe quel navigateur, et la vidéo semble correcte.
Mais pour une raison quelconque, le flux RTSP devient bizarre d'une manière que ffmpeg ne peut pas résoudre.
C'est assez reproductible si j'arrête/démarre rapidement le service, mais redémarrer avec une pause de 5 secondes dans mon script ne semble pas le déranger.
Merci!