gonzopi

git clone https://git.tarina.org/gonzopi
Log | Files | Refs | README | LICENSE

commit f817ef087cc7808cd094eb9b424fe1e376137081
parent 00f91f414dddcde0ef22e4fcdb408d3cbbb579dd
Author: rbckman <rob@tarina.org>
Date:   Tue, 15 Apr 2025 21:40:45 +0100

make usb drive fast

Diffstat:
MVERSION | 2+-
Aextras/formatdrive.sh | 2++
Aextras/setio.sh | 3+++
Aextras/testdrivespeed.sh | 10++++++++++
Mgonzopi.py | 8++++----
5 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/VERSION b/VERSION @@ -1,2 +1,2 @@ -2.04 +2.05 Gilliam diff --git a/extras/formatdrive.sh b/extras/formatdrive.sh @@ -0,0 +1,2 @@ +sudo mkfs.ext4 -O ^has_journal /dev/sda1 +echo "sudo mount -o noatime,nodiratime,async /dev/sda1 /media/usb0" diff --git a/extras/setio.sh b/extras/setio.sh @@ -0,0 +1,3 @@ +echo none | sudo tee /sys/block/sda/queue/scheduler +echo 20 | sudo tee /proc/sys/vm/dirty_background_ratio +echo 40 | sudo tee /proc/sys/vm/dirty_ratio diff --git a/extras/testdrivespeed.sh b/extras/testdrivespeed.sh @@ -0,0 +1,10 @@ + +#test latency! +sudo dd if=/dev/zero of=/media/usb0/test bs=1M count=100 oflag=dsync + +echo "good speed should be at < 0.5 s for 100 MB" + +#test write speed +sudo dd if=/dev/zero of=/media/usb0/test bs=4M count=100 status=progress + +echo "better speed better quality" diff --git a/gonzopi.py b/gonzopi.py @@ -169,10 +169,10 @@ def main(): fps_selected=8 fps_selection=[] if 'Raspberry Pi 4 Model B' in raspberrypiversion: - quality = 30 + quality = 20 bitrate = 8888888 if 'Raspberry Pi 3 Model B' in raspberrypiversion: - quality = 30 + quality = 20 bitrate = 1111111 profilelevel='4.2' headphoneslevel = 40 @@ -5843,7 +5843,7 @@ def usbfilmfolder(dsk): holdbutton = '' writemessage('Searching for usb storage device, middlebutton to cancel') if os.path.exists('/dev/sda1') == True: - os.system('sudo mount /dev/sda1 /media/usb0') + os.system('sudo mount -o noatime,nodiratime,async /dev/sda1 /media/usb0') os.system('sudo chown pi /media/usb0') #os.system('sudo umount -l /media/usb0') waiting = time.time() @@ -6048,7 +6048,7 @@ def startrecording(camera, takename): # FFmpeg command to take H.264 input from stdin and output to MP4 ffmpeg_cmd = ['ffmpeg','-i', 'pipe:0', '-fflags', '+genpts+igndts', '-c:v', 'copy', '-movflags', 'frag_keyframe+empty_moov', '-bsf:v', 'dump_extra', '-b:v', str(bitrate), '-level:v', '4.2', '-g', '1', '-r', '25', '-f', 'mp4', takename, '-loglevel','debug', '-y'] rec_process = subprocess.Popen(ffmpeg_cmd, stdin=subprocess.PIPE) - camera.start_recording(rec_process.stdin, format='h264', level=profilelevel, quality=quality, intra_period=5, bitrate = bitrate) + camera.start_recording(rec_process.stdin, format='h264', level=profilelevel, quality=quality, intra_period=1, bitrate = bitrate) return rec_process def stoprecording(camera, rec_process):