Outils pour utilisateurs

Outils du site


techniques:serve_vlc_stream_for_my_cams

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 <aValidCamName> par la caméra voulue.
Remarque : Une authentification basic sera demandée.

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é

Create vlc streaming service

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)
<VirtualHost *:80>
	...	
	DocumentRoot /var/www
	...
	
	<Location /cams> #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)
	</Location>
		
	<Directory />
		...
	</Directory>
	...
</VirtualHost>
  • 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:<myserver>/cams =⇒ it will prompt user and password * from VLC on android, since authentication type is basic, open following stream : http:<myUser:myPassword>@<myserver>/cams
techniques/serve_vlc_stream_for_my_cams.txt · Dernière modification: 2021/01/30 09:58 (modification externe)