commit 375e8ef6c247fb9fb5bff978ef7a90cf90507acd
parent 14dc7d5d411981d1ec020d48ef5a2c3b064ea52f
Author: rbckman <rob@tarina.org>
Date: Wed, 26 Feb 2025 13:41:43 +0000
encoding done right, soon
Diffstat:
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/gonzopi.py b/gonzopi.py
@@ -543,7 +543,7 @@ def main():
pipe = subprocess.check_output('mediainfo --Inform="Video;%Duration%" ' + filename + '.mp4', shell=True)
videolenght = pipe.decode().strip()
videolenght=(int(videolenght)/1000)
- os.makedirs(blenddir)
+ os.makedirs(blenddir,exist_ok=True)
#videotrim(blenddir,filename,'end', videolenght)
os.system('cp '+filename+'.mp4 '+blenddir+blendmodes[blendselect]+'.mp4')
vumetermessage('blend done.')
@@ -1407,7 +1407,7 @@ def main():
os.system(gonzopifolder + '/alsa-utils-1.1.3/aplay/arecord -D hw:' + str(plughw) + ' -f '+soundformat+' -c ' + str(channels) + ' -r '+soundrate+' -vv '+ foldername + filename + '.wav &')
sound_start = time.time()
if onlysound != True:
- camera.start_recording(filmfolder+ '.videos/'+video_origins+'.h264', format='h264', bitrate = bitrate, level=profilelevel, quality=quality)
+ camera.start_recording(filmfolder+ '.videos/'+video_origins+'.h264', format='h264', bitrate = bitrate, level=profilelevel, quality=quality, intra_period=1)
starttime = time.time()
os.system('ln -sfr '+filmfolder+'.videos/'+video_origins+'.h264 '+foldername+filename+'.h264')
recording = True
@@ -3594,7 +3594,7 @@ def timelapse(beeps,camera,filmname,foldername,filename,between,duration,backlig
else:
run_command('aplay -D plughw:' + str(plughw) + ' '+ gonzopifolder + '/extras/beep.wav')
#camera.start_recording(foldername + 'timelapse/' + filename + '_' + str(n).zfill(3) + '.h264', format='h264', quality=26, bitrate=5000000)
- camera.start_recording(foldername + 'timelapse/' + filename + '_' + str(n).zfill(3) + '.h264', format='h264', bitrate=bitrate, level=profilelevel, quality=quality)
+ camera.start_recording(foldername + 'timelapse/' + filename + '_' + str(n).zfill(3) + '.h264', format='h264', bitrate=bitrate, level=profilelevel, quality=quality, intra_period=1)
if sound == True:
os.system(gonzopifolder+'/alsa-utils-1.1.3/aplay/arecord -D hw:'+str(plughw)+' -f '+soundformat+' -c '+str(channels)+' -r '+soundrate+' -vv '+foldername+'timelapse/'+filename+'_'+str(n).zfill(3)+'.wav &')
files.append(foldername + 'timelapse/' + filename + '_' + str(n).zfill(3))
@@ -4025,7 +4025,7 @@ def stretchaudio(filename,fps):
#-------------Compile Shot--------------
def compileshot(filename,filmfolder,filmname):
- global fps, soundrate, channels
+ global fps, soundrate, channels, bitrate
videolenght=0
audiolenght=0
@@ -4042,7 +4042,10 @@ def compileshot(filename,filmfolder,filmname):
os.system('rm ' + filename + '.mp4')
os.system('rm ' + video_origins + '.mp4')
print(filename+'.mp4 removed!')
- run_command('MP4Box -fps 25 -add ' + video_origins + '.h264 ' + video_origins + '.mp4')
+ #run_command('ffmpeg -fps 25 -add ' + video_origins + '.h264 ' + video_origins + '.mp4')
+ run_command('ffmpeg -fps 25 -add ' + video_origins + '.h264 ' + video_origins + '.mp4')
+ run_command('ffmpeg -i ' + video_origins + '.h264 -c:v h264_omx -profile:v high -level:v 4.2 -preset slower -bsf:v h264_metadata=level=4.2 -g 1 -b:v '+str(bitrate)+' '+ video_origins + '.mp4')
+ #run_command('ffmpeg -fflags +genpts -r 25 -i ' + video_origins + '.h264 -c:v h264_omx -profile:v high -level:v 4.2 -preset slower -bsf:v h264_metadata=level=4.2 -g 1 ' + video_origins + '.mp4')
os.system('ln -sfr '+video_origins+'.mp4 '+filename+'.mp4')
if not os.path.isfile(filename + '.wav'):
audiosilence(filename)
@@ -4225,7 +4228,7 @@ def scenefiles(filmfolder, filmname):
#-------------Render Shot-------------
def rendershot(filmfolder, filmname, renderfilename, scene, shot):
- global fps, take, rendermenu, updatethumb
+ global fps, take, rendermenu, updatethumb, bitrate
#This function checks and calls rendervideo & renderaudio if something has changed in the film
#Video
if os.path.exists(renderfilename+'.wav') == False:
@@ -4307,11 +4310,13 @@ def rendershot(filmfolder, filmname, renderfilename, scene, shot):
###---------BLEND----------
if os.path.isfile(scenedir+'blend/'+blendmodes[blendselect]+'.mp4') == True:
#compileshot(scenedir+'blend/'+blendmodes[blendselect]+'.h264',filmfolder,filmname)
- run_command('ffmpeg -y -i '+renderfilename+'.mp4 -i '+scenedir+'blend/'+blendmodes[blendselect]+'.mp4 -filter_complex "blend="'+blendmodes[blendselect]+' /dev/shm/blend.mp4')
+ call(['MP4Box', '-rem', '2', scenedir+'blend/'+blendmodes[blendselect] + '.mp4'], shell=False)
+ run_command('ffmpeg -y -i '+renderfilename+'.mp4 -i '+scenedir+'blend/'+blendmodes[blendselect]+'.mp4 -c:v h264_omx -b:v '+str(bitrate)+' -filter_complex -c:a copy "blend="'+blendmodes[blendselect]+' /dev/shm/blend.mp4')
screen_filename = scenedir+'take' + str(counttakes2(scenedir)+1).zfill(3)
run_command('cp ' + renderfilename + '.wav ' + screen_filename + '.wav')
run_command('cp /dev/shm/blend.mp4 '+screen_filename+'.mp4')
run_command('rm /dev/shm/blend.mp4')
+ run_command('rm '+scenedir+'blend/'+blendmodes[blendselect]+'.mp4')
run_command('ffmpeg -y -sseof -1 -i ' + screen_filename + '.mp4 -update 1 -q:v 1 -vf scale=800:450 ' + screen_filename + '.jpeg')
#ffmpeg -i blendtest.mp4 -i blendtest3.mp4 -filter_complex "blend=screen" output2.mp4
newaudiomix = True