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 =
|
generalOptions =
|
||||||
# outputDefault. Loads default configs for the selected device. The remaining options below are ignored.
|
# 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.
|
# 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 =
|
outputDefault =
|
||||||
#### Define custom settings below.
|
#### Define custom settings below.
|
||||||
outputVideoExtension = .mp4
|
outputVideoExtension = .mp4
|
||||||
|
@ -296,6 +296,8 @@
|
||||||
outputVideoResolution = 1920:1080
|
outputVideoResolution = 1920:1080
|
||||||
outputVideoFramerate = 24
|
outputVideoFramerate = 24
|
||||||
outputVideoBitrate = 800000
|
outputVideoBitrate = 800000
|
||||||
|
outputVideoCRF = 19
|
||||||
|
outputVideoLevel = 3.1
|
||||||
outputAudioCodec = ac3
|
outputAudioCodec = ac3
|
||||||
AudioCodecAllow =
|
AudioCodecAllow =
|
||||||
outputAudioChannels = 6
|
outputAudioChannels = 6
|
||||||
|
|
|
@ -150,6 +150,8 @@ VCODEC_ALLOW = []
|
||||||
VPRESET = None
|
VPRESET = None
|
||||||
VFRAMERATE = None
|
VFRAMERATE = None
|
||||||
VBITRATE = None
|
VBITRATE = None
|
||||||
|
VLEVEL = None
|
||||||
|
VCRF = None
|
||||||
VRESOLUTION = None
|
VRESOLUTION = None
|
||||||
ACODEC = None
|
ACODEC = None
|
||||||
ACODEC_ALLOW = []
|
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_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, \
|
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, \
|
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, \
|
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, \
|
__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, \
|
GIT_BRANCH, GIT_REPO, SYS_ENCODING, NZB_CLIENTAGENT, SABNZBDHOST, SABNZBDPORT, SABNZBDAPIKEY, \
|
||||||
DUPLICATE, IGNOREEXTENSIONS, VEXTENSION, OUTPUTVIDEOPATH, PROCESSOUTPUT, VCODEC, VCODEC_ALLOW, VPRESET, \
|
DUPLICATE, IGNOREEXTENSIONS, VEXTENSION, OUTPUTVIDEOPATH, PROCESSOUTPUT, VCODEC, VCODEC_ALLOW, VPRESET, \
|
||||||
|
@ -413,6 +415,12 @@ def initialize(section=None):
|
||||||
try:
|
try:
|
||||||
VFRAMERATE = float(CFG["Transcoder"]["outputVideoFramerate"].strip())
|
VFRAMERATE = float(CFG["Transcoder"]["outputVideoFramerate"].strip())
|
||||||
except: pass
|
except: pass
|
||||||
|
try:
|
||||||
|
VCRF = int(CFG["Transcoder"]["outputVideoCRF"].strip())
|
||||||
|
except: pass
|
||||||
|
try:
|
||||||
|
VLEVEL = CFG["Transcoder"]["outputVideoLevel"].strip()
|
||||||
|
except: pass
|
||||||
try:
|
try:
|
||||||
VBITRATE = int((CFG["Transcoder"]["outputVideoBitrate"].strip()).replace('k','000'))
|
VBITRATE = int((CFG["Transcoder"]["outputVideoBitrate"].strip()).replace('k','000'))
|
||||||
except: pass
|
except: pass
|
||||||
|
@ -460,7 +468,7 @@ def initialize(section=None):
|
||||||
}
|
}
|
||||||
transcode_defaults = {
|
transcode_defaults = {
|
||||||
'iPad':{
|
'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'],
|
'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||||
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':None, 'ACHANNELS':2,
|
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':None, 'ACHANNELS':2,
|
||||||
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
||||||
|
@ -468,7 +476,7 @@ def initialize(section=None):
|
||||||
'SCODEC':'mov_text'
|
'SCODEC':'mov_text'
|
||||||
},
|
},
|
||||||
'iPad-1080p':{
|
'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'],
|
'VRESOLUTION':'1920:1080','VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||||
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':None, 'ACHANNELS':2,
|
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':None, 'ACHANNELS':2,
|
||||||
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
||||||
|
@ -476,7 +484,7 @@ def initialize(section=None):
|
||||||
'SCODEC':'mov_text'
|
'SCODEC':'mov_text'
|
||||||
},
|
},
|
||||||
'iPad-720p':{
|
'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'],
|
'VRESOLUTION':'1280:720','VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||||
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':None, 'ACHANNELS':2,
|
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':None, 'ACHANNELS':2,
|
||||||
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
||||||
|
@ -484,7 +492,7 @@ def initialize(section=None):
|
||||||
'SCODEC':'mov_text'
|
'SCODEC':'mov_text'
|
||||||
},
|
},
|
||||||
'Apple-TV':{
|
'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'],
|
'VRESOLUTION':'1280:720','VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||||
'ACODEC':'ac3','ACODEC_ALLOW':['ac3'],'ABITRATE':None, 'ACHANNELS':6,
|
'ACODEC':'ac3','ACODEC_ALLOW':['ac3'],'ABITRATE':None, 'ACHANNELS':6,
|
||||||
'ACODEC2':'aac','ACODEC2_ALLOW':['libfaac'],'ABITRATE2':None, 'ACHANNELS2':2,
|
'ACODEC2':'aac','ACODEC2_ALLOW':['libfaac'],'ABITRATE2':None, 'ACHANNELS2':2,
|
||||||
|
@ -492,7 +500,7 @@ def initialize(section=None):
|
||||||
'SCODEC':'mov_text'
|
'SCODEC':'mov_text'
|
||||||
},
|
},
|
||||||
'iPod':{
|
'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'],
|
'VRESOLUTION':'1280:720','VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||||
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, 'ACHANNELS':2,
|
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, 'ACHANNELS':2,
|
||||||
'ACODEC2':None,'ACODEC2_ALLOW':[],'ABITRATE2':None, 'ACHANNELS2':None,
|
'ACODEC2':None,'ACODEC2_ALLOW':[],'ABITRATE2':None, 'ACHANNELS2':None,
|
||||||
|
@ -500,7 +508,7 @@ def initialize(section=None):
|
||||||
'SCODEC':'mov_text'
|
'SCODEC':'mov_text'
|
||||||
},
|
},
|
||||||
'iPhone':{
|
'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'],
|
'VRESOLUTION':'460:320','VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||||
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, 'ACHANNELS':2,
|
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, 'ACHANNELS':2,
|
||||||
'ACODEC2':None,'ACODEC2_ALLOW':[],'ABITRATE2':None, 'ACHANNELS2':None,
|
'ACODEC2':None,'ACODEC2_ALLOW':[],'ABITRATE2':None, 'ACHANNELS2':None,
|
||||||
|
@ -508,7 +516,7 @@ def initialize(section=None):
|
||||||
'SCODEC':'mov_text'
|
'SCODEC':'mov_text'
|
||||||
},
|
},
|
||||||
'PS3':{
|
'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'],
|
'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||||
'ACODEC':'ac3','ACODEC_ALLOW':['ac3'],'ABITRATE':None, 'ACHANNELS':6,
|
'ACODEC':'ac3','ACODEC_ALLOW':['ac3'],'ABITRATE':None, 'ACHANNELS':6,
|
||||||
'ACODEC2':'aac','ACODEC2_ALLOW':['libfaac'],'ABITRATE2':None, 'ACHANNELS2':2,
|
'ACODEC2':'aac','ACODEC2_ALLOW':['libfaac'],'ABITRATE2':None, 'ACHANNELS2':2,
|
||||||
|
@ -516,7 +524,7 @@ def initialize(section=None):
|
||||||
'SCODEC':'mov_text'
|
'SCODEC':'mov_text'
|
||||||
},
|
},
|
||||||
'xbox':{
|
'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'],
|
'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||||
'ACODEC':'ac3','ACODEC_ALLOW':['ac3'],'ABITRATE':None, 'ACHANNELS':6,
|
'ACODEC':'ac3','ACODEC_ALLOW':['ac3'],'ABITRATE':None, 'ACHANNELS':6,
|
||||||
'ACODEC2':None,'ACODEC2_ALLOW':[],'ABITRATE2':None, 'ACHANNELS2':None,
|
'ACODEC2':None,'ACODEC2_ALLOW':[],'ABITRATE2':None, 'ACHANNELS2':None,
|
||||||
|
@ -524,7 +532,7 @@ def initialize(section=None):
|
||||||
'SCODEC':'mov_text'
|
'SCODEC':'mov_text'
|
||||||
},
|
},
|
||||||
'Roku-480p':{
|
'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'],
|
'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||||
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, 'ACHANNELS':2,
|
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, 'ACHANNELS':2,
|
||||||
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
||||||
|
@ -532,7 +540,7 @@ def initialize(section=None):
|
||||||
'SCODEC':'mov_text'
|
'SCODEC':'mov_text'
|
||||||
},
|
},
|
||||||
'Roku-720p':{
|
'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'],
|
'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||||
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, 'ACHANNELS':2,
|
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':128000, 'ACHANNELS':2,
|
||||||
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
||||||
|
@ -540,7 +548,7 @@ def initialize(section=None):
|
||||||
'SCODEC':'mov_text'
|
'SCODEC':'mov_text'
|
||||||
},
|
},
|
||||||
'Roku-1080p':{
|
'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'],
|
'VRESOLUTION':None,'VCODEC_ALLOW':['libx264', 'h264', 'h.264', 'AVC', 'avc', 'mpeg4', 'msmpeg4', 'MPEG-4'],
|
||||||
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':160000, 'ACHANNELS':2,
|
'ACODEC':'aac','ACODEC_ALLOW':['libfaac'],'ABITRATE':160000, 'ACHANNELS':2,
|
||||||
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
'ACODEC2':'ac3','ACODEC2_ALLOW':['ac3'],'ABITRATE2':None, 'ACHANNELS2':6,
|
||||||
|
@ -548,7 +556,15 @@ def initialize(section=None):
|
||||||
'SCODEC':'mov_text'
|
'SCODEC':'mov_text'
|
||||||
},
|
},
|
||||||
'mkv':{
|
'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'],
|
'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,
|
'ACODEC':'dts','ACODEC_ALLOW':['libfaac', 'dts', 'ac3', 'mp2', 'mp3'],'ABITRATE':None, 'ACHANNELS':8,
|
||||||
'ACODEC2':None,'ACODEC2_ALLOW':[],'ABITRATE2':None, 'ACHANNELS2':None,
|
'ACODEC2':None,'ACODEC2_ALLOW':[],'ABITRATE2':None, 'ACHANNELS2':None,
|
||||||
|
@ -563,6 +579,8 @@ def initialize(section=None):
|
||||||
VFRAMERATE = transcode_defaults[DEFAULTS]['VFRAMERATE']
|
VFRAMERATE = transcode_defaults[DEFAULTS]['VFRAMERATE']
|
||||||
VBITRATE = transcode_defaults[DEFAULTS]['VBITRATE']
|
VBITRATE = transcode_defaults[DEFAULTS]['VBITRATE']
|
||||||
VRESOLUTION = transcode_defaults[DEFAULTS]['VRESOLUTION']
|
VRESOLUTION = transcode_defaults[DEFAULTS]['VRESOLUTION']
|
||||||
|
VCRF = transcode_defaults[DEFAULTS]['VCFR']
|
||||||
|
VLEVEL = transcode_defaults[DEFAULTS]['VLEVEL']
|
||||||
VCODEC_ALLOW = transcode_defaults[DEFAULTS]['VCODEC_ALLOW']
|
VCODEC_ALLOW = transcode_defaults[DEFAULTS]['VCODEC_ALLOW']
|
||||||
ACODEC = transcode_defaults[DEFAULTS]['ACODEC']
|
ACODEC = transcode_defaults[DEFAULTS]['ACODEC']
|
||||||
ACODEC_ALLOW = transcode_defaults[DEFAULTS]['ACODEC_ALLOW']
|
ACODEC_ALLOW = transcode_defaults[DEFAULTS]['ACODEC_ALLOW']
|
||||||
|
@ -578,6 +596,8 @@ def initialize(section=None):
|
||||||
ABITRATE3 = transcode_defaults[DEFAULTS]['ABITRATE3']
|
ABITRATE3 = transcode_defaults[DEFAULTS]['ABITRATE3']
|
||||||
SCODEC = transcode_defaults[DEFAULTS]['SCODEC']
|
SCODEC = transcode_defaults[DEFAULTS]['SCODEC']
|
||||||
transcode_defaults = {} # clear memory
|
transcode_defaults = {} # clear memory
|
||||||
|
if transcode_defaults in ['mp4-scene-release'] and not OUTPUTQUALITYPERCENT:
|
||||||
|
OUTPUTQUALITYPERCENT = 100
|
||||||
|
|
||||||
if VEXTENSION in allow_subs:
|
if VEXTENSION in allow_subs:
|
||||||
ALLOWSUBS = 1
|
ALLOWSUBS = 1
|
||||||
|
|
|
@ -133,6 +133,8 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
||||||
map_cmd = []
|
map_cmd = []
|
||||||
video_cmd = []
|
video_cmd = []
|
||||||
audio_cmd = []
|
audio_cmd = []
|
||||||
|
audio_cmd2 = []
|
||||||
|
audio_cmd3 = []
|
||||||
sub_cmd = []
|
sub_cmd = []
|
||||||
other_cmd = []
|
other_cmd = []
|
||||||
|
|
||||||
|
@ -154,6 +156,12 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
||||||
video_cmd.extend(['-b:v', str(nzbtomedia.VBITRATE)])
|
video_cmd.extend(['-b:v', str(nzbtomedia.VBITRATE)])
|
||||||
if nzbtomedia.VRESOLUTION:
|
if nzbtomedia.VRESOLUTION:
|
||||||
video_cmd.extend(['-vf', 'scale=' + 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:
|
if nzbtomedia.ACODEC:
|
||||||
audio_cmd.extend(['-c:a', nzbtomedia.ACODEC])
|
audio_cmd.extend(['-c:a', nzbtomedia.ACODEC])
|
||||||
|
@ -217,7 +225,16 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
||||||
scale = "-1:" + scale.split(':')[1]
|
scale = "-1:" + scale.split(':')[1]
|
||||||
if h_scale != 1:
|
if h_scale != 1:
|
||||||
video_cmd.extend(['-vf', 'scale=' + scale])
|
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
|
video_cmd[1] = nzbtomedia.VCODEC
|
||||||
if nzbtomedia.VCODEC == 'copy': # force copy. therefore ignore all other video transcoding.
|
if nzbtomedia.VCODEC == 'copy': # force copy. therefore ignore all other video transcoding.
|
||||||
video_cmd = ['-c:v', 'copy']
|
video_cmd = ['-c:v', 'copy']
|
||||||
|
@ -280,10 +297,16 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
||||||
|
|
||||||
if nzbtomedia.ACHANNELS and channels and channels > nzbtomedia.ACHANNELS:
|
if nzbtomedia.ACHANNELS and channels and channels > nzbtomedia.ACHANNELS:
|
||||||
audio_cmd.extend(['-ac:' + str(used_audio), str(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):
|
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)])
|
audio_cmd.extend(['-b:a:' + str(used_audio), str(nzbtomedia.ABITRATE)])
|
||||||
|
if audio_cmd[1] == 'copy':
|
||||||
|
audio_cmd[1] = nzbtomedia.ACODEC
|
||||||
if nzbtomedia.OUTPUTQUALITYPERCENT:
|
if nzbtomedia.OUTPUTQUALITYPERCENT:
|
||||||
audio_cmd.extend(['-q:a:' + str(used_audio), str(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:
|
if nzbtomedia.ACODEC2_ALLOW:
|
||||||
used_audio += 1
|
used_audio += 1
|
||||||
|
@ -297,7 +320,7 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
||||||
try:
|
try:
|
||||||
channels = int(audio4[0]["channels"])
|
channels = int(audio4[0]["channels"])
|
||||||
except: channels = 0
|
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.
|
elif audio1: # right language wrong codec.
|
||||||
map_cmd.extend(['-map', '0:' + str(audio1[0]["index"])])
|
map_cmd.extend(['-map', '0:' + str(audio1[0]["index"])])
|
||||||
a_mapped.extend([audio1[0]["index"]])
|
a_mapped.extend([audio1[0]["index"]])
|
||||||
|
@ -308,11 +331,11 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
||||||
channels = int(audio1[0]["channels"])
|
channels = int(audio1[0]["channels"])
|
||||||
except: channels = 0
|
except: channels = 0
|
||||||
if nzbtomedia.ACODEC2:
|
if nzbtomedia.ACODEC2:
|
||||||
audio_cmd.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC2])
|
audio_cmd2.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC2])
|
||||||
else:
|
else:
|
||||||
audio_cmd.extend(['-c:a:' + str(used_audio), 'copy'])
|
audio_cmd2.extend(['-c:a:' + str(used_audio), 'copy'])
|
||||||
if nzbtomedia.ACODEC2 == 'aac':
|
if nzbtomedia.ACODEC2 == 'aac':
|
||||||
audio_cmd.extend(['-strict', '-2'])
|
audio_cmd2.extend(['-strict', '-2'])
|
||||||
elif audio3: # just pick the default audio track
|
elif audio3: # just pick the default audio track
|
||||||
map_cmd.extend(['-map', '0:' + str(audio3[0]["index"])])
|
map_cmd.extend(['-map', '0:' + str(audio3[0]["index"])])
|
||||||
a_mapped.extend([audio3[0]["index"]])
|
a_mapped.extend([audio3[0]["index"]])
|
||||||
|
@ -323,18 +346,25 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
||||||
channels = int(audio3[0]["channels"])
|
channels = int(audio3[0]["channels"])
|
||||||
except: channels = 0
|
except: channels = 0
|
||||||
if nzbtomedia.ACODEC2:
|
if nzbtomedia.ACODEC2:
|
||||||
audio_cmd.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC2])
|
audio_cmd2.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC2])
|
||||||
else:
|
else:
|
||||||
audio_cmd.extend(['-c:a:' + str(used_audio), 'copy'])
|
audio_cmd2.extend(['-c:a:' + str(used_audio), 'copy'])
|
||||||
if nzbtomedia.ACODEC2 == 'aac':
|
if nzbtomedia.ACODEC2 == 'aac':
|
||||||
audio_cmd.extend(['-strict', '-2'])
|
audio_cmd2.extend(['-strict', '-2'])
|
||||||
|
|
||||||
if nzbtomedia.ACHANNELS2 and channels and channels > nzbtomedia.ACHANNELS2:
|
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):
|
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:
|
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:
|
if nzbtomedia.AINCLUDE and audio3 and nzbtomedia.ACODEC3:
|
||||||
for audio in audioStreams:
|
for audio in audioStreams:
|
||||||
|
@ -342,6 +372,7 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
||||||
continue
|
continue
|
||||||
used_audio += 1
|
used_audio += 1
|
||||||
map_cmd.extend(['-map', '0:' + str(audio["index"])])
|
map_cmd.extend(['-map', '0:' + str(audio["index"])])
|
||||||
|
audio_cmd3 = []
|
||||||
try:
|
try:
|
||||||
bitrate = int(audio["bit_rate"])/1000
|
bitrate = int(audio["bit_rate"])/1000
|
||||||
except: bitrate = 0
|
except: bitrate = 0
|
||||||
|
@ -349,20 +380,28 @@ def buildCommands(file, newDir, movieName, bitbucket):
|
||||||
channels = int(audio["channels"])
|
channels = int(audio["channels"])
|
||||||
except: channels = 0
|
except: channels = 0
|
||||||
if audio["codec_name"] in nzbtomedia.ACODEC3_ALLOW:
|
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:
|
else:
|
||||||
if nzbtomedia.ACODEC3:
|
if nzbtomedia.ACODEC3:
|
||||||
audio_cmd.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC3])
|
audio_cmd3.extend(['-c:a:' + str(used_audio), nzbtomedia.ACODEC3])
|
||||||
else:
|
else:
|
||||||
audio_cmd.extend(['-c:a:' + str(used_audio), 'copy'])
|
audio_cmd3.extend(['-c:a:' + str(used_audio), 'copy'])
|
||||||
if nzbtomedia.ACODEC3 == 'aac':
|
if nzbtomedia.ACODEC3 == 'aac':
|
||||||
audio_cmd.extend(['-strict', '-2'])
|
audio_cmd3.extend(['-strict', '-2'])
|
||||||
|
|
||||||
if nzbtomedia.ACHANNELS3 and channels and channels > nzbtomedia.ACHANNELS3:
|
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):
|
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:
|
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 = []
|
s_mapped = []
|
||||||
subs1 = []
|
subs1 = []
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue