Bonsoir à tous,
Je suis désolé de poster ici mais je n'ai pas trouvé un autre forum pouvant correspondre à mon problème.
J'ai installé sur Ubuntu 18.04 un serveur Nginx avec un module serveur RTMP qui fonctionne parfaitement. Je diffuse de la vidéo sur ce serveur et mes 2 autres clients se connecte via VLC sans problème.
Je souhaiterais faire un test régulier via un script batch pour couper VLC et lancer la lecture d'une video en local sur le client en cas de serveur indisponible.
J'ai effectué des recherches et ai trouvé différents scripts que j'ai essayé de reproduire sans succès.
Voici le premier script que j'ai réalisé :
Le script me retourne systématiquement "Working!" même lorsque je stoppe le démon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if [[ `curl --connect-timeout 3 --output /dev/null --silent --head --fail rtmp://127.0.0.1/mytv/test 2>&1` ]] then echo "failing!" else echo "working!" fi
J'ai testé la commande en direct dans le terminal mais elle ne me retourne rien.
J'ai testé en arrêtant le serveur et la diffusion en streaming mais pareil, rien ne se passe lorsque je test dans le terminal et le script me mets toujours "Working!" alors que la diffusion est stoppé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part root$ curl --connect-timeout 3 --output /dev/null --silent --head --fail rtmp://127.0.0.1/mytv/test 2>&1
J'ai cherché à faire plusieurs modification sur la commande mais j'ai toujours les mêmes retours.
J'ai cherché sur le manuel de curl (Man CURL). Il y a de nombreux commutateurs disponibles et je suis un peu perdu.
De ce fait, je me suis tourné vers rtmpdump.
Streaming stoppé, voici la commande que j'ai essayé dans terminal :
La commande arrive à se connecter au serveur mais comme il n'y a aucune diffusion, j'ai en retour une erreur. Jusque là, c'est ce que j'attendais.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 root$ rtmpdump -v -m6 -B6 -r rtmp://127.0.0.1/mytv/test -o /tmp/test.flv RTMPDump v2.4 (c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL Connecting ... INFO: Connected... Starting Live Stream For duration: 6.000 sec ERROR: RTMP_ReadPacket, failed to read RTMP packet header 0.000 kB / 0.00 sec Download may be incomplete (downloaded about 0.00%), try resuming
Cette fois ci, voici le retour lorsque le streaming est en live :
Tout semble fonctionner sauf que je demande que l'enregistrement s'arrête au bout de 6 secondes mais passé ce délai, la commande s'exécute toujours.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 $ rtmpdump -v -m6 -B6 -r rtmp://127.0.0.1/mytv/test -o /tmp/test.flv RTMPDump v2.4 (c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL Connecting ... INFO: Connected... Starting Live Stream For duration: 6.000 sec INFO: Metadata: INFO: Server NGINX RTMP (github.com/arut/nginx-rtmp-module) INFO: width 960.00 INFO: height 530.00 INFO: displayWidth 960.00 INFO: displayHeight 530.00 INFO: duration 0.00 INFO: framerate 30.00 INFO: fps 30.00 INFO: videodatarate 1800.00 INFO: videocodecid 0.00 INFO: audiodatarate 160.00 INFO: audiocodecid 0.00 3333.187 kB / 21.73 sec[/I] Interruption de la commande avec CTRL+C [I]Caught signal: 2, cleaning up, just a second... ERROR: RTMP_ReadPacket, failed to read RTMP packet header 3333.187 kB / 21.73 sec Download may be incomplete (downloaded about 0.00%), try resuming
Je suis preneur de vos conseils où information qui me permettrait de sortir de l'impasse. Mon niveau en architecture linux et proche du néant mais j'apprends de jour en jour et j'ai vraiment besoin de réaliser ce test. Je suis prêt à me tourner vers python ou un autre langage si besoin mais je trouvais que batch est le plus simple et logique pour ce que je souhaite faire.
Merci par avance de votre aide.
Partager