mirror of
https://github.com/clinton-hall/nzbToMedia.git
synced 2025-08-14 02:26:53 -07:00
parent
c3b47bec47
commit
3b6c9dd542
3 changed files with 94 additions and 33 deletions
|
@ -286,7 +286,7 @@
|
|||
generalOptions =
|
||||
# outputDefault. Loads default configs for the selected device. The remaining options below are ignored.
|
||||
# If you want to use your own profile, leave this blank and set the remaining options below.
|
||||
# outputDefault profiles allowed: iPad, iPad-1080p, iPad-720p, Apple-TV2, iPod, iPhone, PS3, xbox, Roku-1080p, Roku-720p, Roku-480p, mkv
|
||||
# outputDefault profiles allowed: iPad, iPad-1080p, iPad-720p, Apple-TV2, iPod, iPhone, PS3, xbox, Roku-1080p, Roku-720p, Roku-480p, mkv, mp4-scene-release
|
||||
outputDefault =
|
||||
#### Define custom settings below.
|
||||
outputVideoExtension = .mp4
|
||||
|
@ -296,6 +296,8 @@
|
|||
outputVideoResolution = 1920:1080
|
||||
outputVideoFramerate = 24
|
||||
outputVideoBitrate = 800000
|
||||
outputVideoCRF = 19
|
||||
outputVideoLevel = 3.1
|
||||
outputAudioCodec = ac3
|
||||
AudioCodecAllow =
|
||||
outputAudioChannels = 6
|
||||
|
|
|
@ -150,6 +150,8 @@ VCODEC_ALLOW = []
|
|||
VPRESET = None
|
||||
VFRAMERATE = None
|
||||
VBITRATE = None
|
||||
VLEVEL = None
|
||||
VCRF = None
|
||||
VRESOLUTION = None
|
||||
ACODEC = None
|
||||
ACODEC_ALLOW = []
|
||||
|
@ -192,9 +194,9 @@ def initialize(section=None):
|
|||
NZBTOMEDIA_TIMEOUT, FORKS, FORK_DEFAULT, FORK_FAILED_TORRENT, FORK_FAILED, SICKBEARD_TORRENT, SICKBEARD_FAILED, \
|
||||
NZBTOMEDIA_BRANCH, NZBTOMEDIA_VERSION, NEWEST_VERSION, NEWEST_VERSION_STRING, VERSION_NOTIFY, SYS_ARGV, CFG, \
|
||||
SABNZB_NO_OF_ARGUMENTS, SABNZB_0717_NO_OF_ARGUMENTS, CATEGORIES, TORRENT_CLIENTAGENT, USELINK, OUTPUTDIRECTORY, \
|
||||
NOFLATTEN, UTORRENTPWD, UTORRENTUSR, UTORRENTWEBUI, DELUGEHOST, DELUGEPORT, DELUGEUSR, DELUGEPWD, \
|
||||
NOFLATTEN, UTORRENTPWD, UTORRENTUSR, UTORRENTWEBUI, DELUGEHOST, DELUGEPORT, DELUGEUSR, DELUGEPWD, VLEVEL, \
|
||||
TRANSMISSIONHOST, TRANSMISSIONPORT, TRANSMISSIONPWD, TRANSMISSIONUSR, COMPRESSEDCONTAINER, MEDIACONTAINER, \
|
||||
METACONTAINER, SECTIONS, ALL_FORKS, TEST_FILE, GENERALOPTS, LOG_GIT, GROUPS, SEVENZIP, CONCAT, \
|
||||
METACONTAINER, SECTIONS, ALL_FORKS, TEST_FILE, GENERALOPTS, LOG_GIT, GROUPS, SEVENZIP, CONCAT, VCRF, \
|
||||
__INITIALIZED__, AUTO_UPDATE, APP_FILENAME, USER_DELAY, APP_NAME, TRANSCODE, DEFAULTS, GIT_PATH, GIT_USER, \
|
||||
GIT_BRANCH, GIT_REPO, SYS_ENCODING, NZB_CLIENTAGENT, SABNZBDHOST, SABNZBDPORT, SABNZBDAPIKEY, \
|
||||
DUPLICATE, IGNOREEXTENSIONS, VEXTENSION, OUTPUTVIDEOPATH, PROCESSOUTPUT, VCODEC, VCODEC_ALLOW, VPRESET, \
|
||||
|
@ -413,6 +415,12 @@ def initialize(section=None):
|
|||
try:
|
||||
VFRAMERATE = float(CFG["Transcoder"]["outputVideoFramerate"].strip())
|
||||
except: pass
|
||||
try:
|
||||
VCRF = int(CFG["Transcoder"]["outputVideoCRF"].strip())
|
||||
except: pass
|
||||
try:
|
||||
VLEVEL = CFG["Transcoder"]["outputVideoLevel"].strip()
|
||||
except: pass
|
||||
try:
|
||||
VBITRATE = int((CFG["Transcoder"]["outputVideoBitrate"].strip()).replace('k','000'))
|
||||
except: pass
|
||||
|
@ -460,7 +468,7 @@ def initialize(section=None):
|
|||
}
|
||||
transcode_defaults = {
|
||||
'iPad':{
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,'VCRF':None,'VLEVEL':None,
|
||||
'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':None, 'ACHANNELS':2,
|
||||
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
||||
|
@ -468,7 +476,7 @@ def initialize(section=None):
|
|||
'SCODEC':'mov_text'
|
||||
},
|
||||
'iPad-1080p':{
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,'VCRF':None,'VLEVEL':None,
|
||||
'VRESOLUTION':'1920:1080','VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':None, 'ACHANNELS':2,
|
||||
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
||||
|
@ -476,7 +484,7 @@ def initialize(section=None):
|
|||
'SCODEC':'mov_text'
|
||||
},
|
||||
'iPad-720p':{
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,'VCRF':None,'VLEVEL':None,
|
||||
'VRESOLUTION':'1280:720','VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':None, 'ACHANNELS':2,
|
||||
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
||||
|
@ -484,7 +492,7 @@ def initialize(section=None):
|
|||
'SCODEC':'mov_text'
|
||||
},
|
||||
'Apple-TV':{
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,'VCRF':None,'VLEVEL':None,
|
||||
'VRESOLUTION':'1280:720','VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||
'ACODEC':'ac3','ACODEC_ALLOW':['ac3'],'ABITRATE':None, 'ACHANNELS':6,
|
||||
'ACODEC2':'aac','ACODEC2_ALLOW':['libfaac'],'ABITRATE2':None, 'ACHANNELS2':2,
|
||||
|
@ -492,7 +500,7 @@ def initialize(section=None):
|
|||
'SCODEC':'mov_text'
|
||||
},
|
||||
'iPod':{
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,'VCRF':None,'VLEVEL':None,
|
||||
'VRESOLUTION':'1280:720','VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, 'ACHANNELS':2,
|
||||
'ACODEC2':None,'ACODEC2_ALLOW':[],'ABITRATE2':None, 'ACHANNELS2':None,
|
||||
|
@ -500,7 +508,7 @@ def initialize(section=None):
|
|||
'SCODEC':'mov_text'
|
||||
},
|
||||
'iPhone':{
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,'VCRF':None,'VLEVEL':None,
|
||||
'VRESOLUTION':'460:320','VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, 'ACHANNELS':2,
|
||||
'ACODEC2':None,'ACODEC2_ALLOW':[],'ABITRATE2':None, 'ACHANNELS2':None,
|
||||
|
@ -508,7 +516,7 @@ def initialize(section=None):
|
|||
'SCODEC':'mov_text'
|
||||
},
|
||||
'PS3':{
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,'VCRF':None,'VLEVEL':None,
|
||||
'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||
'ACODEC':'ac3','ACODEC_ALLOW':['ac3'],'ABITRATE':None, 'ACHANNELS':6,
|
||||
'ACODEC2':'aac','ACODEC2_ALLOW':['libfaac'],'ABITRATE2':None, 'ACHANNELS2':2,
|
||||
|
@ -516,7 +524,7 @@ def initialize(section=None):
|
|||
'SCODEC':'mov_text'
|
||||
},
|
||||
'xbox':{
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,'VCRF':None,'VLEVEL':None,
|
||||
'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||
'ACODEC':'ac3','ACODEC_ALLOW':['ac3'],'ABITRATE':None, 'ACHANNELS':6,
|
||||
'ACODEC2':None,'ACODEC2_ALLOW':[],'ABITRATE2':None, 'ACHANNELS2':None,
|
||||
|
@ -524,7 +532,7 @@ def initialize(section=None):
|
|||
'SCODEC':'mov_text'
|
||||
},
|
||||
'Roku-480p':{
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,'VCRF':None,'VLEVEL':None,
|
||||
'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, 'ACHANNELS':2,
|
||||
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
||||
|
@ -532,7 +540,7 @@ def initialize(section=None):
|
|||
'SCODEC':'mov_text'
|
||||
},
|
||||
'Roku-720p':{
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,'VCRF':None,'VLEVEL':None,
|
||||
'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, 'ACHANNELS':2,
|
||||
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
||||
|
@ -540,7 +548,7 @@ def initialize(section=None):
|
|||
'SCODEC':'mov_text'
|
||||
},
|
||||
'Roku-1080p':{
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,'VCRF':None,'VLEVEL':None,
|
||||
'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':160000, 'ACHANNELS':2,
|
||||
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
||||
|
@ -548,7 +556,15 @@ def initialize(section=None):
|
|||
'SCODEC':'mov_text'
|
||||
},
|
||||
'mkv':{
|
||||
'VEXTENSION':'.mkv','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,
|
||||
'VEXTENSION':'.mkv','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,'VCRF':None,'VLEVEL':None,
|
||||
'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4', 'mpeg2video'],
|
||||
'ACODEC':'dts','ACODEC_ALLOW':['libfaac', 'dts', 'ac3', 'mp2', 'mp3'],'ABITRATE':None, 'ACHANNELS':8,
|
||||
'ACODEC2':None,'ACODEC2_ALLOW':[],'ABITRATE2':None, 'ACHANNELS2':None,
|
||||
'ACODEC3':'ac3','ACODEC3_ALLOW':['libfaac', 'dts', 'ac3', 'mp2', 'mp3'],'ABITRATE3':None, 'ACHANNELS3':8,
|
||||
'SCODEC':'mov_text'
|
||||
},
|
||||
'mp4-scene-release':{
|
||||
'VEXTENSION':'.mp4','VCODEC':'libx264','VPRESET':None,'VFRAMERATE':None,'VBITRATE':None,'VCRF':19,'VLEVEL':'3.1',
|
||||
'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4', 'mpeg2video'],
|
||||
'ACODEC':'dts','ACODEC_ALLOW':['libfaac', 'dts', 'ac3', 'mp2', 'mp3'],'ABITRATE':None, 'ACHANNELS':8,
|
||||
'ACODEC2':None,'ACODEC2_ALLOW':[],'ABITRATE2':None, 'ACHANNELS2':None,
|
||||
|
@ -563,6 +579,8 @@ def initialize(section=None):
|
|||
VFRAMERATE = transcode_defaults[DEFAULTS]['VFRAMERATE']
|
||||
VBITRATE = transcode_defaults[DEFAULTS]['VBITRATE']
|
||||
VRESOLUTION = transcode_defaults[DEFAULTS]['VRESOLUTION']
|
||||
VCRF = transcode_defaults[DEFAULTS]['VCFR']
|
||||
VLEVEL = transcode_defaults[DEFAULTS]['VLEVEL']
|
||||
VCODEC_ALLOW = transcode_defaults[DEFAULTS]['VCODEC_ALLOW']
|
||||
ACODEC = transcode_defaults[DEFAULTS]['ACODEC']
|
||||
ACODEC_ALLOW = transcode_defaults[DEFAULTS]['ACODEC_ALLOW']
|
||||
|
@ -578,6 +596,8 @@ def initialize(section=None):
|
|||
ABITRATE3 = transcode_defaults[DEFAULTS]['ABITRATE3']
|
||||
SCODEC = transcode_defaults[DEFAULTS]['SCODEC']
|
||||
transcode_defaults = {} # clear memory
|
||||
if transcode_defaults in ['mp4-scene-release'] and not OUTPUTQUALITYPERCENT:
|
||||
OUTPUTQUALITYPERCENT = 100
|
||||
|
||||
if VEXTENSION in allow_subs:
|
||||
ALLOWSUBS = 1
|
||||
|
|
|
@ -133,6 +133,8 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
|||
map_cmd = []
|
||||
video_cmd = []
|
||||
audio_cmd = []
|
||||
audio_cmd2 = []
|
||||
audio_cmd3 = []
|
||||
sub_cmd = []
|
||||
other_cmd = []
|
||||
|
||||
|
@ -154,6 +156,12 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
|||
video_cmd.extend(['-b:v', str(nzbtomedia.VBITRATE)])
|
||||
if nzbtomedia.VRESOLUTION:
|
||||
video_cmd.extend(['-vf', 'scale=' + nzbtomedia.VRESOLUTION])
|
||||
if nzbtomedia.VPRESET:
|
||||
video_cmd.extend(['-preset', nzbtomedia.VPRESET])
|
||||
if nzbtomedia.VCRF:
|
||||
video_cmd.extend(['-crf', str(nzbtomedia.VCRF)])
|
||||
if nzbtomedia.VLEVEL:
|
||||
video_cmd.extend(['-level', str(nzbtomedia.VLEVEL)])
|
||||
|
||||
if nzbtomedia.ACODEC:
|
||||
audio_cmd.extend(['-c:a', nzbtomedia.ACODEC])
|
||||
|
@ -217,7 +225,16 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
|||
scale = "-1:" + scale.split(':')[1]
|
||||
if h_scale != 1:
|
||||
video_cmd.extend(['-vf', 'scale=' + scale])
|
||||
if ('-vf' in video_cmd or '-r' in video_cmd) and video_cmd[1] == 'copy':
|
||||
if nzbtomedia.VBITRATE:
|
||||
video_cmd.extend(['-b:v', str(nzbtomedia.VBITRATE)])
|
||||
if nzbtomedia.VPRESET:
|
||||
video_cmd.extend(['-preset', nzbtomedia.VPRESET])
|
||||
if nzbtomedia.VCRF:
|
||||
video_cmd.extend(['-crf', str(nzbtomedia.VCRF)])
|
||||
if nzbtomedia.VLEVEL:
|
||||
video_cmd.extend(['-level', str(nzbtomedia.VLEVEL)])
|
||||
no_copy = ['-vf', '-r', '-crf', '-level', '-preset', '-b:v']
|
||||
if video_cmd[1] == 'copy' and any(i in video_cmd for i in no_copy):
|
||||
video_cmd[1] = nzbtomedia.VCODEC
|
||||
if nzbtomedia.VCODEC == 'copy': # force copy. therefore ignore all other video transcoding.
|
||||
video_cmd = ['-c:v', 'copy']
|
||||
|
@ -280,10 +297,16 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
|||
|
||||
if nzbtomedia.ACHANNELS and channels and channels > nzbtomedia.ACHANNELS:
|
||||
audio_cmd.extend(['-ac:' + str(used_audio), str(nzbtomedia.ACHANNELS)])
|
||||
if audio_cmd[1] == 'copy':
|
||||
audio_cmd[1] = nzbtomedia.ACODEC
|
||||
if nzbtomedia.ABITRATE and not (nzbtomedia.ABITRATE * 0.9 < bitrate < nzbtomedia.ABITRATE * 1.1):
|
||||
audio_cmd.extend(['-b:a:' + str(used_audio), str(nzbtomedia.ABITRATE)])
|
||||
if audio_cmd[1] == 'copy':
|
||||
audio_cmd[1] = nzbtomedia.ACODEC
|
||||
if nzbtomedia.OUTPUTQUALITYPERCENT:
|
||||
audio_cmd.extend(['-q:a:' + str(used_audio), str(nzbtomedia.OUTPUTQUALITYPERCENT)])
|
||||
if audio_cmd[1] == 'copy':
|
||||
audio_cmd[1] = nzbtomedia.ACODEC
|
||||
|
||||
if nzbtomedia.ACODEC2_ALLOW:
|
||||
used_audio += 1
|
||||
|
@ -297,7 +320,7 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
|||
try:
|
||||
channels = int(audio4[0]["channels"])
|
||||
except: channels = 0
|
||||
audio_cmd.extend(['-c:a:' + str(used_audio), 'copy'])
|
||||
audio_cmd2.extend(['-c:a:' + str(used_audio), 'copy'])
|
||||
elif audio1: # right language wrong codec.
|
||||
map_cmd.extend(['-map', '0:' + str(audio1[0]["index"])])
|
||||
a_mapped.extend([audio1[0]["index"]])
|
||||
|
@ -308,11 +331,11 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
|||
channels = int(audio1[0]["channels"])
|
||||
except: channels = 0
|
||||
if nzbtomedia.ACODEC2:
|
||||
audio_cmd.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC2])
|
||||
audio_cmd2.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC2])
|
||||
else:
|
||||
audio_cmd.extend(['-c:a:' + str(used_audio), 'copy'])
|
||||
audio_cmd2.extend(['-c:a:' + str(used_audio), 'copy'])
|
||||
if nzbtomedia.ACODEC2 == 'aac':
|
||||
audio_cmd.extend(['-strict', '-2'])
|
||||
audio_cmd2.extend(['-strict', '-2'])
|
||||
elif audio3: # just pick the default audio track
|
||||
map_cmd.extend(['-map', '0:' + str(audio3[0]["index"])])
|
||||
a_mapped.extend([audio3[0]["index"]])
|
||||
|
@ -323,18 +346,25 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
|||
channels = int(audio3[0]["channels"])
|
||||
except: channels = 0
|
||||
if nzbtomedia.ACODEC2:
|
||||
audio_cmd.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC2])
|
||||
audio_cmd2.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC2])
|
||||
else:
|
||||
audio_cmd.extend(['-c:a:' + str(used_audio), 'copy'])
|
||||
audio_cmd2.extend(['-c:a:' + str(used_audio), 'copy'])
|
||||
if nzbtomedia.ACODEC2 == 'aac':
|
||||
audio_cmd.extend(['-strict', '-2'])
|
||||
audio_cmd2.extend(['-strict', '-2'])
|
||||
|
||||
if nzbtomedia.ACHANNELS2 and channels and channels > nzbtomedia.ACHANNELS2:
|
||||
audio_cmd.extend(['-ac:' + str(used_audio), str(nzbtomedia.ACHANNELS2)])
|
||||
audio_cmd2.extend(['-ac:' + str(used_audio), str(nzbtomedia.ACHANNELS2)])
|
||||
if audio_cmd2[1] == 'copy':
|
||||
audio_cmd2[1] = nzbtomedia.ACODEC2
|
||||
if nzbtomedia.ABITRATE2 and not (nzbtomedia.ABITRATE2 * 0.9 < bitrate < nzbtomedia.ABITRATE2 * 1.1):
|
||||
audio_cmd.extend(['-b:a:' + str(used_audio), str(nzbtomedia.ABITRATE2)])
|
||||
audio_cmd2.extend(['-b:a:' + str(used_audio), str(nzbtomedia.ABITRATE2)])
|
||||
if audio_cmd2[1] == 'copy':
|
||||
audio_cmd2[1] = nzbtomedia.ACODEC2
|
||||
if nzbtomedia.OUTPUTQUALITYPERCENT:
|
||||
audio_cmd.extend(['-q:a:' + str(used_audio), str(nzbtomedia.OUTPUTQUALITYPERCENT)])
|
||||
audio_cmd2.extend(['-q:a:' + str(used_audio), str(nzbtomedia.OUTPUTQUALITYPERCENT)])
|
||||
if audio_cmd2[1] == 'copy':
|
||||
audio_cmd2[1] = nzbtomedia.ACODEC2
|
||||
audio_cmd.extend(audio_cmd2)
|
||||
|
||||
if nzbtomedia.AINCLUDE and audio3 and nzbtomedia.ACODEC3:
|
||||
for audio in audioStreams:
|
||||
|
@ -342,6 +372,7 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
|||
continue
|
||||
used_audio += 1
|
||||
map_cmd.extend(['-map', '0:' + str(audio["index"])])
|
||||
audio_cmd3 = []
|
||||
try:
|
||||
bitrate = int(audio["bit_rate"])/1000
|
||||
except: bitrate = 0
|
||||
|
@ -349,20 +380,28 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
|||
channels = int(audio["channels"])
|
||||
except: channels = 0
|
||||
if audio["codec_name"] in nzbtomedia.ACODEC3_ALLOW:
|
||||
audio_cmd.extend(['-c:a:' + str(used_audio), 'copy'])
|
||||
audio_cmd3.extend(['-c:a:' + str(used_audio), 'copy'])
|
||||
else:
|
||||
if nzbtomedia.ACODEC3:
|
||||
audio_cmd.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC3])
|
||||
audio_cmd3.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC3])
|
||||
else:
|
||||
audio_cmd.extend(['-c:a:' + str(used_audio), 'copy'])
|
||||
audio_cmd3.extend(['-c:a:' + str(used_audio), 'copy'])
|
||||
if nzbtomedia.ACODEC3 == 'aac':
|
||||
audio_cmd.extend(['-strict', '-2'])
|
||||
audio_cmd3.extend(['-strict', '-2'])
|
||||
|
||||
if nzbtomedia.ACHANNELS3 and channels and channels > nzbtomedia.ACHANNELS3:
|
||||
audio_cmd.extend(['-ac:' + str(used_audio), str(nzbtomedia.ACHANNELS3)])
|
||||
audio_cmd3.extend(['-ac:' + str(used_audio), str(nzbtomedia.ACHANNELS3)])
|
||||
if audio_cmd3[1] == 'copy':
|
||||
audio_cmd3[1] = nzbtomedia.ACODEC3
|
||||
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)])
|
||||
audio_cmd3.extend(['-b:a:' + str(used_audio), str(nzbtomedia.ABITRATE3)])
|
||||
if audio_cmd3[1] == 'copy':
|
||||
audio_cmd3[1] = nzbtomedia.ACODEC3
|
||||
if nzbtomedia.OUTPUTQUALITYPERCENT > 0:
|
||||
audio_cmd.extend(['-q:a:' + str(used_audio), str(nzbtomedia.OUTPUTQUALITYPERCENT)])
|
||||
audio_cmd3.extend(['-q:a:' + str(used_audio), str(nzbtomedia.OUTPUTQUALITYPERCENT)])
|
||||
if audio_cmd3[1] == 'copy':
|
||||
audio_cmd3[1] = nzbtomedia.ACODEC3
|
||||
audio_cmd.extend(audio_cmd3)
|
||||
|
||||
s_mapped = []
|
||||
subs1 = []
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue