This article and memo aims to show how to serve your local cams with protection ==== Utilisation : accès à mes cams depuis l'extérieur ==== === Activation === Les flux de mes cams sont disponibles si on les active ; on peut les activer pour un durée limitée. \\ Pour ce faire, avec un navigateur web, entrer l'url suivante en remplacant par la caméra voulue. \\ Remarque : Une authentification basic sera demandée. * Appel en local pour l'activation : https://xms-rbpi3:8081/cams/activation/activate.php?cam= * Appel à distance pour l'activation : https://xmarquis.freeboxos.fr:50081/cams/activation/activate.php?cam= Si l'appel a abouti et l'activation se passe bien, ou que la caméra est déjà activée, une réponse json à cet appel indiquera que vous pouvez accéder à la cam. === Accès au flux activé === * Accès en local : https://xms-rbpi3:8081/cams/salon * Accès à distance : https://xmarquis.freeboxos.fr:50081/cams/salon ==== Create vlc streaming service ==== https://medium.com/@petehouston/protect-media-stream-with-http-basic-authentication-11a753725f05 https://wiki.videolan.org/Documentation:Streaming_HowTo/VLM Ces trucs fonctionne avec la version 3 de VLC === Capturer le flux rtsp et le servir comme un flux avi accessible === cvlc -v --sout "#transcode{acodec=mp4a,ab=128,channels=2,samplerate=44100}:std{access=http,mux=ts,dst=:8084/streamSalon}" rtsp://admin:admin@192.168.1.84:554/11 === Capturer le flux rtsp et le servir comme un flux avi accessible, mais uniquement depuis localhost, i.e la machine qui capture === Pour ça on doit ajouter localhost dans la dst : cvlc -v --sout "#transcode{acodec=mp4a,ab=128,channels=2,samplerate=44100}:std{access=http,mux=ts,dst=localhost:8084/streamSalon}" rtsp://admin:admin@192.168.1.84:554/11 === Capture le flux rtsp et le sert comme un flux avi protégé === cvlc -v --sout "#transcode{acodec=mp4a,ab=128,channels=2,samplerate=44100}:std{access=http{user=xavier,pwd=free,mime=multipart/x-mixed-replace;boundary=-7b3cc56e5f51db803f790dad720ed50a},mux=ts,dst=:8084/streamChambre1}" rtsp://admin:admin@192.168.1.40:554/12 Ca on ne va pas s'en servir, vu qu'on veut utiliser une base de donnée d'utilisateurs (via apache et htpassword) ==== Update apache2 conf to create a stream proxy ==== * Add something similar to in apache main conf file (for me /etc/apache2/sites-enabled/000-default.conf) ... DocumentRoot /var/www ... #the / has to be there, otherwise Apache startup fails AuthType Basic AuthName "Restricted Files" AuthBasicProvider file # (this line is optional) AuthUserFile "/home/pi/apache.access-control-passwords" # you can change users and passwords with htpasswd utility # example : # htpasswd -c /home/pi/apache.access-control-passwords xavier Require valid-user # or Require user xavier #Satisfy Any # (or all, if IPs specified and require IP + pass) # any means neither ip nor pass ProxyPass "http://localhost:8084/streamSalon" # redirect stream to vlc (that is listening to 8084 port) ... ... * Notice : You must use htpasswd to stock some user/password pairs in file /home/pi/apache.access-control-passwords * To test apache2 config apachectl -t ==== Restart apache2 and test it ==== * Retart apache sudo service apache2 restart * On your PC, launch vlc, open a stream and enter url : http:///cams ==> it will prompt user and password * from VLC on android, since authentication type is basic, open following stream : http://@/cams