diff --git a/.gitignore b/.gitignore index 3e547277..cde13c94 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,6 @@ autoProcessMedia.cfg + +*.pyc +*.pyo + +postprocess.log diff --git a/autoProcess/Transcoder.py b/autoProcess/Transcoder.py index 6dcd2496..e23207e3 100644 --- a/autoProcess/Transcoder.py +++ b/autoProcess/Transcoder.py @@ -39,13 +39,17 @@ def Transcode_directory(dirName): mediaContainer = (config.get("Extensions", "mediaExtensions")).split(',') duplicate = int(config.get("Transcoder", "duplicate")) ignoreExtensions = (config.get("Transcoder", "ignoreExtensions")).split(',') - outputVideoExtension = config.get("Transcoder", "outputVideoExtension") - outputVideoCodec = config.get("Transcoder", "outputVideoCodec") - outputVideoPreset = config.get("Transcoder", "outputVideoPreset") - outputVideoFramerate = config.get("Transcoder", "outputVideoFramerate") - outputVideoBitrate = config.get("Transcoder", "outputVideoBitrate") - outputAudioCodec = config.get("Transcoder", "outputAudioCodec") - outputAudioBitrate = config.get("Transcoder", "outputAudioBitrate") + outputVideoExtension = config.get("Transcoder", "outputVideoExtension").strip() + outputVideoCodec = config.get("Transcoder", "outputVideoCodec").strip() + outputVideoPreset = config.get("Transcoder", "outputVideoPreset").strip() + outputVideoFramerate = config.get("Transcoder", "outputVideoFramerate").strip() + outputVideoBitrate = config.get("Transcoder", "outputVideoBitrate").strip() + outputAudioCodec = config.get("Transcoder", "outputAudioCodec").strip() + outputAudioBitrate = config.get("Transcoder", "outputAudioBitrate").strip() + outputSubtitleCodec = config.get("Transcoder", "outputSubtitleCodec").strip() + + map(lambda ext: ext.strip(), mediaContainer) + map(lambda ext: ext.strip(), ignoreExtensions) Logger.info("Checking for files to be transcoded") final_result = 0 # initialize as successful @@ -61,25 +65,36 @@ def Transcode_directory(dirName): outputVideoExtension = '-transcoded' + outputVideoExtension # adds '-transcoded.ext' newfilePath = os.path.normpath(name + outputVideoExtension) - command = [ffmpeg, '-i', filePath] - if outputVideoCodec: + command = [ffmpeg, '-i', filePath, '-map', '0'] + if len(outputVideoCodec) > 0: command.append('-c:v') command.append(outputVideoCodec) if outputVideoCodec == 'libx264' and outputVideoPreset: command.append('-preset') command.append(outputVideoPreset) - if outputVideoFramerate: + else: + command.append('-c:v') + command.append('copy') + if len(outputVideoFramerate) > 0: command.append('-r') command.append(outputVideoFramerate) - if outputVideoBitrate: + if len(outputVideoBitrate) > 0: command.append('-b:v') command.append(outputVideoBitrate) - if outputAudioCodec: + if len(outputAudioCodec) > 0: command.append('-c:a') command.append(outputAudioCodec) - if outputAudioBitrate: + else: + command.append('-c:a') + command.append('copy') + if len(outputAudioBitrate) > 0: command.append('-b:a') command.append(outputAudioBitrate) + if len(outputSubtitleCodec) > 0: + command.append('-c:s') + command.append(outputSubtitleCodec) + else: + command.append('-sn') # Don't copy the subtitles over command.append(newfilePath) Logger.debug("Transcoding video %s to %s", filePath, newfilePath) diff --git a/autoProcessMedia.cfg.sample b/autoProcessMedia.cfg.sample index 77c5467f..1a9d367c 100644 --- a/autoProcessMedia.cfg.sample +++ b/autoProcessMedia.cfg.sample @@ -110,6 +110,7 @@ outputVideoFramerate = 24 outputVideoBitrate = 800k outputAudioCodec = libmp3lame outputAudioBitrate = 128k +outputSubtitleCodec = # Logging configuration [loggers]