[init]
This commit is contained in:
		
						commit
						ac50292883
					
				
							
								
								
									
										13
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | ||||
| # Project | ||||
| 
 | ||||
| pics | ||||
| videos | ||||
| 
 | ||||
| # Vim | ||||
| [._]*.s[a-v][a-z] | ||||
| !*.svg  # comment out if you don't need vector files | ||||
| [._]*.sw[a-p] | ||||
| [._]s[a-rt-v][a-z] | ||||
| [._]ss[a-gi-z] | ||||
| [._]sw[a-p] | ||||
| 
 | ||||
							
								
								
									
										47
									
								
								capture.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										47
									
								
								capture.py
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,47 @@ | ||||
| #!/usr/bin/python | ||||
| import threading | ||||
| import requests | ||||
| import datetime | ||||
| import time | ||||
| import os | ||||
| import sys | ||||
| 
 | ||||
| delay = 10.0 | ||||
| resolution = "1280x960" | ||||
| localDir = './photos/' | ||||
| 
 | ||||
| if sys.argv[1]: | ||||
|    localDir = sys.argv[1] +"/" | ||||
| 
 | ||||
| if sys.argv[2]: | ||||
|    delay = float(sys.argv[2]) | ||||
| 
 | ||||
| # Change here with your IP | ||||
| url = 'http://poi:poi@192.168.0.32:8888/photo.jpg' | ||||
| focusUrl = 'http://poi:poi@192.168.0.32:8888/focus' | ||||
| 
 | ||||
| def convpicture(infile, outfile,resolution): | ||||
|    quali = 80 | ||||
|    command = 'convert {} -quality {} -resize {}   {}'.format(infile,quali,resolution,outfile) | ||||
|    os.system(command) | ||||
| 
 | ||||
| def takePicture(): | ||||
|    # focus did better with macro picture | ||||
|    Focus_request = requests.get(focusUrl) | ||||
|    if Focus_request.status_code == 200: | ||||
|        time.sleep(1) # important | ||||
|        Img_request = requests.get(url) | ||||
|        if Img_request.status_code == 200: | ||||
|            time.sleep(1) | ||||
|            now = datetime.datetime.now() | ||||
|            name = now.strftime('%Y%m%d_%H%M%S' ) +'.jpg' | ||||
|            print ('get picture '+ name) | ||||
|            with open( localDir + 'last.jpg', 'wb') as f: | ||||
|                f.write(Img_request.content) | ||||
|            convpicture(localDir+'last.jpg',localDir+ name,resolution) | ||||
| 
 | ||||
| def printit(): | ||||
|    threading.Timer(delay, printit).start() | ||||
|    takePicture() | ||||
| 
 | ||||
| printit() | ||||
							
								
								
									
										78
									
								
								makevideo.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										78
									
								
								makevideo.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,78 @@ | ||||
| #!/bin/bash | ||||
| usage(){ | ||||
|   cat << EOF | ||||
| 
 | ||||
|  $(basename $0) -d <directory> -s <rate> -p <prefix> -v <video_dir> | ||||
| 
 | ||||
|  —————————————————————————————————————————————————————————————————————————————————— | ||||
|  Opt | Variable      | Type  | Definition                           | Default value | ||||
|  —————————————————————————————————————————————————————————————————————————————————— | ||||
|  -d    directory       path    Directory path of images to convert    ./pics | ||||
|  -r    rate            int     Convert only 1/N images                1 | ||||
|  -p    prefix          str     Images filename prefix.                '' | ||||
|  -v    video_dir       path    Directory path to store video file.    ./videos | ||||
|  -s    size            str     Images geometry.                       '1024x768' | ||||
|  —————————————————————————————————————————————————————————————————————————————————— | ||||
| 
 | ||||
| EOF | ||||
|   exit | ||||
| } | ||||
| panic(){ echo $@; exit 2;} | ||||
| 
 | ||||
| directory="./pics" | ||||
| prefix="" | ||||
| rate="1" | ||||
| size='1024x768' | ||||
| video_dir="./videos" | ||||
| 
 | ||||
| while getopts "hd:s:p:v:" o; do | ||||
|   case "${o}" in | ||||
|     h) | ||||
|       usage | ||||
|     ;; | ||||
|     r) | ||||
|       rate=${OPTARG} | ||||
|     ;; | ||||
|     d) | ||||
|       directory=${OPTARG} | ||||
|     ;; | ||||
|     p) | ||||
|       prefix=${OPTARG} | ||||
|     ;; | ||||
|     v) | ||||
|       video_dir=$( realpath ${OPTARG} 2>/dev/null ) | ||||
|     ;; | ||||
|     \?) | ||||
|       panic "Unknown option at position $OPTIND. Exiting." | ||||
|     ;; | ||||
|   esac | ||||
| done | ||||
| 
 | ||||
| # Safe test ffmpeg | ||||
| which ffmpeg &>/dev/null || panic "No ffmpeg found. Exiting." | ||||
| 
 | ||||
| # Safe test directory | ||||
| directory="$( realpath ${directory} 2>/dev/null )/" | ||||
| [ -n "${directory}" ] && [ -d "${directory}" ] || panic "'${directory}' is not a valid directory. Exiting." | ||||
| 
 | ||||
| # Safe test prefix | ||||
| [ -n "$( ls ${directory}/${prefix}* 2>/dev/null)" ] || panic "${directory}/${prefix}\* doesn't match any file. Exiting." | ||||
| 
 | ||||
| # Safe test rate | ||||
| [ ${rate} -gt 0 ] || panic "Invalid rate '${rate}'" | ||||
| pts=$( echo 1/$rate | bc -l ) | ||||
| 
 | ||||
| # Safe test video_dir | ||||
| video_dir="$( realpath ${video_dir} 2>/dev/null )/" | ||||
| [ -n "${video_dir}" ] || panic "The video_dir option cannot be empty. Exiting." | ||||
| [ -d "${video_dir}" ] || { | ||||
|   read -p "'${video_dir}' does not exist, do you want to create it? [Y/n] : " | ||||
|   REPLY=${REPLY:-Y} | ||||
|   [ "N" == ${REPLY^^} ] && panic "The video directory must exist. Exiting." | ||||
|   mkdir -p ${video_dir} 2>/dev/null || panic "Failed to create '${video_dir}'. Exiting" | ||||
| } | ||||
| [ -n "$( ls ${directory}/${prefix}* 2>/dev/null)" ] || panic "${directory}/${prefix}\* doesn't match any file. Exiting." | ||||
| 
 | ||||
| 
 | ||||
| date=$(date +%s) | ||||
| ffmpeg -pattern_type glob -i "pics/*.jpg" -filter:v "setpts=(${pts})*PTS"  -pix_fmt yuv420p -s "${size}"  -vcodec libx264  "${video_dir}/$date.mp4" | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user