commit 1e0f3c0fab335d1ed2c1ae3e0df5da61c57bcf72
parent efee549d9b6682baeb86c758b72c27cbfae45beb
Author: rbckman <rob@tarina.org>
Date: Tue, 8 Apr 2025 15:03:11 +0300
muxing on demand, also html5 player sees mp4 audio track and disables wav file playback then
Diffstat:
M | gonzopi.py | | | 274 | ++++++++++++++++++++++++++++++++++++++++++------------------------------------- |
1 file changed, 145 insertions(+), 129 deletions(-)
diff --git a/gonzopi.py b/gonzopi.py
@@ -123,7 +123,7 @@ else:
#MAIN
def main():
- global headphoneslevel, miclevel, gonzopifolder, screen, loadfilmsettings, plughw, channels, filmfolder, scene, showmenu, rendermenu, quality, profilelevel, i2cbuttons, menudone, soundrate, soundformat, process, serverstate, que, port, recording, onlysound, camera_model, fps_selection, fps_selected, fps, db, selected, cammode, newfilmname, camera_recording, abc, showhelp, camera, overlay, overlay2, recordwithports, crossfade, blendmodes, blendselect, udp_ip, udp_port, bitrate, pan, tilt, move, speed, slidereader,slide,smooth
+ global headphoneslevel, miclevel, gonzopifolder, screen, loadfilmsettings, plughw, channels, filmfolder, scene, showmenu, rendermenu, quality, profilelevel, i2cbuttons, menudone, soundrate, soundformat, process, serverstate, que, port, recording, onlysound, camera_model, fps_selection, fps_selected, fps, db, selected, cammode, newfilmname, camera_recording, abc, showhelp, camera, overlay, overlay2, recordwithports, crossfade, blendmodes, blendselect, udp_ip, udp_port, bitrate, pan, tilt, move, speed, slidereader,slide,smooth, muxing
# Get path of the current dir, then use it as working directory:
rundir = os.path.dirname(__file__)
if rundir != '':
@@ -136,7 +136,7 @@ def main():
if slidecommander:
standardmenu = 'DSK:', 'FILM:', 'SCENE:', 'SHOT:', 'TAKE:', '', 'SHUTTER:', 'ISO:', 'RED:', 'BLUE:', 'FPS:', 'Q:', 'BRIGHT:', 'CONT:', 'SAT:', 'VFX:', 'FLIP:', 'BEEP:', 'LENGTH:', 'HW:', 'CH:', 'MIC:', 'PHONES:', 'COMP:', 'TIMELAPSE', 'BLEND:', 'MODE:', 'SHUTDOWN', 'SRV:', 'SEARCH:', 'WIFI:', 'UPDATE', 'UPLOAD', 'BACKUP', 'LOAD', 'NEW', 'TITLE', 'LIVE:', 'SLIDE:'
else:
- standardmenu = 'DSK:', 'FILM:', 'SCENE:', 'SHOT:', 'TAKE:', '', 'SHUTTER:', 'ISO:', 'RED:', 'BLUE:', 'FPS:', 'Q:', 'BRIGHT:', 'CONT:', 'SAT:', 'VFX:', 'FLIP:', 'BEEP:', 'LENGTH:', 'HW:', 'CH:', 'MIC:', 'PHONES:', 'COMP:', 'TIMELAPSE', 'BLEND:', 'MODE:', 'SHUTDOWN', 'SRV:', 'SEARCH:', 'WIFI:', 'UPDATE', 'UPLOAD', 'BACKUP', 'LOAD', 'NEW', 'TITLE', 'LIVE:'
+ standardmenu = 'DSK:', 'FILM:', 'SCENE:', 'SHOT:', 'TAKE:', '', 'SHUTTER:', 'ISO:', 'RED:', 'BLUE:', 'FPS:', 'Q:', 'BRIGHT:', 'CONT:', 'SAT:', 'VFX:', 'FLIP:', 'BEEP:', 'LENGTH:', 'HW:', 'CH:', 'MIC:', 'PHONES:', 'COMP:', 'TIMELAPSE', 'BLEND:', 'MODE:', 'SHUTDOWN', 'SRV:', 'SEARCH:', 'WIFI:', 'UPDATE', 'UPLOAD', 'BACKUP', 'LOAD', 'NEW', 'TITLE', 'LIVE:', 'MUX:'
gonzopictrlmenu = 'DSK:', 'FILM:', 'SCENE:', 'SHOT:', 'TAKE:', '', 'SHUTTER:', 'ISO:', 'RED:', 'BLUE:', 'FPS:', 'Q:', 'BRIGHT:', 'CONT:', 'SAT:', 'VFX:', 'FLIP:', 'BEEP:', 'LENGTH:', 'HW:', 'CH:', 'MIC:', 'PHONES:', 'COMP:', 'TIMELAPSE', 'BLEND:', 'MODE:', 'SHUTDOWN', 'SRV:', 'SEARCH:', 'WIFI:', 'CAMERA:', 'Add CAMERA', 'New FILM', 'New SCENE', 'Sync SCENE'
#gonzopictrlmenu = "BACK","CAMERA:", "Add CAMERA","New FILM","","New SCENE","Sync SCENE","Snapshot"
emptymenu='','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','',''
@@ -241,6 +241,8 @@ def main():
gonzopivername = f.readline()
db=''
synclist=[]
+ muxing=False
+ mux='no'
if rpimode:
#START INTERFACE
@@ -460,7 +462,7 @@ def main():
#Check if rendered video exist
camera.stop_preview()
#renderfilename, newaudiomix = renderscene(filmfolder, filmname, scene)
- renderfilename = renderfilm(filmfolder, filmname, comp, scene, True)
+ renderfilename = renderfilm(filmfolder, filmname, comp, scene)
if renderfilename != '':
remove_shots = playdub(filmname,renderfilename, 'film')
#fastedit (maybe deploy sometime)
@@ -487,7 +489,7 @@ def main():
if len(filmfiles) > 0:
camera.stop_preview()
#removeimage(camera, overlay)
- renderfilename = renderfilm(filmfolder, filmname, comp, 0, True)
+ renderfilename = renderfilm(filmfolder, filmname, comp, 0)
if renderfilename != '':
remove_shots = playdub(filmname,renderfilename, 'film')
#overlay = displayimage(camera, imagename, overlay, 3)
@@ -618,7 +620,7 @@ def main():
newdub = clipsettings(filmfolder, filmname, 0, 0, take, plughw)
if newdub:
camera.stop_preview()
- renderfilename = renderfilm(filmfolder, filmname, comp, 0, False)
+ renderfilename = renderfilm(filmfolder, filmname, comp, 0)
playdub(filmname,renderfilename, 'dub')
run_command('sox -V0 -G /dev/shm/dub.wav -c 2 ' + newdub)
vumetermessage('new film dubbing made!')
@@ -636,7 +638,7 @@ def main():
if webz_on() == True:
filmfiles = viewfilm(filmfolder, filmname)
if len(filmfiles) > 0:
- renderfilename = renderfilm(filmfolder, filmname, comp, 0, True)
+ renderfilename = renderfilm(filmfolder, filmname, comp, 0)
cmd = uploadfilm(renderfilename, filmname)
if cmd != None:
stopinterface(camera)
@@ -1763,6 +1765,13 @@ def main():
if serverstate == 'on':
gonzopiserver(False)
gonzopiserver(True)
+ elif menu[selected] == 'MUX:':
+ if muxing == False:
+ muxing=True
+ mux='yes'
+ else:
+ muxing=False
+ mux='no'
#LEFT
elif pressed == 'left':
@@ -1966,6 +1975,14 @@ def main():
if serverstate == 'on':
gonzopiserver(False)
gonzopiserver(True)
+ elif menu[selected] == 'MUX:':
+ if muxing == False:
+ muxing=True
+ mux='yes'
+ else:
+ muxing=False
+ mux='no'
+
#RIGHT
elif pressed == 'right':
if selected < len(menu) - 1:
@@ -2131,7 +2148,7 @@ def main():
lastmenu = menu[selected]
if showgonzopictrl == False:
menu = standardmenu
- settings = storagedrives[dsk][0]+' '+diskleft, filmname, str(scene) + '/' + str(scenes), str(shot) + '/' + str(shots), str(take) + '/' + str(takes), rectime, camerashutter, cameraiso, camerared, camerablue, str(round(camera.framerate)), str(quality), str(camera.brightness), str(camera.contrast), str(camera.saturation), effects[effectselected], str(flip), str(beeps), str(round(reclength,2)), str(plughw), str(channels), str(miclevel), str(headphoneslevel), str(comp), '',blendmodes[blendselect], cammode, '', serverstate, searchforcameras, wifistate, '', '', '', '', '', '', live, str(slide)
+ settings = storagedrives[dsk][0]+' '+diskleft, filmname, str(scene) + '/' + str(scenes), str(shot) + '/' + str(shots), str(take) + '/' + str(takes), rectime, camerashutter, cameraiso, camerared, camerablue, str(round(camera.framerate)), str(quality), str(camera.brightness), str(camera.contrast), str(camera.saturation), effects[effectselected], str(flip), str(beeps), str(round(reclength,2)), str(plughw), str(channels), str(miclevel), str(headphoneslevel), str(comp), '',blendmodes[blendselect], cammode, '', serverstate, searchforcameras, wifistate, '', '', '', '', '', '', live, mux, str(slide)
else:
#gonzopictrlmenu = 'FILM:', 'SCENE:', 'SHOT:', 'TAKE:', '', 'SHUTTER:', 'ISO:', 'RED:', 'BLUE:', 'FPS:', 'Q:', 'BRIGHT:', 'CONT:', 'SAT:', 'FLIP:', 'BEEP:', 'LENGTH:', 'HW:', 'CH:', 'MIC:', 'PHONES:', 'COMP:', 'TIMELAPSE', 'BLEND:', 'FADE:', 'L:', 'MODE:', 'DSK:', 'SHUTDOWN', 'SRV:', 'SEARCH:', 'WIFI:', 'CAMERA:', 'Add CAMERA', 'New FILM', 'Sync FILM', 'Sync SCENE'
menu = gonzopictrlmenu
@@ -4151,7 +4168,7 @@ def get_audio_length(filepath):
#-------------Compile Shot--------------
def compileshot(filename,filmfolder,filmname):
- global fps, soundrate, channels, bitrate
+ global fps, soundrate, channels, bitrate, muxing
videolength=0
audiolength=0
@@ -4197,36 +4214,36 @@ def compileshot(filename,filmfolder,filmname):
if int(audiolength) != int(videolength):
audiosync, videolength, audiolength = audiotrim(filename, 'end','')
#db.update('videos', where='filename="'+video_origins+'"', videolength=videolength/1000, audiolength=audiolength/1000, audiosync=audiosync)
- muxing = False
- if muxing == True:
- #muxing mp3 layer to mp4 file
- #count estimated audio filesize with a bitrate of 320 kb/s
- audiosize = countsize(filename + '.wav') * 0.453
- p = Popen(['ffmpeg', '-y', '-i', filename + '.wav', '-acodec', 'libmp3lame', '-ac', '2', '-b:a', '320k', filename + '.mp3'])
- while p.poll() is None:
- time.sleep(0.2)
- try:
- rendersize = countsize(filename + '.mp3')
- except:
- continue
- writemessage('audio rendering ' + str(int(rendersize)) + ' of ' + str(int(audiosize)) + ' kb done')
- ##MERGE AUDIO & VIDEO
- writemessage('Merging audio & video')
- #os.remove(renderfilename + '.mp4')
- call(['MP4Box', '-rem', '2', video_origins + '.mp4'], shell=False)
- call(['MP4Box', '-fps', '25', '-add', video_origins + '.mp4', '-add', filename + '.mp3', '-new', video_origins + '_tmp.mp4'], shell=False)
- os.system('cp -f ' + video_origins + '_tmp.mp4 ' + video_origins + '.mp4')
- os.remove(video_origins + '_tmp.mp4')
- os.remove(filename + '.mp3')
- #origin=os.path.realpath(filename+'.mp4')
- #os.system('rm ' + video_origins + '.h264')
- #os.system('rm ' + filename + '.h264')
- os.system('rm /dev/shm/temp.wav')
- os.system('ln -sfr '+video_origins+'.mp4 '+filename+'.mp4')
- logger.info('compile done!')
- #run_command('omxplayer --layer 3 ' + filmfolder + '/.rendered/' + filename + '.mp4 &')
- #time.sleep(0.8)
- #run_command('aplay ' + foldername + filename + '.wav')
+ mux=False
+ if mux == True:
+ #muxing mp3 layer to mp4 file
+ #count estimated audio filesize with a bitrate of 320 kb/s
+ audiosize = countsize(filename + '.wav') * 0.453
+ p = Popen(['ffmpeg', '-y', '-i', filename + '.wav', '-acodec', 'libmp3lame', '-ac', '2', '-b:a', '320k', filename + '.mp3'])
+ while p.poll() is None:
+ time.sleep(0.2)
+ try:
+ rendersize = countsize(filename + '.mp3')
+ except:
+ continue
+ writemessage('audio rendering ' + str(int(rendersize)) + ' of ' + str(int(audiosize)) + ' kb done')
+ ##MERGE AUDIO & VIDEO
+ writemessage('Merging audio & video')
+ #os.remove(renderfilename + '.mp4')
+ call(['MP4Box', '-rem', '2', video_origins + '.mp4'], shell=False)
+ call(['MP4Box', '-fps', '25', '-add', video_origins + '.mp4', '-add', filename + '.mp3', '-new', video_origins + '_tmp.mp4'], shell=False)
+ os.system('cp -f ' + video_origins + '_tmp.mp4 ' + video_origins + '.mp4')
+ os.remove(video_origins + '_tmp.mp4')
+ os.remove(filename + '.mp3')
+ #origin=os.path.realpath(filename+'.mp4')
+ #os.system('rm ' + video_origins + '.h264')
+ #os.system('rm ' + filename + '.h264')
+ os.system('rm /dev/shm/temp.wav')
+ #os.system('ln -sfr '+video_origins+'.mp4 '+filename+'.mp4')
+ logger.info('compile done!')
+ #run_command('omxplayer --layer 3 ' + filmfolder + '/.rendered/' + filename + '.mp4 &')
+ #time.sleep(0.8)
+ #run_command('aplay ' + foldername + filename + '.wav')
return
#-------------Get shot files--------------
@@ -4374,7 +4391,7 @@ def scenefiles(filmfolder, filmname):
#-------------Render Shot-------------
def rendershot(filmfolder, filmname, renderfilename, scene, shot):
- global fps, take, rendermenu, updatethumb, bitrate
+ global fps, take, rendermenu, updatethumb, bitrate, muxing
#This function checks and calls rendervideo & renderaudio if something has changed in the film
#Video
if os.path.exists(renderfilename+'.wav') == False:
@@ -4540,37 +4557,36 @@ def rendershot(filmfolder, filmname, renderfilename, scene, shot):
os.system('cp ' + scenedir + '/dub/.settings' + str(i + 1).zfill(3) + ' ' + scenedir + '/dub/.rendered' + str(i + 1).zfill(3))
print('Audio rendered!')
newaudiomix = True
- muxing = False
- if muxing == True:
- #muxing mp3 layer to mp4 file
- #count estimated audio filesize with a bitrate of 320 kb/s
- audiosize = countsize(renderfilename + '.wav') * 0.453
- p = Popen(['ffmpeg', '-y', '-i', renderfilename + '.wav', '-acodec', 'libmp3lame', '-ac', '2', '-b:a', '320k', renderfilename + '.mp3'])
- while p.poll() is None:
- time.sleep(0.2)
- try:
- rendersize = countsize(renderfilename + '.mp3')
- except:
- continue
- writemessage('audio rendering ' + str(int(rendersize)) + ' of ' + str(int(audiosize)) + ' kb done')
- ##MERGE AUDIO & VIDEO
- writemessage('Merging audio & video')
- #os.remove(renderfilename + '.mp4')
- call(['MP4Box', '-rem', '2', video_origins + '.mp4'], shell=False)
- call(['MP4Box', '-fps', '25', '-add', video_origins + '.mp4', '-add', renderfilename + '.mp3', '-new', video_origins + '_tmp.mp4'], shell=False)
- os.system('cp -f ' + video_origins + '_tmp.mp4 ' + video_origins + '.mp4')
- try:
- os.remove(video_origins + '_tmp.mp4')
- os.remove(renderfilename + '.mp3')
- except:
- print('nothing to remove')
- #origin=os.path.realpath(renderfilename+'.mp4')
- #os.system('rm ' + filename + '.h264')
- #os.system('rm /dev/shm/temp.wav')
- #os.system('ln -sfr '+video_origins+'.mp4 '+filename+'.mp4')
logger.info('compile done!')
else:
print('Already rendered!')
+ if muxing == True:
+ #muxing mp3 layer to mp4 file
+ #count estimated audio filesize with a bitrate of 320 kb/s
+ audiosize = countsize(renderfilename + '.wav') * 0.453
+ p = Popen(['ffmpeg', '-y', '-i', renderfilename + '.wav', '-acodec', 'libmp3lame', '-ac', '2', '-b:a', '320k', renderfilename + '.mp3'])
+ while p.poll() is None:
+ time.sleep(0.2)
+ try:
+ rendersize = countsize(renderfilename + '.mp3')
+ except:
+ continue
+ writemessage('audio rendering ' + str(int(rendersize)) + ' of ' + str(int(audiosize)) + ' kb done')
+ ##MERGE AUDIO & VIDEO
+ writemessage('Merging audio & video')
+ #os.remove(renderfilename + '.mp4')
+ call(['MP4Box', '-rem', '2', video_origins + '.mp4'], shell=False)
+ call(['MP4Box', '-fps', '25', '-add', video_origins + '.mp4', '-add', renderfilename + '.mp3', '-new', video_origins + '_tmp.mp4'], shell=False)
+ os.system('cp -f ' + video_origins + '_tmp.mp4 ' + video_origins + '.mp4')
+ try:
+ os.remove(video_origins + '_tmp.mp4')
+ os.remove(renderfilename + '.mp3')
+ except:
+ print('nothing to remove')
+ #origin=os.path.realpath(renderfilename+'.mp4')
+ #os.system('rm ' + filename + '.h264')
+ #os.system('rm /dev/shm/temp.wav')
+ #os.system('ln -sfr '+video_origins+'.mp4 '+filename+'.mp4')
status=renderfilename,newaudiomix
q.put(status)
q = mp.Queue()
@@ -4604,7 +4620,7 @@ def rendershot(filmfolder, filmname, renderfilename, scene, shot):
#-------------Render Scene-------------
def renderscene(filmfolder, filmname, scene):
- global fps
+ global fps, muxing
#This function checks and calls rendervideo & renderaudio if something has changed in the film
#Video
videohash = ''
@@ -4703,47 +4719,47 @@ def renderscene(filmfolder, filmname, scene):
os.system('cp ' + scenedir + '/dub/.settings' + str(i + 1).zfill(3) + ' ' + scenedir + '/dub/.rendered' + str(i + 1).zfill(3))
print('Audio rendered!')
newaudiomix = True
- muxing = False
- if muxing == True:
- #muxing mp3 layer to mp4 file
- #count estimated audio filesize with a bitrate of 320 kb/s
- try:
- audiosize = countsize(renderfilename + '.wav') * 0.453
- except:
- print('noothing here')
- #os.system('mv ' + renderfilename + '.mp4 ' + renderfilename + '_tmp.mp4')
- if debianversion == 'stretch':
- p = Popen(['avconv', '-y', '-i', renderfilename + '.wav', '-acodec', 'libmp3lame', '-ac', '2', '-b:a', '320k', renderfilename + '.mp3'])
- else:
- p = Popen(['ffmpeg', '-y', '-i', renderfilename + '.wav', '-acodec', 'libmp3lame', '-ac', '2', '-b:a', '320k', renderfilename + '.mp3'])
- while p.poll() is None:
- time.sleep(0.02)
- try:
- rendersize = countsize(renderfilename + '.mp3')
- except:
- continue
- writemessage('audio rendering ' + str(int(rendersize)) + ' of ' + str(int(audiosize)) + ' kb done')
- ##MERGE AUDIO & VIDEO
- writemessage('Merging audio & video')
- #os.remove(renderfilename + '.mp4')
- call(['MP4Box', '-rem', '2', renderfilename + '.mp4'], shell=False)
- #call(['MP4Box', '-inter', '40', '-v', renderfilename + '.mp4'], shell=False)
- #call(['MP4Box', '-add', renderfilename + '.mp4', '-add', renderfilename + '.mp3', '-new', renderfilename + '_tmp.mp4'], shell=False)
- #call(['ffmpeg', '-i', renderfilename + '_tmp.mp4', '-r', '25', '-fflags', '+genpts+igndts', '-vsync', '1', '-c:v', 'copy', '-c:a', 'copy', '-movflags', 'faststart', renderfilename+'.mp4', '-y'], shell=False)
- os.remove(renderfilename + '_tmp.mp4')
- os.remove(renderfilename + '.mp3')
os.system('mv ' + renderfilename + '.mp4 ' + renderfilename + '_tmp.mp4')
call(['ffmpeg', '-i', renderfilename + '_tmp.mp4', '-r', '25', '-fflags', '+genpts+igndts', '-vsync', '1', '-c:v', 'copy', '-c:a', 'copy', '-movflags', 'faststart', renderfilename+'.mp4', '-y'], shell=False)
-
+ os.remove(renderfilename + '_tmp.mp4')
else:
print('Already rendered!')
+ if muxing == True:
+ #muxing mp3 layer to mp4 file
+ #count estimated audio filesize with a bitrate of 320 kb/s
+ try:
+ audiosize = countsize(renderfilename + '.wav') * 0.453
+ except:
+ print('noothing here')
+ os.system('mv ' + renderfilename + '.mp4 ' + renderfilename + '_tmp.mp4')
+ if debianversion == 'stretch':
+ p = Popen(['avconv', '-y', '-i', renderfilename + '.wav', '-acodec', 'libmp3lame', '-ac', '2', '-b:a', '320k', renderfilename + '.mp3'])
+ else:
+ p = Popen(['ffmpeg', '-y', '-i', renderfilename + '.wav', '-acodec', 'libmp3lame', '-ac', '2', '-b:a', '320k', renderfilename + '.mp3'])
+ while p.poll() is None:
+ time.sleep(0.02)
+ try:
+ rendersize = countsize(renderfilename + '.mp3')
+ except:
+ continue
+ writemessage('audio rendering ' + str(int(rendersize)) + ' of ' + str(int(audiosize)) + ' kb done')
+ ##MERGE AUDIO & VIDEO
+ writemessage('Merging audio & video')
+ #os.remove(renderfilename + '.mp4')
+ call(['MP4Box', '-rem', '2', renderfilename + '_tmp.mp4'], shell=False)
+ #call(['MP4Box', '-inter', '40', '-v', renderfilename + '.mp4'], shell=False)
+ call(['MP4Box', '-add', renderfilename + '_tmp.mp4', '-add', renderfilename + '.mp3', '-new', renderfilename + '.mp4'], shell=False)
+ #call(['ffmpeg', '-i', renderfilename + '_tmp.mp4', '-r', '25', '-fflags', '+genpts+igndts', '-vsync', '1', '-c:v', 'copy', '-c:a', 'copy', '-movflags', 'faststart', renderfilename+'.mp4', '-y'], shell=False)
+ os.remove(renderfilename + '_tmp.mp4')
+ os.remove(renderfilename + '.mp3')
return renderfilename, newaudiomix
#-------------Render film------------
-def renderfilm(filmfolder, filmname, comp, scene, muxing):
- global fps
- def render(q, filmfolder, filmname, comp, scene, muxing):
+def renderfilm(filmfolder, filmname, comp, scene):
+ global fps, muxing
+ def render(q, filmfolder, filmname, comp, scene):
+ global fps, muxing
newaudiomix = False
#if comp == 1:
# newaudiomix = True
@@ -4820,37 +4836,37 @@ def renderfilm(filmfolder, filmname, comp, scene, muxing):
#run_command('sox ' + renderfilename + '_tmp.wav ' + renderfilename + '.wav compand 0.3,1 6:-70,-60,-20 -5 -90 0.2')
run_command('sox ' + renderfilename + '_tmp.wav ' + renderfilename + '.wav compand 0.0,1 6:-70,-43,-20 -6 -90 0.1')
os.remove(renderfilename + '_tmp.wav')
- muxing = False
- if muxing == True:
- #muxing mp3 layer to mp4 file
- #count estimated audio filesize with a bitrate of 320 kb/s
- audiosize = countsize(renderfilename + '.wav') * 0.453
- #os.system('mv ' + renderfilename + '.mp4 ' + renderfilename + '_tmp.mp4')
- if debianversion == 'stretch':
- p = Popen(['avconv', '-y', '-i', renderfilename + '.wav', '-acodec', 'libmp3lame', '-ac', '2', '-b:a', '320k', renderfilename + '.mp3'])
- else:
- p = Popen(['ffmpeg', '-y', '-i', renderfilename + '.wav', '-acodec', 'libmp3lame', '-ac', '2', '-b:a', '320k', renderfilename + '.mp3'])
- while p.poll() is None:
- time.sleep(0.02)
- try:
- rendersize = countsize(renderfilename + '.mp3')
- except:
- continue
- writemessage('audio rendering ' + str(int(rendersize)) + ' of ' + str(int(audiosize)) + ' kb done')
- ##MERGE AUDIO & VIDEO
- writemessage('Merging audio & video')
- #os.remove(renderfilename + '.mp4')
- call(['MP4Box', '-rem', '2', renderfilename + '.mp4'], shell=False)
- #call(['MP4Box', '-inter', '40', '-v', renderfilename + '_tmp.mp4'], shell=False)
- call(['ffmpeg', '-i', renderfilename + '_tmp.mp4', '-c', 'copy', '-movflags', 'faststart', renderfilename+'.mp4', '-y'], shell=False)
- call(['MP4Box', '-add', renderfilename + '.mp4', '-add', renderfilename + '.mp3', '-new', renderfilename + '_tmp.mp4'], shell=False)
- os.remove(renderfilename + '_tmp.mp4')
- os.remove(renderfilename + '.mp3')
else:
print('Already rendered!')
+ #muxing = False
+ if muxing == True:
+ #muxing mp3 layer to mp4 file
+ #count estimated audio filesize with a bitrate of 320 kb/s
+ audiosize = countsize(renderfilename + '.wav') * 0.453
+ os.system('mv ' + renderfilename + '.mp4 ' + renderfilename + '_tmp.mp4')
+ if debianversion == 'stretch':
+ p = Popen(['avconv', '-y', '-i', renderfilename + '.wav', '-acodec', 'libmp3lame', '-ac', '2', '-b:a', '320k', renderfilename + '.mp3'])
+ else:
+ p = Popen(['ffmpeg', '-y', '-i', renderfilename + '.wav', '-acodec', 'libmp3lame', '-ac', '2', '-b:a', '320k', renderfilename + '.mp3'])
+ while p.poll() is None:
+ time.sleep(0.02)
+ try:
+ rendersize = countsize(renderfilename + '.mp3')
+ except:
+ continue
+ writemessage('audio rendering ' + str(int(rendersize)) + ' of ' + str(int(audiosize)) + ' kb done')
+ ##MERGE AUDIO & VIDEO
+ writemessage('Merging audio & video')
+ #os.remove(renderfilename + '.mp4')
+ call(['MP4Box', '-rem', '2', renderfilename + '_tmp.mp4'], shell=False)
+ #call(['MP4Box', '-inter', '40', '-v', renderfilename + '_tmp.mp4'], shell=False)
+ #call(['ffmpeg', '-i', renderfilename + '_tmp.mp4', '-c', 'copy', '-movflags', 'faststart', renderfilename+'.mp4', '-y'], shell=False)
+ call(['MP4Box', '-add', renderfilename + '_tmp.mp4', '-add', renderfilename + '.mp3', '-new', renderfilename + '.mp4'], shell=False)
+ os.remove(renderfilename + '_tmp.mp4')
+ os.remove(renderfilename + '.mp3')
q.put(renderfilename)
q = mp.Queue()
- proc = mp.Process(target=render, args=(q,filmfolder,filmname,comp,scene,muxing))
+ proc = mp.Process(target=render, args=(q,filmfolder,filmname,comp,scene))
proc.start()
procdone = False
status = ''
@@ -5118,7 +5134,7 @@ def clipsettings(filmfolder, filmname, scene, shot, take, plughw):
filename = filmfolder + filmname + '/scene' + str(scene).zfill(3) +'/scene'
else:
filename = filmfolder + filmname + '/' + filmname
- renderfilename = renderfilm(filmfolder, filmname, 0, scene, False)
+ renderfilename = renderfilm(filmfolder, filmname, 0, scene)
playdub(filmname,renderfilename, 'scene')
time.sleep(0.05)
#Save dubmix before returning