mirror of
https://github.com/clinton-hall/nzbToMedia.git
synced 2025-07-30 11:38:30 -07:00
added global nice and ionice for external processes. Fixes #479
This commit is contained in:
parent
6df93c16a1
commit
14935b5388
12 changed files with 164 additions and 30 deletions
|
@ -27,6 +27,15 @@
|
||||||
# Enable/Disable a safety check to ensure we don't process all downloads in the default_downloadDirectories by mistake.
|
# Enable/Disable a safety check to ensure we don't process all downloads in the default_downloadDirectories by mistake.
|
||||||
safe_mode = 1
|
safe_mode = 1
|
||||||
|
|
||||||
|
[Posix]
|
||||||
|
### Process priority setting for External commands (Extractor and Transcoder) on Posix (Unix/Linux/OSX) systems.
|
||||||
|
# Set the Niceness value for the nice command. These range from -20 (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
niceness = 10
|
||||||
|
# Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle.
|
||||||
|
ionice_class = 2
|
||||||
|
# Set the ionice scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data.
|
||||||
|
ionice_classdata = 4
|
||||||
|
|
||||||
[CouchPotato]
|
[CouchPotato]
|
||||||
#### autoProcessing for Movies
|
#### autoProcessing for Movies
|
||||||
#### movie - category that gets called for post-processing with CPS
|
#### movie - category that gets called for post-processing with CPS
|
||||||
|
@ -244,8 +253,6 @@
|
||||||
transcode = 0
|
transcode = 0
|
||||||
###### duplicate =1 will cretae a new file. =0 will replace the original
|
###### duplicate =1 will cretae a new file. =0 will replace the original
|
||||||
duplicate = 1
|
duplicate = 1
|
||||||
# Only works on Linux. Highest priority is -20, lowest priority is 19.
|
|
||||||
niceness = 0
|
|
||||||
ignoreExtensions = .avi,.mkv,.mp4
|
ignoreExtensions = .avi,.mkv,.mp4
|
||||||
# outputFastStart. 1 will use -movflags + faststart. 0 will disable this from being used.
|
# outputFastStart. 1 will use -movflags + faststart. 0 will disable this from being used.
|
||||||
outputFastStart = 0
|
outputFastStart = 0
|
||||||
|
|
|
@ -95,6 +95,23 @@
|
||||||
# This is a list of media extensions that are used to verify that the download does contain valid media.
|
# This is a list of media extensions that are used to verify that the download does contain valid media.
|
||||||
#mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso
|
#mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso
|
||||||
|
|
||||||
|
## Posix
|
||||||
|
|
||||||
|
# Niceness for external tasks Extractor and Transcoder.
|
||||||
|
#
|
||||||
|
# Set the Niceness value for the nice command. These range from -20 (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
#niceness=10
|
||||||
|
|
||||||
|
# ionice scheduling class (0, 1, 2, 3).
|
||||||
|
#
|
||||||
|
# Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle.
|
||||||
|
#ionice_class=2
|
||||||
|
|
||||||
|
# ionice scheduling class data.
|
||||||
|
#
|
||||||
|
# Set the ionice scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data.
|
||||||
|
#ionice_classdata=4
|
||||||
|
|
||||||
## Transcoder
|
## Transcoder
|
||||||
|
|
||||||
# getSubs (0, 1).
|
# getSubs (0, 1).
|
||||||
|
@ -117,11 +134,6 @@
|
||||||
# set to 1 to cretae a new file or 0 to replace the original
|
# set to 1 to cretae a new file or 0 to replace the original
|
||||||
#duplicate=1
|
#duplicate=1
|
||||||
|
|
||||||
# set niceness level.
|
|
||||||
#
|
|
||||||
# Only works on Linux. Highest priority is -20, lowest priority is 19.
|
|
||||||
#niceness=0
|
|
||||||
|
|
||||||
# ignore extensions.
|
# ignore extensions.
|
||||||
#
|
#
|
||||||
# list of extensions that won't be transcoded.
|
# list of extensions that won't be transcoded.
|
||||||
|
|
|
@ -61,6 +61,23 @@
|
||||||
# set this to where your Gamez completed downloads are.
|
# set this to where your Gamez completed downloads are.
|
||||||
#gzwatch_dir=
|
#gzwatch_dir=
|
||||||
|
|
||||||
|
## Posix
|
||||||
|
|
||||||
|
# Niceness for external tasks Extractor and Transcoder.
|
||||||
|
#
|
||||||
|
# Set the Niceness value for the nice command. These range from -20 (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
#niceness=10
|
||||||
|
|
||||||
|
# ionice scheduling class (0, 1, 2, 3).
|
||||||
|
#
|
||||||
|
# Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle.
|
||||||
|
#ionice_class=2
|
||||||
|
|
||||||
|
# ionice scheduling class data.
|
||||||
|
#
|
||||||
|
# Set the ionice scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data.
|
||||||
|
#ionice_classdata=4
|
||||||
|
|
||||||
## WakeOnLan
|
## WakeOnLan
|
||||||
|
|
||||||
# use WOL (0, 1).
|
# use WOL (0, 1).
|
||||||
|
|
|
@ -65,6 +65,23 @@
|
||||||
# Enable to replace local path with the path as per the mountPoints below.
|
# Enable to replace local path with the path as per the mountPoints below.
|
||||||
#hpremote_path=0
|
#hpremote_path=0
|
||||||
|
|
||||||
|
## Posix
|
||||||
|
|
||||||
|
# Niceness for external tasks Extractor and Transcoder.
|
||||||
|
#
|
||||||
|
# Set the Niceness value for the nice command. These range from -20 (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
#niceness=10
|
||||||
|
|
||||||
|
# ionice scheduling class (0, 1, 2, 3).
|
||||||
|
#
|
||||||
|
# Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle.
|
||||||
|
#ionice_class=2
|
||||||
|
|
||||||
|
# ionice scheduling class data.
|
||||||
|
#
|
||||||
|
# Set the ionice scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data.
|
||||||
|
#ionice_classdata=4
|
||||||
|
|
||||||
## Network
|
## Network
|
||||||
|
|
||||||
# Network Mount Points (Needed for remote path above)
|
# Network Mount Points (Needed for remote path above)
|
||||||
|
|
|
@ -291,6 +291,23 @@
|
||||||
# This is a list of media extensions that are used to verify that the download does contain valid media.
|
# This is a list of media extensions that are used to verify that the download does contain valid media.
|
||||||
#mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso
|
#mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso
|
||||||
|
|
||||||
|
## Posix
|
||||||
|
|
||||||
|
# Niceness for external tasks Extractor and Transcoder.
|
||||||
|
#
|
||||||
|
# Set the Niceness value for the nice command. These range from -20 (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
#niceness=10
|
||||||
|
|
||||||
|
# ionice scheduling class (0, 1, 2, 3).
|
||||||
|
#
|
||||||
|
# Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle.
|
||||||
|
#ionice_class=2
|
||||||
|
|
||||||
|
# ionice scheduling class data.
|
||||||
|
#
|
||||||
|
# Set the ionice scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data.
|
||||||
|
#ionice_classdata=4
|
||||||
|
|
||||||
## Transcoder
|
## Transcoder
|
||||||
|
|
||||||
# getSubs (0, 1).
|
# getSubs (0, 1).
|
||||||
|
@ -313,11 +330,6 @@
|
||||||
# set to 1 to cretae a new file or 0 to replace the original
|
# set to 1 to cretae a new file or 0 to replace the original
|
||||||
#duplicate=1
|
#duplicate=1
|
||||||
|
|
||||||
# set niceness level.
|
|
||||||
#
|
|
||||||
# Only works on Linux. Highest priority is -20, lowest priority is 19.
|
|
||||||
#niceness=0
|
|
||||||
|
|
||||||
# ignore extensions.
|
# ignore extensions.
|
||||||
#
|
#
|
||||||
# list of extensions that won't be transcoded.
|
# list of extensions that won't be transcoded.
|
||||||
|
|
|
@ -69,6 +69,23 @@
|
||||||
# Enable to replace local path with the path as per the mountPoints below.
|
# Enable to replace local path with the path as per the mountPoints below.
|
||||||
#myremote_path=0
|
#myremote_path=0
|
||||||
|
|
||||||
|
## Posix
|
||||||
|
|
||||||
|
# Niceness for external tasks Extractor and Transcoder.
|
||||||
|
#
|
||||||
|
# Set the Niceness value for the nice command. These range from -20 (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
#niceness=10
|
||||||
|
|
||||||
|
# ionice scheduling class (0, 1, 2, 3).
|
||||||
|
#
|
||||||
|
# Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle.
|
||||||
|
#ionice_class=2
|
||||||
|
|
||||||
|
# ionice scheduling class data.
|
||||||
|
#
|
||||||
|
# Set the ionice scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data.
|
||||||
|
#ionice_classdata=4
|
||||||
|
|
||||||
## Network
|
## Network
|
||||||
|
|
||||||
# Network Mount Points (Needed for remote path above)
|
# Network Mount Points (Needed for remote path above)
|
||||||
|
|
|
@ -85,6 +85,23 @@
|
||||||
# This is a list of media extensions that are used to verify that the download does contain valid media.
|
# This is a list of media extensions that are used to verify that the download does contain valid media.
|
||||||
#mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso
|
#mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso
|
||||||
|
|
||||||
|
## Posix
|
||||||
|
|
||||||
|
# Niceness for external tasks Extractor and Transcoder.
|
||||||
|
#
|
||||||
|
# Set the Niceness value for the nice command. These range from -20 (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
#niceness=10
|
||||||
|
|
||||||
|
# ionice scheduling class (0, 1, 2, 3).
|
||||||
|
#
|
||||||
|
# Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle.
|
||||||
|
#ionice_class=2
|
||||||
|
|
||||||
|
# ionice scheduling class data.
|
||||||
|
#
|
||||||
|
# Set the ionice scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data.
|
||||||
|
#ionice_classdata=4
|
||||||
|
|
||||||
## Transcoder
|
## Transcoder
|
||||||
|
|
||||||
# getSubs (0, 1).
|
# getSubs (0, 1).
|
||||||
|
@ -107,11 +124,6 @@
|
||||||
# set to 1 to cretae a new file or 0 to replace the original
|
# set to 1 to cretae a new file or 0 to replace the original
|
||||||
#duplicate=1
|
#duplicate=1
|
||||||
|
|
||||||
# set niceness level.
|
|
||||||
#
|
|
||||||
# Only works on Linux. Highest priority is -20, lowest priority is 19.
|
|
||||||
#niceness = 0
|
|
||||||
|
|
||||||
# ignore extensions.
|
# ignore extensions.
|
||||||
#
|
#
|
||||||
# list of extensions that won't be transcoded.
|
# list of extensions that won't be transcoded.
|
||||||
|
|
|
@ -103,6 +103,23 @@
|
||||||
# This is a list of media extensions that are used to verify that the download does contain valid media.
|
# This is a list of media extensions that are used to verify that the download does contain valid media.
|
||||||
#mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso
|
#mediaExtensions=.mkv,.avi,.divx,.xvid,.mov,.wmv,.mp4,.mpg,.mpeg,.vob,.iso
|
||||||
|
|
||||||
|
## Posix
|
||||||
|
|
||||||
|
# Niceness for external tasks Extractor and Transcoder.
|
||||||
|
#
|
||||||
|
# Set the Niceness value for the nice command. These range from -20 (most favorable to the process) to 19 (least favorable to the process).
|
||||||
|
#niceness=10
|
||||||
|
|
||||||
|
# ionice scheduling class (0, 1, 2, 3).
|
||||||
|
#
|
||||||
|
# Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle.
|
||||||
|
#ionice_class=2
|
||||||
|
|
||||||
|
# ionice scheduling class data.
|
||||||
|
#
|
||||||
|
# Set the ionice scheduling class data. This defines the class data, if the class accepts an argument. For real time and best-effort, 0-7 is valid data.
|
||||||
|
#ionice_classdata=4
|
||||||
|
|
||||||
## Transcoder
|
## Transcoder
|
||||||
|
|
||||||
# getSubs (0, 1).
|
# getSubs (0, 1).
|
||||||
|
@ -125,11 +142,6 @@
|
||||||
# set to 1 to cretae a new file or 0 to replace the original
|
# set to 1 to cretae a new file or 0 to replace the original
|
||||||
#duplicate=1
|
#duplicate=1
|
||||||
|
|
||||||
# set niceness level.
|
|
||||||
#
|
|
||||||
# Only works on Linux. Highest priority is -20, lowest priority is 19.
|
|
||||||
#niceness=0
|
|
||||||
|
|
||||||
# ignore extensions.
|
# ignore extensions.
|
||||||
#
|
#
|
||||||
# list of extensions that won't be transcoded.
|
# list of extensions that won't be transcoded.
|
||||||
|
|
|
@ -164,7 +164,7 @@ OUTPUTQUALITYPERCENT = None
|
||||||
FFMPEG = None
|
FFMPEG = None
|
||||||
FFPROBE = None
|
FFPROBE = None
|
||||||
CHECK_MEDIA = None
|
CHECK_MEDIA = None
|
||||||
NICENESS = None
|
NICENESS = []
|
||||||
|
|
||||||
PASSWORDSFILE = None
|
PASSWORDSFILE = None
|
||||||
DOWNLOADINFO = None
|
DOWNLOADINFO = None
|
||||||
|
@ -332,6 +332,21 @@ def initialize(section=None):
|
||||||
if REMOTEPATHS:
|
if REMOTEPATHS:
|
||||||
REMOTEPATHS = [ tuple(item.split(',')) for item in REMOTEPATHS.split('|') ] # /volume1/Public/,E:\|/volume2/share/,\\NAS\
|
REMOTEPATHS = [ tuple(item.split(',')) for item in REMOTEPATHS.split('|') ] # /volume1/Public/,E:\|/volume2/share/,\\NAS\
|
||||||
|
|
||||||
|
try:
|
||||||
|
NICENESS.extend(['nice', '-n', int(CFG["Posix"]["niceness"])])
|
||||||
|
except: pass
|
||||||
|
try:
|
||||||
|
NICENESS.extend(['ionice', '-c%s' % (int(CFG["Posix"]["ionice_class"]))])
|
||||||
|
except: pass
|
||||||
|
try:
|
||||||
|
if 'ionice' in NICENESS:
|
||||||
|
NICENESS.extend(['-n%s' % (int(CFG["Posix"]["ionice_classdata"]))])
|
||||||
|
else:
|
||||||
|
NICENESS.extend(['ionice', '-n%s' % (int(CFG["Posix"]["ionice_classdata"]))])
|
||||||
|
except: pass
|
||||||
|
if 'ionice' in NICENESS:
|
||||||
|
NICENESS.extend(['-t'])
|
||||||
|
|
||||||
COMPRESSEDCONTAINER = [re.compile('.r\d{2}$', re.I),
|
COMPRESSEDCONTAINER = [re.compile('.r\d{2}$', re.I),
|
||||||
re.compile('.part\d+.rar$', re.I),
|
re.compile('.part\d+.rar$', re.I),
|
||||||
re.compile('.rar$', re.I)]
|
re.compile('.rar$', re.I)]
|
||||||
|
@ -353,9 +368,6 @@ def initialize(section=None):
|
||||||
try:
|
try:
|
||||||
OUTPUTQUALITYPERCENT = int(CFG["Transcoder"]["outputQualityPercent"])
|
OUTPUTQUALITYPERCENT = int(CFG["Transcoder"]["outputQualityPercent"])
|
||||||
except: pass
|
except: pass
|
||||||
try:
|
|
||||||
NICENESS = int(CFG["Transcoder"]["niceness"])
|
|
||||||
except: pass
|
|
||||||
OUTPUTVIDEOPATH = CFG["Transcoder"]["outputVideoPath"]
|
OUTPUTVIDEOPATH = CFG["Transcoder"]["outputVideoPath"]
|
||||||
PROCESSOUTPUT = int(CFG["Transcoder"]["processOutput"])
|
PROCESSOUTPUT = int(CFG["Transcoder"]["processOutput"])
|
||||||
ALANGUAGE = CFG["Transcoder"]["audioLanguage"]
|
ALANGUAGE = CFG["Transcoder"]["audioLanguage"]
|
||||||
|
|
|
@ -88,6 +88,8 @@ def extract(filePath, outputDestination):
|
||||||
os.chdir(outputDestination) # Not all unpack commands accept full paths, so just extract into this directory
|
os.chdir(outputDestination) # Not all unpack commands accept full paths, so just extract into this directory
|
||||||
try: # now works same for nt and *nix
|
try: # now works same for nt and *nix
|
||||||
cmd.append(filePath) # add filePath to final cmd arg.
|
cmd.append(filePath) # add filePath to final cmd arg.
|
||||||
|
if platform.system() != 'Windows':
|
||||||
|
cmd = nzbtomedia.NICENESS + cmd
|
||||||
cmd2 = cmd
|
cmd2 = cmd
|
||||||
cmd2.append("-p-") # don't prompt for password.
|
cmd2.append("-p-") # don't prompt for password.
|
||||||
p = Popen(cmd2) # should extract files fine.
|
p = Popen(cmd2) # should extract files fine.
|
||||||
|
|
|
@ -171,6 +171,10 @@ class ConfigObj(configobj.ConfigObj, Section):
|
||||||
if option == "forceClean":
|
if option == "forceClean":
|
||||||
CFG_NEW['General']['force_clean'] = value
|
CFG_NEW['General']['force_clean'] = value
|
||||||
values.pop(option)
|
values.pop(option)
|
||||||
|
if section in ["Transcoder"]:
|
||||||
|
if option in ["niceness"]:
|
||||||
|
CFG_NEW['Posix'][option] = value
|
||||||
|
values.pop(option)
|
||||||
if option == "remote_path":
|
if option == "remote_path":
|
||||||
if value and not value in ['0', '1', 0, 1]:
|
if value and not value in ['0', '1', 0, 1]:
|
||||||
value = 1
|
value = 1
|
||||||
|
@ -369,13 +373,23 @@ class ConfigObj(configobj.ConfigObj, Section):
|
||||||
value = os.environ[key]
|
value = os.environ[key]
|
||||||
CFG_NEW[section][option] = value
|
CFG_NEW[section][option] = value
|
||||||
|
|
||||||
|
section = "Posix"
|
||||||
|
envKeys = ['NICENESS', 'IONICE_CLASS', 'IONICE_CLASSDATA']
|
||||||
|
cfgKeys = ['niceness', 'ionice_class', 'ionice_classdata']
|
||||||
|
for index in range(len(envKeys)):
|
||||||
|
key = 'NZBPO_' + envKeys[index]
|
||||||
|
if os.environ.has_key(key):
|
||||||
|
option = cfgKeys[index]
|
||||||
|
value = os.environ[key]
|
||||||
|
CFG_NEW[section][option] = value
|
||||||
|
|
||||||
section = "Transcoder"
|
section = "Transcoder"
|
||||||
envKeys = ['TRANSCODE', 'DUPLICATE', 'NICENESS', 'IGNOREEXTENSIONS', 'OUTPUTFASTSTART', 'OUTPUTVIDEOPATH', 'PROCESSOUTPUT', 'AUDIOLANGUAGE', 'ALLAUDIOLANGUAGES', 'SUBLANGUAGES',
|
envKeys = ['TRANSCODE', 'DUPLICATE', 'IGNOREEXTENSIONS', 'OUTPUTFASTSTART', 'OUTPUTVIDEOPATH', 'PROCESSOUTPUT', 'AUDIOLANGUAGE', 'ALLAUDIOLANGUAGES', 'SUBLANGUAGES',
|
||||||
'ALLSUBLANGUAGES', 'EMBEDSUBS', 'BURNINSUBTITLE', 'EXTRACTSUBS', 'EXTERNALSUBDIR', 'OUTPUTDEFAULT', 'OUTPUTVIDEOEXTENSION', 'OUTPUTVIDEOCODEC', 'VIDEOCODECALLOW',
|
'ALLSUBLANGUAGES', 'EMBEDSUBS', 'BURNINSUBTITLE', 'EXTRACTSUBS', 'EXTERNALSUBDIR', 'OUTPUTDEFAULT', 'OUTPUTVIDEOEXTENSION', 'OUTPUTVIDEOCODEC', 'VIDEOCODECALLOW',
|
||||||
'OUTPUTVIDEOPRESET', 'OUTPUTVIDEOFRAMERATE', 'OUTPUTVIDEOBITRATE', 'OUTPUTAUDIOCODEC', 'AUDIOCODECALLOW', 'OUTPUTAUDIOBITRATE', 'OUTPUTQUALITYPERCENT', 'GETSUBS',
|
'OUTPUTVIDEOPRESET', 'OUTPUTVIDEOFRAMERATE', 'OUTPUTVIDEOBITRATE', 'OUTPUTAUDIOCODEC', 'AUDIOCODECALLOW', 'OUTPUTAUDIOBITRATE', 'OUTPUTQUALITYPERCENT', 'GETSUBS',
|
||||||
'OUTPUTAUDIOTRACK2CODEC', 'AUDIOCODEC2ALLOW', 'OUTPUTAUDIOTRACK2BITRATE', 'OUTPUTAUDIOOTHERCODEC', 'AUDIOOTHERCODECALLOW', 'OUTPUTAUDIOOTHERBITRATE',
|
'OUTPUTAUDIOTRACK2CODEC', 'AUDIOCODEC2ALLOW', 'OUTPUTAUDIOTRACK2BITRATE', 'OUTPUTAUDIOOTHERCODEC', 'AUDIOOTHERCODECALLOW', 'OUTPUTAUDIOOTHERBITRATE',
|
||||||
'OUTPUTSUBTITLECODEC', 'OUTPUTAUDIOCHANNELS', 'OUTPUTAUDIOTRACK2CHANNELS', 'OUTPUTAUDIOOTHERCHANNELS']
|
'OUTPUTSUBTITLECODEC', 'OUTPUTAUDIOCHANNELS', 'OUTPUTAUDIOTRACK2CHANNELS', 'OUTPUTAUDIOOTHERCHANNELS']
|
||||||
cfgKeys = ['transcode', 'duplicate', 'niceness', 'ignoreExtensions', 'outputFastStart', 'outputVideoPath', 'processOutput', 'audioLanguage', 'allAudioLanguages', 'subLanguages',
|
cfgKeys = ['transcode', 'duplicate', 'ignoreExtensions', 'outputFastStart', 'outputVideoPath', 'processOutput', 'audioLanguage', 'allAudioLanguages', 'subLanguages',
|
||||||
'allSubLanguages', 'embedSubs', 'burnInSubtitle', 'extractSubs', 'externalSubDir', 'outputDefault', 'outputVideoExtension', 'outputVideoCodec', 'VideoCodecAllow',
|
'allSubLanguages', 'embedSubs', 'burnInSubtitle', 'extractSubs', 'externalSubDir', 'outputDefault', 'outputVideoExtension', 'outputVideoCodec', 'VideoCodecAllow',
|
||||||
'outputVideoPreset', 'outputVideoFramerate', 'outputVideoBitrate', 'outputAudioCodec', 'AudioCodecAllow', 'outputAudioBitrate', 'outputQualityPercent', 'getSubs',
|
'outputVideoPreset', 'outputVideoFramerate', 'outputVideoBitrate', 'outputAudioCodec', 'AudioCodecAllow', 'outputAudioBitrate', 'outputQualityPercent', 'getSubs',
|
||||||
'outputAudioTrack2Codec', 'AudioCodec2Allow', 'outputAudioTrack2Bitrate', 'outputAudioOtherCodec', 'AudioOtherCodecAllow', 'outputAudioOtherBitrate',
|
'outputAudioTrack2Codec', 'AudioCodec2Allow', 'outputAudioTrack2Bitrate', 'outputAudioOtherCodec', 'AudioOtherCodecAllow', 'outputAudioOtherBitrate',
|
||||||
|
|
|
@ -318,7 +318,7 @@ def buildCommands(file, newDir):
|
||||||
command.extend(other_cmd)
|
command.extend(other_cmd)
|
||||||
command.append(newfilePath)
|
command.append(newfilePath)
|
||||||
if platform.system() != 'Windows':
|
if platform.system() != 'Windows':
|
||||||
command = ['nice', '-%d' % nzbtomedia.NICENESS] + command
|
command = nzbtomedia.NICENESS + command
|
||||||
return command
|
return command
|
||||||
|
|
||||||
def get_subs(file):
|
def get_subs(file):
|
||||||
|
@ -350,7 +350,7 @@ def extract_subs(file, newfilePath, bitbucket):
|
||||||
outputFile = os.path.join(subdir, "%s(%s)%s.srt" %(name, n, lan))
|
outputFile = os.path.join(subdir, "%s(%s)%s.srt" %(name, n, lan))
|
||||||
command = [nzbtomedia.FFMPEG, '-loglevel', 'warning', '-i', sub, '-vn', '-an', '-codec:s:' + str(n), 'srt', outputFile]
|
command = [nzbtomedia.FFMPEG, '-loglevel', 'warning', '-i', sub, '-vn', '-an', '-codec:s:' + str(n), 'srt', outputFile]
|
||||||
if platform.system() != 'Windows':
|
if platform.system() != 'Windows':
|
||||||
command = ['nice', '-%d' % nzbtomedia.NICENESS] + command
|
command = nzbtomedia.NICENESS + command
|
||||||
|
|
||||||
logger.info("Extracting %s Subtitle from: %s" % (lan, file))
|
logger.info("Extracting %s Subtitle from: %s" % (lan, file))
|
||||||
cmd = ""
|
cmd = ""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue