refactoring the build system
This commit is contained in:
		
							parent
							
								
									5b7ad96a29
								
							
						
					
					
						commit
						d89876b633
					
				
							
								
								
									
										4
									
								
								tools/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								tools/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| # Tools | ||||
| 
 | ||||
| Build system and utilities. | ||||
| 
 | ||||
							
								
								
									
										14
									
								
								tools/encode.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										14
									
								
								tools/encode.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,14 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| set -e  ;  set -u | ||||
| 
 | ||||
| if [ $# == 1 ] | ||||
| then | ||||
| 	srcdir=$1 | ||||
| else | ||||
| 	srcdir="essai" | ||||
| fi | ||||
| 
 | ||||
| source tools/fonctions.sh | ||||
| 
 | ||||
| ff_encodage $srcdir wip.mp4 | ||||
							
								
								
									
										53
									
								
								tools/fonctions.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								tools/fonctions.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,53 @@ | ||||
| 
 | ||||
| set -eu | ||||
| 
 | ||||
| #   -------------------------------------------------------------- | ||||
| ralentisseur () | ||||
| { | ||||
| temps=$1 | ||||
| 
 | ||||
| load=$(awk '{print int($1)}' < /proc/loadavg) | ||||
| # echo "   load is $load" | tee -a WS/log | ||||
| if [ $load -gt 10 ] ; then | ||||
| 	attente=$(( $temps + ($RANDOM % 90) )) | ||||
| 	echo "ralentir $0 $SEQNAME $attente"  # | tee -a WS/log | ||||
| 	sleep $attente | ||||
| fi | ||||
| } | ||||
| 
 | ||||
| #   -------------------------------------------------------------- | ||||
| 
 | ||||
| ff_encodage() | ||||
| { | ||||
| SRCDIR="$1" | ||||
| FILMNAME="$2" | ||||
| 
 | ||||
| echo "Encoding $SRCDIR to $FILMNAME" | tee -a WS/log | ||||
| ffmpeg  -nostdin                                        	\ | ||||
|         -y -r 30 -f image2 -i frames/${SRCDIR}/%05d.png		\ | ||||
|         -metadata artist='--[ tTh ]--'                  	\ | ||||
|         -metadata title='-- HexaCone --'    			\ | ||||
|         -c:v libx264                                    	\ | ||||
|         -pix_fmt yuv420p                                	\ | ||||
|         -tune film                                      	\ | ||||
|         $FILMNAME | ||||
| 
 | ||||
| # wc -c $FILMNAME | tee -a WS/log | ||||
| } | ||||
| #   -------------------------------------------------------------- | ||||
| 
 | ||||
| mp_encodage() | ||||
| { | ||||
| # | ||||
| #	NOT WORKING ! | ||||
| # | ||||
| mencoder	'mf://frames/*.png'		\ | ||||
| 		-mf				\ | ||||
| 		fps=24				\ | ||||
| 		-ovc lavc			\ | ||||
| 		-lavcopts vcodec=mpeg4		\ | ||||
| 		-o output.avi | ||||
| } | ||||
| 
 | ||||
| #   -------------------------------------------------------------- | ||||
| #   -------------------------------------------------------------- | ||||
							
								
								
									
										111
									
								
								tools/linkfarmer.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										111
									
								
								tools/linkfarmer.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,111 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| set -e   ;   set -u | ||||
| 
 | ||||
| IDX=0 | ||||
| SPOOL="frames/Spool" | ||||
| SEQNAME="none" | ||||
| TMP="WS/tmp.png" | ||||
| 
 | ||||
| source tools/fonctions.sh | ||||
| 
 | ||||
| # ------------------------------------------------------- | ||||
| #		/!\	this function just copy the | ||||
| #			file to the spool dir, so  | ||||
| #			you can use it for tmp pics. | ||||
| # | ||||
| addfile () | ||||
| { | ||||
| src="$1" | ||||
| dstname=$(printf "%s/%05d.png" $SPOOL $IDX) | ||||
| # echo "$src -> $dstname" | ||||
| # ln --force --symbolic $src $dstname | ||||
| cp -f $src $dstname | ||||
| IDX=$(( IDX + 1 )) | ||||
| } | ||||
| # ------------------------------------------------------- | ||||
| linkfarm () | ||||
| { | ||||
| SRC="frames/$1" | ||||
| echo "linkfarm $SRC" | tee -a WS/log | ||||
| 
 | ||||
| local NBRE=30 | ||||
| for foo in $(seq 0 $NBRE) | ||||
| do | ||||
| 	addfile "$SRC/00000.png" | ||||
| done | ||||
| 
 | ||||
| for src in "$SRC"/* | ||||
| do | ||||
| 	addfile $src | ||||
| done | ||||
| 
 | ||||
| for foo in $(seq 0 $NBRE) | ||||
| do | ||||
| 	addfile "$SRC/00359.png" | ||||
| done | ||||
| sync | ||||
| } | ||||
| # ------------------------------------------------------- | ||||
| faire_le_titre () | ||||
| { | ||||
| echo "faire le titre" | ||||
| 
 | ||||
| local NBRE=190 | ||||
| for foo in $(seq 0 $NBRE) | ||||
| do | ||||
| 	Ypos=$(( 500 - ( foo / 2 ) )) | ||||
| 	convert	 "WS/negatif.png"			\ | ||||
| 		-gravity north				\ | ||||
| 		-font Courier-Bold			\ | ||||
| 		-pointsize 96				\ | ||||
| 		-fill white				\ | ||||
| 		-annotate +0+${Ypos} "HexaCone(s)"	\ | ||||
| 		${TMP} | ||||
| 	# identify ${TMP} | ||||
| 	addfile ${TMP} | ||||
| done | ||||
| } | ||||
| # ------------------------------------------------------- | ||||
| faire_la_fin () | ||||
| { | ||||
| local NBRE=120 | ||||
| for foo in $(seq 0 $NBRE) | ||||
| do | ||||
| 	Ypos=$(( foo + 100 )) | ||||
| 	convert	 "WS/negatif.png"				\ | ||||
| 		-gravity north					\ | ||||
| 		-font Courier-Bold				\ | ||||
| 		-pointsize 48					\ | ||||
| 		-fill white					\ | ||||
| 		-strokewidth 2  -stroke gray30			\ | ||||
| 		-annotate +0+${Ypos} 	\ | ||||
| 				"tTh des Bourtoulots\n2025"	\ | ||||
| 		${TMP} | ||||
| 	# identify ${TMP} | ||||
| 	addfile ${TMP} | ||||
| done | ||||
| } | ||||
| # ------------------------------------------------------- | ||||
| 
 | ||||
| rm frames/Spool/*.png | ||||
| 
 | ||||
| tools/plot-timing.sh  | ||||
| faire_le_titre | ||||
| 
 | ||||
| linkfarm hexabenz | ||||
| linkfarm orbite | ||||
| linkfarm topview | ||||
| linkfarm passage | ||||
| linkfarm scene | ||||
| linkfarm essai | ||||
| 
 | ||||
| tools/plot-timing.sh  | ||||
| faire_la_fin | ||||
| 
 | ||||
| ff_encodage Spool full.mp4 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
							
								
								
									
										56
									
								
								tools/plot-timing.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										56
									
								
								tools/plot-timing.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,56 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| set -ue | ||||
| 
 | ||||
| TMPFILE="/dev/shm/plot-timing.tmp" | ||||
| IMAGE="timing.png" | ||||
| 
 | ||||
| echo ; figlet "plot timing" ; echo | ||||
| wc WS/mp4.timing | tee -a WS/log | ||||
| 
 | ||||
| grep "passage" WS/mp4.timing | awk '				\ | ||||
| BEGIN	{							\ | ||||
| 	nbrames=360;						\ | ||||
| 	for (foo=0; foo<nbrames; foo++) {			\ | ||||
| 		mini[foo]  = 666;				\ | ||||
| 		maxi[foo]  = -42;				\ | ||||
| 		count[foo] = 0;					\ | ||||
| 		}						\ | ||||
| 	}							\ | ||||
| 								\ | ||||
| 	{							\ | ||||
| 	accu[$2] += $3;						\ | ||||
| 	count[$2]++;						\ | ||||
| 	if (mini[$2] > $3)	mini[$2] = $3;			\ | ||||
| 	if (maxi[$2] < $3)	maxi[$2] = $3;			\ | ||||
| 	}							\ | ||||
| 								\ | ||||
| END	{							\ | ||||
| 	for (foo=0; foo<nbrames; foo++) {			\ | ||||
| 		if (count[foo] > 0) {				\ | ||||
| 			mean = accu[foo] / count[foo];		\ | ||||
| 			printf "%4d %4f %4d %4d\n", foo, mean, 	\ | ||||
| 				mini[foo], maxi[foo];		\ | ||||
| 			}					\ | ||||
| 		}						\ | ||||
| 	}							\ | ||||
| ' > $TMPFILE | ||||
| 
 | ||||
| # cat -n $TMPFILE | tail		# ; exit | ||||
| 
 | ||||
| gnuplot	<< __EOC__ | ||||
| 	set term png size 1024,768 | ||||
| 	set output "timing.png" | ||||
| 	set grid | ||||
| 	set xrange [:360] | ||||
| 	set yrange [0:] | ||||
| 	set title "HexaCone : temps de rendu" | ||||
| 	set xlabel "numéro de la trame" | ||||
| 	set ylabel "temps en secondes" | ||||
| 	plot "/dev/shm/plot-timing.tmp" u 1:4 w l t "maximum",	\ | ||||
| 	     "/dev/shm/plot-timing.tmp" u 1:3 w l t "minimum",	\ | ||||
| 	     "/dev/shm/plot-timing.tmp" u 1:2 w l t "moyenne", | ||||
| __EOC__ | ||||
| 
 | ||||
| convert -negate $IMAGE WS/negatif.png | ||||
| 
 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tonton Th
						Tonton Th