Enregistrer un Flux RTSP ?
Fermé
Priigame
-
Modifié le 18 mai 2018 à 08:38
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 18 mai 2018 à 13:30
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 18 mai 2018 à 13:30
A voir également:
- Enregistrer un Flux RTSP ?
- Audacity enregistrer son pc - Guide
- Enregistrer en pdf - Guide
- Enregistrer son ecran - Guide
- Comment enregistrer une video youtube - Guide
- Comment enregistrer une musique sur youtube en mp3 - Guide
1 réponse
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
18 mai 2018 à 10:46
18 mai 2018 à 10:46
Bonjour,
En amateur j'ai fait quelque chose de ce genre, en l'occurrence c'était pour enregistrer les flux RTSP télé de la freebox.
C'était il y a déjà bien longtemps (2010...), les choses ont peut-être évolué côté c#, qui n'acceptait pas les flux RTSP à l'époque, mais mon programme fonctionne toujours au poil.
Je n'ai pas directement enregistré en C# les flux, j'ai utilisé le C# pour commander le programme VLC via sa CLI qui contient tout ce qu'il faut pour enregistrer, et encoder à la volée les flux vidéos, y compris avec le choix de la piste audio (pour les vidéos multi-langue).
Mon programme fonctionnait aussi bien sous Linux que sous Windows. Le tout est d'appeler l'exécutable de VLC, suivant là où il est installé (idéalement il faut rendre ce chemin paramétrable dans ton appli), avec les paramètres suivants :
En remplaçant __FILE__ par le chemin de destination, __FLUX__ par l'adresse RTSP.
Tu peux rajouter
Et pour exécuter une commande externe en C#, tu peux faire ceci :
Et tu vas pouvoir contrôler ce processus avec les boutons que tu souhaites mettre en œuvre.
Voilà, j'imagine que tu espérais une réponse qui ne fasse pas appel à un programme externe, mais ça, ça fonctionne :)
Xavier
En amateur j'ai fait quelque chose de ce genre, en l'occurrence c'était pour enregistrer les flux RTSP télé de la freebox.
C'était il y a déjà bien longtemps (2010...), les choses ont peut-être évolué côté c#, qui n'acceptait pas les flux RTSP à l'époque, mais mon programme fonctionne toujours au poil.
Je n'ai pas directement enregistré en C# les flux, j'ai utilisé le C# pour commander le programme VLC via sa CLI qui contient tout ce qu'il faut pour enregistrer, et encoder à la volée les flux vidéos, y compris avec le choix de la piste audio (pour les vidéos multi-langue).
Mon programme fonctionnait aussi bien sous Linux que sous Windows. Le tout est d'appeler l'exécutable de VLC, suivant là où il est installé (idéalement il faut rendre ce chemin paramétrable dans ton appli), avec les paramètres suivants :
-vvv --sout "#standard{access=file,mux=ps,dst=__FILE__}" --qt-start-minimized "__FLUX__"
En remplaçant __FILE__ par le chemin de destination, __FLUX__ par l'adresse RTSP.
Tu peux rajouter
--run-time=__DUREE__pour enregistrer pendant une durée prédéfinie (en secondes), mais ça s'applique plus à mon cas qu'au tien je pense. De même pour
--audio-track __CANAL__.
Et pour exécuter une commande externe en C#, tu peux faire ceci :
using System.Diagnostics; [...] Process vlc = new Process(); vlc.StartInfo.FileName = "chemin_complet_vers_vlc.exe"; vlc.StartInfo.Arguments = "chaine d'argument telle que définie plus haut"; vlc.Start();
Et tu vas pouvoir contrôler ce processus avec les boutons que tu souhaites mettre en œuvre.
Voilà, j'imagine que tu espérais une réponse qui ne fasse pas appel à un programme externe, mais ça, ça fonctionne :)
Xavier
18 mai 2018 à 10:49
18 mai 2018 à 11:01
18 mai 2018 à 13:30