diff --git a/nzbtomedia/__init__.py b/nzbtomedia/__init__.py index 6e1dea07..cd4532e1 100644 --- a/nzbtomedia/__init__.py +++ b/nzbtomedia/__init__.py @@ -372,82 +372,82 @@ def initialize(section=None): 'iPad':{ 'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None, 'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'], - 'ACODEC':'libfaac','ACODEC_ALLOW':['libfaac'],'ABITRATE':None, + 'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':None, 'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACODEC3':None,'ACODEC3_ALLOW':[],'ABITRATE3':None, - 'SCODEC':None + 'SCODEC':'mov_text' }, 'iPad-1080p':{ 'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None, 'VRESOLUTION':'1920:1080','VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'], - 'ACODEC':'libfaac','ACODEC_ALLOW':['libfaac'],'ABITRATE':None, + 'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':None, 'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACODEC3':None,'ACODEC3_ALLOW':[],'ABITRATE3':None, - 'SCODEC':None + 'SCODEC':'mov_text' }, 'iPad-720p':{ 'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None, 'VRESOLUTION':'1280:720','VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'], - 'ACODEC':'libfaac','ACODEC_ALLOW':['libfaac'],'ABITRATE':None, + 'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':None, 'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACODEC3':None,'ACODEC3_ALLOW':[],'ABITRATE3':None, - 'SCODEC':None + 'SCODEC':'mov_text' }, 'Apple-TV':{ 'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None, 'VRESOLUTION':'1280:720','VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'], 'ACODEC':'ac3','ACODEC_ALLOW':['ac3'],'ABITRATE':None, - 'ACODEC2':'libfaac','ACODEC2_ALLOW':['libfaac'],'ABITRATE2':None, + 'ACODEC2':'aac','ACODEC2_ALLOW':['libfaac'],'ABITRATE2':None, 'ACODEC3':None,'ACODEC3_ALLOW':[],'ABITRATE3':None, - 'SCODEC':None + 'SCODEC':'mov_text' }, 'iPod':{ 'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None, 'VRESOLUTION':'1280:720','VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'], - 'ACODEC':'libfaac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, + 'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, 'ACODEC2':None,'ACODEC2_ALLOW':[],'ABITRATE2':None, 'ACODEC3':None,'ACODEC3_ALLOW':[],'ABITRATE3':None, - 'SCODEC':None + 'SCODEC':'mov_text' }, 'iPhone':{ 'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None, 'VRESOLUTION':'460:320','VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'], - 'ACODEC':'libfaac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, + 'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, 'ACODEC2':None,'ACODEC2_ALLOW':[],'ABITRATE2':None, 'ACODEC3':None,'ACODEC3_ALLOW':[],'ABITRATE3':None, - 'SCODEC':None + 'SCODEC':'mov_text' }, 'PS3':{ 'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None, 'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'], 'ACODEC':'ac3','ACODEC_ALLOW':['ac3'],'ABITRATE':None, - 'ACODEC2':'libfaac','ACODEC2_ALLOW':['libfaac'],'ABITRATE2':None, + 'ACODEC2':'aac','ACODEC2_ALLOW':['libfaac'],'ABITRATE2':None, 'ACODEC3':None,'ACODEC3_ALLOW':[],'ABITRATE3':None, - 'SCODEC':None + 'SCODEC':'mov_text' }, 'Roku-480p':{ 'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None, 'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'], - 'ACODEC':'libfaac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, + 'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, 'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACODEC3':None,'ACODEC3_ALLOW':[],'ABITRATE3':None, - 'SCODEC':None + 'SCODEC':'mov_text' }, 'Roku-720p':{ 'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None, 'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'], - 'ACODEC':'libfaac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, + 'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, 'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACODEC3':None,'ACODEC3_ALLOW':[],'ABITRATE3':None, - 'SCODEC':None + 'SCODEC':'mov_text' }, 'Roku-1080p':{ 'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None, 'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'], - 'ACODEC':'libfaac','ACODEC_ALLOW':['libfaac'],'ABITRATE':160000, + 'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':160000, 'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACODEC3':None,'ACODEC3_ALLOW':[],'ABITRATE3':None, - 'SCODEC':None + 'SCODEC':'mov_text' } } if DEFAULTS and DEFAULTS in transcode_defaults: diff --git a/nzbtomedia/transcoder/transcoder.py b/nzbtomedia/transcoder/transcoder.py index dd998d46..b3f3ce72 100644 --- a/nzbtomedia/transcoder/transcoder.py +++ b/nzbtomedia/transcoder/transcoder.py @@ -121,7 +121,10 @@ def buildCommands(file, newDir): width = video["width"] height = video["height"] scale = nzbtomedia.VRESOLUTION - framerate = float(fr.split('/')[0])/float(fr.split('/')[1]) + try: + framerate = float(fr.split('/')[0])/float(fr.split('/')[1]) + except: + framerate = 0 vid_cmds = [] if codec in nzbtomedia.VCODEC_ALLOW: video_cmd.extend(['-c:v', 'copy']) @@ -163,6 +166,8 @@ def buildCommands(file, newDir): map_cmd.extend(['-map', '0:' + str(audio1[0]["index"])]) a_mapped.extend([audio1[0]["index"]]) audio_cmd.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC]) + if nzbtomedia.ACODEC == 'aac': + audio_cmd.extend(['-strict', '-2']) if nzbtomedia.ABITRATE: audio_cmd.extend(['-b:a:' + str(used_audio), str(nzbtomedia.ABITRATE)]) if nzbtomedia.OUTPUTQUALITYPERCENT: @@ -171,6 +176,8 @@ def buildCommands(file, newDir): map_cmd.extend(['-map', '0:' + str(audio3[0]["index"])]) a_mapped.extend([audio3[0]["index"]]) audio_cmd.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC]) + if nzbtomedia.ACODEC == 'aac': + audio_cmd.extend(['-strict', '-2']) if nzbtomedia.ABITRATE: audio_cmd.extend(['-b:a:' + str(used_audio), str(nzbtomedia.ABITRATE)]) if nzbtomedia.OUTPUTQUALITYPERCENT: @@ -192,6 +199,8 @@ def buildCommands(file, newDir): map_cmd.extend(['-map', '0:' + str(audio1[0]["index"])]) a_mapped.extend([audio1[0]["index"]]) audio_cmd.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC2]) + if nzbtomedia.ACODEC2 == 'aac': + audio_cmd.extend(['-strict', '-2']) if nzbtomedia.ABITRATE2: audio_cmd.extend(['-b:a:' + str(used_audio), str(nzbtomedia.ABITRATE2)]) if nzbtomedia.OUTPUTQUALITYPERCENT: @@ -200,12 +209,14 @@ def buildCommands(file, newDir): map_cmd.extend(['-map', '0:' + str(audio3[0]["index"])]) a_mapped.extend([audio3[0]["index"]]) audio_cmd.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC2]) + if nzbtomedia.ACODEC2 == 'aac': + audio_cmd.extend(['-strict', '-2']) if nzbtomedia.ABITRATE2: audio_cmd.extend(['-b:a:' + str(used_audio), str(nzbtomedia.ABITRATE2)]) if nzbtomedia.OUTPUTQUALITYPERCENT: audio_cmd.extend(['-q:a:' + str(used_audio), str(nzbtomedia.OUTPUTQUALITYPERCENT)]) - if nzbtomedia.AINCLUDE and audio3: # just pick the default audio track + if nzbtomedia.AINCLUDE and audio3 and nzbtomedia.ACODEC3: # just pick the default audio track for audio in audioStreams: if audio["index"] in a_mapped: continue @@ -218,7 +229,9 @@ def buildCommands(file, newDir): if nzbtomedia.ABITRATE3 and not (nzbtomedia.ABITRATE3 * 0.9 < bitrate < nzbtomedia.ABITRATE3 * 1.1): audio_cmd.extend(['-b:a:' + str(used_audio), str(nzbtomedia.ABITRATE3)]) else: - audio_cmd.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC3_ALLOW]) + audio_cmd.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC3]) + if nzbtomedia.ACODEC3 == 'aac': + audio_cmd.extend(['-strict', '-2']) if nzbtomedia.ABITRATE3: audio_cmd.extend(['-b:a:' + str(used_audio), str(nzbtomedia.ABITRATE3)]) if nzbtomedia.OUTPUTQUALITYPERCENT > 0: @@ -350,7 +363,7 @@ def Transcode_directory(dirName): makeDir(newDir) else: newDir = dirName - for file in nzbtomedia.listMediaFiles(dirName): + for file in nzbtomedia.listMediaFiles(dirName, media=True, audio=False, meta=False, archives=False): if os.path.splitext(file)[1] in nzbtomedia.IGNOREEXTENSIONS: continue command = buildCommands(file, newDir)