Advertisement
Guest User

Untitled

a guest
Dec 12th, 2016
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  1. #! /bin/bash
  2.  
  3. #begin endless loop
  4. while true;do
  5.  
  6. #set screen size variables from arguments
  7. x=$1
  8. y=$2
  9. goodip=0
  10.  
  11. #determine local network number (e.g. 192.168.0.*) to scan for cameras
  12. while [ "$goodip" -eq "0" ];do
  13. #wait until non-169* address assigned by DHCP
  14. printf "\033c" #clear screen
  15. ip -o addr show | awk '/brd/ {print $6}' | sed 's/255/*/' > /home/pi/nmapin.txt
  16. echo "Local network:"
  17. #cat /home/pi/nmapin.txt
  18. while IFS=, read ipa;do
  19. echo $ipa
  20. if [ ${ipa:0:3} != "169" ]
  21. then
  22. goodip=1
  23. break
  24. else
  25. echo "Waiting for DHCP server to assign real IP address..."
  26. sleep 10
  27. fi
  28. done < /home/pi/nmapin.txt
  29. done
  30.  
  31. #scan local network for rtsp cameras
  32. echo "Searching for RTSP cameras:"
  33. nmap -p554 -iL /home/pi/nmapin.txt -oG - | awk '/open/ {print $2}' | sed -n '1,4p' > /home/pi/camlist.txt
  34. cat /home/pi/camlist.txt
  35.  
  36. #determine number of cameras by reading camlist.txt
  37. cameras=0
  38. while IFS=, read cam;do
  39. ((cameras = cameras + 1))
  40. done < /home/pi/camlist.txt
  41.  
  42. #stop all screens
  43. echo "Restarting camera windows..."
  44. sudo killall omxplayer.bin
  45.  
  46. #parse camlist.txt and display screens
  47. echo "Loading $cameras camera(s)..."
  48. rtsp_user="admin"
  49. rtsp_pass="camerapass"
  50. rtsp_suffix="/cam/realmonitor?channel=1&subtype=1"
  51.  
  52. camera=0
  53. while IFS=, read ipaddress;do
  54. ((camera = camera + 1))
  55. a=0
  56. b=0
  57. c=0
  58. d=0
  59. if [ "$camera" -eq "1" ]; then
  60. ((c=x2))
  61. ((d=y2))
  62. if [ "$cameras" -eq "1" ]; then
  63. ((c=x))
  64. ((d=y))
  65. fi
  66. fi
  67. if [ "$camera" -eq "2" ]; then
  68. ((a=x2))
  69. ((c=x))
  70. ((d=y2))
  71. fi
  72. if [ "$camera" -eq "3" ]; then
  73. ((b=y2))
  74. ((c=x2))
  75. ((d=y))
  76. fi
  77. if [ "$camera" -eq "4" ]; then
  78. ((a=x2))
  79. ((b=y2))
  80. ((c=x))
  81. ((d=y))
  82. fi
  83. screen -dmS camera1 sh -c 'omxplayer --win "'$a' '$b' '$c' '$d'" "rtsp://'$rtsp_user':'$rtsp_pass'@'$ipaddress$rtsp_suffix'"'
  84. done < /home/pi/camlist.txt
  85.  
  86. #repeat every 4 hours in case DHCP server gives cameras new IP addresses
  87. ((h = 60 * 60 * 4))
  88. sleep $h
  89. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement