gonzopi

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

commit ad02a05816af679f6ab8118c2979a99bc600c566
parent 54adcd8c70607b922ced337c3ba5f4fe4c84ab8f
Author: rbckman <rob@tarina.org>
Date:   Sat, 19 Apr 2025 11:43:25 +0100

bug fixes, nasty ones

Diffstat:
MVERSION | 2+-
Mgonzopi.py | 16++++++++--------
2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/VERSION b/VERSION @@ -1,2 +1,2 @@ -2.08 +2.09 Gilliam diff --git a/gonzopi.py b/gonzopi.py @@ -1396,6 +1396,9 @@ def main(): newselected=newselected_maybe if pressed == 'record' and recordwithports==False or pressed == 'record_now' or pressed == 'retake_now' or pressed == 'retake' and recordwithports==False or reclength != 0 and t > reclength: overlay = removeimage(camera, overlay) + foldername = filmfolder + filmname + '/' + 'scene' + str(scene).zfill(3) +'/shot' + str(shot).zfill(3) + '/' + filename = 'take' + str(take).zfill(3) + recordable = not os.path.isfile(foldername + filename + '.mp4') and not os.path.isfile(foldername + filename + '.h264') if recording == False and recordable == True or recording == False and pressed == 'record_now' or recording == False and pressed == 'retake_now': #camera_recording=0 scenes, shots, takes = browse(filmname,filmfolder,scene,shot,take) @@ -1431,7 +1434,7 @@ def main(): sound_start = time.time() if onlysound != True: #camera.start_recording(filmfolder+ '.videos/'+video_origins+'.h264', format='h264', bitrate = bitrate, level=profilelevel, quality=quality, intra_period=1) - rec_process=startrecording(camera, filmfolder+ '.videos/'+video_origins+'.mp4') + rec_process, camera=startrecording(camera, filmfolder+ '.videos/'+video_origins+'.mp4',bitrate, quality, profilelevel) starttime = time.time() os.system('ln -sfr '+filmfolder+'.videos/'+video_origins+'.mp4 '+foldername+filename+'.mp4') recording = True @@ -1463,7 +1466,7 @@ def main(): showmenu = 1 if onlysound != True: #camera.stop_recording() - stoprecording(camera, rec_process) + recprocess, camera = stoprecording(camera, rec_process) os.system('pkill arecord') soundlag=starttime-sound_start try: @@ -2104,9 +2107,6 @@ def main(): if oldscene != scene or oldshot != shot or oldtake != take or updatethumb == True: if recording == False: #logger.info('film:' + filmname + ' scene:' + str(scene) + '/' + str(scenes) + ' shot:' + str(shot) + '/' + str(shots) + ' take:' + str(take) + '/' + str(takes)) - foldername = filmfolder + filmname + '/' + 'scene' + str(scene).zfill(3) +'/shot' + str(shot).zfill(3) + '/' - filename = 'take' + str(take).zfill(3) - recordable = not os.path.isfile(foldername + filename + '.mp4') and not os.path.isfile(foldername + filename + '.h264') overlay = removeimage(camera, overlay) if menu[selected] == 'SCENE:' and recordable == False: # display first shot of scene if browsing scenes p = counttakes(filmname, filmfolder, scene, 1) @@ -6056,13 +6056,12 @@ def stopstream(camera, stream): stream = '' return stream -def startrecording(camera, takename): - global bitrate, quality, profilelevel +def startrecording(camera, takename,bitrate, quality, profilelevel): # 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', '-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, intra_period=5, bitrate = bitrate) - return rec_process + return rec_process, camera def stoprecording(camera, rec_process): camera.stop_recording() @@ -6071,6 +6070,7 @@ def stoprecording(camera, rec_process): rec_process.stdin.close() #rec_process.wait() print("Recording complete!") + return rec_process, camera #-------------Beeps-------------------