clinton-hall / nzbToMedia

Provides NZB and Torrent postprocessing To CouchPotatoServer, SickBeard/SickRage, HeadPhones, Mylar and Gamez
GNU General Public License v3.0
671 stars 176 forks source link

Transcoding fails if incorrect language for audio/subtitle detected by ffmpeg #1087

Closed natoriousbigg closed 7 years ago

natoriousbigg commented 8 years ago

My setup: UnRAID 6.1 with SABnzbd and CouchPotato running in dockers.

I'm trying to use the transcoding feature to transcoding MKV -> MP4, converting DTS to AC3 and AAC using the "Roku-1080p" profile. I notice that transcoding fail when embedding subtitle feature is turned on (embedSubs = 1). When I turn off that feature, it seems to work it works.

And as a separate issue, subtitle/audio language is being incorrectly detected and the release group name is being used instead (language=X264-AMIABLE). Please see attached log and config file below.

Error log:

<[15:01:10] [INFO]::MAIN: Loading config from [/scripts/autoProcessMedia.cfg] [15:01:10] [INFO]::ENVIRONMENT: LANG: en_US.UTF-8 [15:01:10] [INFO]::ENVIRONMENT: TERM: xterm [15:01:10] [INFO]::ENVIRONMENT: PGID: 100 [15:01:10] [INFO]::ENVIRONMENT: LANGUAGE: en_US:en [15:01:10] [INFO]::ENVIRONMENT: DEBIAN_FRONTEND: noninteractive [15:01:10] [INFO]::ENVIRONMENT: OLDPWD: / [15:01:10] [INFO]::ENVIRONMENT: HOSTNAME: Tower [15:01:10] [INFO]::ENVIRONMENT: PUID: 99 [15:01:10] [INFO]::ENVIRONMENT: PWD: /scripts [15:01:10] [INFO]::ENVIRONMENT: APTLIST: sabnzbdplus unrar wget [15:01:10] [INFO]::ENVIRONMENT: PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin [15:01:10] [INFO]::ENVIRONMENT: HOME: /root [15:01:10] [INFO]::ENVIRONMENT: TZ: America/Guatemala [15:01:10] [INFO]::ENVIRONMENT: LC_ALL: en_US.UTF-8 [15:01:10] [INFO]::MAIN: Checking database structure... [15:01:10] [DEBUG]::MAIN: Checking Initial Schema database upgrade [15:01:10] [DB]::MAIN: nzbtomedia.db: SELECT 1 FROM sqlite_master WHERE name = ?; with args ('db_version',) [15:01:10] [DB]::MAIN: nzbtomedia.db: SELECT db_version FROM db_version [15:01:10] [DEBUG]::MAIN: InitialSchema upgrade not required [15:01:10] [INFO]::MAIN: Version checking is disabled, not checking for the newest version [15:01:10] [INFO]::MAIN: nzbToMedia Version:10.15 Branch:master (Linux 4.1.18-unRAID) [15:01:10] [INFO]::MAIN: ######################################################### [15:01:10] [INFO]::MAIN: ## ..::[nzbToMedia.py]::.. ## [15:01:10] [INFO]::MAIN: ######################################################### [15:01:10] [DEBUG]::MAIN: Options passed into nzbToMedia: ['./nzbToMedia.py', '/downloads/movies/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.cp(tt0061852)', 'The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.nzb', 'movies', '', 'generic'] [15:01:10] [INFO]::MAIN: Script triggered from generic program [15:01:10] [INFO]::MAIN: Auto-detected SECTION:CouchPotato [15:01:10] [DEBUG]::MAIN: Checking for archives to extract in directory: /downloads/movies/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.cp(tt0061852) [15:01:10] [INFO]::MAIN: Calling CouchPotato:movies to post-process:The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.nzb [15:01:10] [INFO]::MAIN: Attemping imdbID lookup for The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.nzb [15:01:10] [INFO]::MAIN: Searching folder and file names for imdbID ... [15:01:10] [INFO]::MAIN: Found imdbID [tt0061852] [15:01:10] [DEBUG]::MAIN: Opening URL: http://localhost:5050/api/1e219945fd35486aad77ea6b09e63608/media.get with PARAMS: {'id': 'tt0061852'} [15:01:10] [DEBUG]::MAIN: calling command: /scripts/ffmpeg/ffprobe -v quiet -print_format json -show_format -show_streams -show_error /scripts/tests/test.mp4 [15:01:10] [INFO]::TRANSCODER: Checking [The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.mkv] for corruption, please stand by ... [15:01:10] [DEBUG]::MAIN: calling command: /scripts/ffmpeg/ffprobe -v quiet -print_format json -show_format -show_streams -show_error /downloads/movies/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.cp(tt0061852)/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.mkv [15:01:10] [INFO]::TRANSCODER: SUCCESS: [The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.mkv] has no corruption. [15:01:10] [INFO]::MAIN: Checking for files to be transcoded [15:01:10] [DEBUG]::MAIN: calling command: /scripts/ffmpeg/ffprobe -v quiet -print_format json -show_format -show_streams -show_error /downloads/movies/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.cp(tt0061852)/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.mkv [15:01:10] [DEBUG]::MAIN: calling command: /scripts/ffmpeg/ffprobe -v quiet -print_format json -show_format -show_streams -show_error /downloads/movies/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.cp(tt0061852)/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.idx [15:01:10] [DEBUG]::MAIN: calling command: /scripts/ffmpeg/ffprobe -v quiet -print_format json -show_format -show_streams -show_error /downloads/movies/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.cp(tt0061852)/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.sub [15:01:10] [INFO]::MAIN: Transcoding video: /downloads/movies/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.cp(tt0061852)/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.mp4 [15:01:10] [DEBUG]::MAIN: calling command: nice -n0 ionice -c0 -n0 /scripts/ffmpeg/ffmpeg -loglevel warning -fflags +genpts -i /downloads/movies/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.cp(tt0061852)/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.mkv -i /downloads/movies/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.cp(tt0061852)/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.idx -i /downloads/movies/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.cp(tt0061852)/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.sub -map 0:0 -map 0:1 -map 0:1 -map 0:2 -map 0:3 -map 0:4 -map 0:5 -map 1:0 -map 2:0 -c:v copy -c:a:0 aac -strict -2 -ac:a:0 2 -b:a:0 160000 -c:a:1 ac3 -c:s mov_text -metadata:s:s:4 language=X264-AMIABLE -metadata:s:s:5 language=X264-AMIABLE /downloads/movies/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.cp(tt0061852)/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.mp4 [15:01:10] [ERROR]::MAIN: Transcoding of video to /downloads/movies/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.cp(tt0061852)/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.mp4 failed with result 1 [15:01:10] [ERROR]::COUCHPOTATO: Transcoding failed for files in /downloads/movies/The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.cp(tt0061852) [15:01:10] [ERROR]::MAIN: A problem was reported in the ./nzbToMedia.py script. CouchPotato: Failed to post-process - Transcoding failed!

Configuration:

` [General]

Enable/Disable update notifications

version_notify = 0
# Enable/Disable automatic updates
auto_update = 0
# Set to the full path to the git executable
git_path = ""
# GitHUB user for repo
git_user = ""
# GitHUB branch for repo
git_branch = ""
# Enable/Disable forceful cleaning of leftover files following postprocess 
force_clean = 0
# Enable/Disable logging debug messages to nzbtomedia.log
log_debug = 1
# Enable/Disable logging database messages to nzbtomedia.log
log_db = 1
# Enable/Disable logging environment variables to debug nzbtomedia.log (helpful to track down errors calling external tools.)
log_env = 1
# Enable/Disable logging git output to debug nzbtomedia.log (helpful to track down update failures.)
log_git = 0
# Set to the directory where your ffmpeg/ffprobe executables are located
ffmpeg_path = /scripts/ffmpeg
# Enable/Disable media file checking using ffprobe.
check_media = 1
# Enable/Disable a safety check to ensure we don't process all downloads in the default_downloadDirectories by mistake.
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 = 0
# Set the ionice scheduling class. 0 for none, 1 for real time, 2 for best-effort, 3 for idle.
ionice_class = 0
# 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 = 0

[CouchPotato]

autoProcessing for Movies

#### movie - category that gets called for post-processing with CPS
[[movie]]
    enabled = 0
    apikey = ""
    host = localhost
    port = 5050
    ###### ADVANCED USE - ONLY EDIT IF YOU KNOW WHAT YOU'RE DOING ######
    ssl = 0
    web_root = ""
    # Enable/Disable linking for Torrents
    Torrent_NoLink = 0
    keep_archive = 1
    method = renamer
    delete_failed = 0
    wait_for = 2
    extract = 1
    # Set this to minimum required size to consider a media file valid (in MB)
    minSize = 0
    # Enable/Disable deleting ignored files (samples and invalid media files)
    delete_ignored = 0
    ##### Enable if Couchpotato is on a remote server for this category
    remote_path = 0
    ##### Set to path where download client places completed downloads locally for this category
    watch_dir = ""
[[movies]]
    enabled = 1
    apikey = 111111111111111111
    host = localhost
    port = 5050
    ssl = 0
    web_root = ""
    Torrent_NoLink = 0
    keep_archive = 1
    method = renamer
    delete_failed = 0
    wait_for = 2
    extract = 1
    minSize = 0
    delete_ignored = 0
    remote_path = 0
    watch_dir = /downloads/movies

[SickBeard]

autoProcessing for TV Series

#### tv - category that gets called for post-processing with SB
[[tv]]
    enabled = 0
    host = localhost
    port = 8081
    username = ""
    password = ""
    ###### ADVANCED USE - ONLY EDIT IF YOU KNOW WHAT YOU'RE DOING ######
    web_root = ""
    ssl = 0
    fork = auto
    delete_failed = 0
    # Enable/Disable linking for Torrents
    Torrent_NoLink = 0
    keep_archive = 1
    process_method = ""
    # force processing of already processed content when running a manual scan.
    force = 0
    # tell SickRage to delete all source files after processing.
    delete_on = 0
    extract = 1
    nzbExtractionBy = Downloader
    # Set this to minimum required size to consider a media file valid (in MB)
    minSize = 0
    # Enable/Disable deleting ignored files (samples and invalid media files)
    delete_ignored = 0
    ##### Enable if SickBeard is on a remote server for this category
    remote_path = 0
    ##### Set to path where download client places completed downloads locally for this category
    watch_dir = ""

[NzbDrone]

autoProcessing for TV Series

#### ndCategory - category that gets called for post-processing with NzbDrone
[[tv]]
    enabled = 0
    apikey = ""
    host = localhost
    port = 8989
    username = ""
    password = ""
    ###### ADVANCED USE - ONLY EDIT IF YOU KNOW WHAT YOU'RE DOING ######
    web_root = ""
    ssl = 0
    delete_failed = 0
    # Enable/Disable linking for Torrents
    Torrent_NoLink = 0
    keep_archive = 1
    extract = 1
    nzbExtractionBy = Downloader
    wait_for = 2
    # Set this to minimum required size to consider a media file valid (in MB)
    minSize = 0
    # Enable/Disable deleting ignored files (samples and invalid media files)
    delete_ignored = 0
    ##### Enable if NzbDrone is on a remote server for this category
    remote_path = 0
    ##### Set to path where download client places completed downloads locally for this category
    watch_dir = ""

[HeadPhones]

autoProcessing for Music

#### music - category that gets called for post-processing with HP
[[music]]
    enabled = 0
    apikey = ""
    host = localhost
    port = 8181
    ###### ADVANCED USE - ONLY EDIT IF YOU KNOW WHAT YOU'RE DOING ######
    ssl = 0
    web_root = ""
    wait_for = 2
    # Enable/Disable linking for Torrents
    Torrent_NoLink = 0
    keep_archive = 1
    extract = 1
    # Set this to minimum required size to consider a media file valid (in MB)
    minSize = 0
    # Enable/Disable deleting ignored files (samples and invalid media files)
    delete_ignored = 0
    ##### Enable if HeadPhones is on a remote server for this category
    remote_path = 0
    ##### Set to path where download client places completed downloads locally for this category
    watch_dir = ""

[Mylar]

autoProcessing for Comics

#### comics - category that gets called for post-processing with Mylar
[[comics]]
    enabled = 0
    host = localhost
    port = 8090
    username = ""
    password = ""
    ###### ADVANCED USE - ONLY EDIT IF YOU KNOW WHAT YOU'RE DOING ######
    web_root = ""
    ssl = 0
    # Enable/Disable linking for Torrents
    Torrent_NoLink = 0
    keep_archive = 1
    extract = 1
    # Set this to minimum required size to consider a media file valid (in MB)
    minSize = 0
    # Enable/Disable deleting ignored files (samples and invalid media files)
    delete_ignored = 0
    ##### Enable if Mylar is on a remote server for this category
    remote_path = 0
    ##### Set to path where download client places completed downloads locally for this category
    watch_dir = ""

[Gamez]

autoProcessing for Games

#### games - category that gets called for post-processing with Gamez
[[games]]
    enabled = 0
    apikey = ""
    host = localhost
    port = 8085
    ###### 
    library = Set to path where you want the processed games to be moved to.
    ###### ADVANCED USE - ONLY EDIT IF YOU KNOW WHAT YOU'RE DOING ######
    ssl = 0
    web_root = ""
    # Enable/Disable linking for Torrents
    Torrent_NoLink = 0
    keep_archive = 1
    extract = 1
    # Set this to minimum required size to consider a media file valid (in MB)
    minSize = 0
    # Enable/Disable deleting ignored files (samples and invalid media files)
    delete_ignored = 0
    ##### Enable if Gamez is on a remote server for this category
    remote_path = 0
    ##### Set to path where download client places completed downloads locally for this category
    watch_dir = ""

[Network]

Enter Mount points as LocalPath,RemotePath and separate each pair with '|'

# e.g. MountPoints = /volume1/Public/,E:|/volume2/share/,\NAS\
mount_points = ""

[Nzb]

clientAgent - Supported clients: sabnzbd, nzbget
clientAgent = sabnzbd
###### SabNZBD (You must edit this if your using nzbToMedia.py with SabNZBD)
sabnzbd_host = http://localhost
sabnzbd_port = 8080
sabnzbd_apikey = 111111111111111111
###### Enter the default path to your default download directory (non-category downloads). this directory is protected by safe_mode.
default_downloadDirectory = /downloads

[Torrent]

clientAgent - Supported clients: utorrent, transmission, deluge, rtorrent, vuze, other
clientAgent = other
###### useLink - Set to hard for physical links, sym for symbolic links, move to move, move-sym to move and link back, and no to not use links (copy)
useLink = hard
###### outputDirectory - Default output directory (categories will be appended as sub directory to outputDirectory)
outputDirectory = /abs/path/to/complete/
###### Enter the default path to your default download directory (non-category downloads). this directory is protected by safe_mode. 
default_downloadDirectory = ""
###### Other categories/labels defined for your downloader. Does not include CouchPotato, SickBeard, HeadPhones, Mylar categories.
categories = music_videos, pictures, software, manual
###### A list of categories that you don't want to be flattened (i.e preserve the directory structure when copying/linking.
noFlatten = pictures, manual
###### uTorrent Hardlink solution (You must edit this if your using TorrentToMedia.py with uTorrent)
uTorrentWEBui = http://localhost:8090/gui/
uTorrentUSR = your username
uTorrentPWD = your password
###### Transmission (You must edit this if your using TorrentToMedia.py with Transmission)
TransmissionHost = localhost
TransmissionPort = 9091
TransmissionUSR = your username
TransmissionPWD = your password
#### Deluge (You must edit this if your using TorrentToMedia.py with deluge. Note that the host/port is for the deluge daemon, not the webui)
DelugeHost = localhost
DelugePort = 58846
DelugeUSR = your username
DelugePWD = your password
###### ADVANCED USE - ONLY EDIT IF YOU KNOW WHAT YOU'RE DOING ######
deleteOriginal = 0
chmodDirectory = 0
resume = 1
resumeOnFailure = 1

[Extensions] compressedExtensions = .zip, .rar, .7z, .gz, .bz, .tar, .arj, .1, .01, .001 mediaExtensions = .mkv, .avi, .divx, .xvid, .mov, .wmv, .mp4, .mpg, .mpeg, .vob, .iso, .m4v, .ts audioExtensions = .mp3, .aac, .ogg, .ape, .m4a, .asf, .wma, .flac metaExtensions = .nfo, .sub, .srt, .jpg, .gif

[Plex]

Only enter these details if you want to update plex library after processing.

# Do not enter these details if you send the plex notifications from Sickbeard/CouchPotato.
plex_host = localhost
plex_port = 32400
plex_token = ""
plex_ssl = 0
# Enter Plex category to section mapping as Category,section and separate each pair with '|'
# e.g. plex_sections = movie,3|tv,4
plex_sections = ""

[Transcoder]

getsubs. enable to download subtitles.

getSubs = 0
# subLanguages. create a list of languages in the order you want them in your subtitles. 
subLanguages = eng
# transcode. enable to use transcoder
transcode = 1
###### duplicate =1 will create a new file. =0 will replace the original
duplicate = 0
# concat. joins cd1 cd2 etc into a single video.
concat = 1
# IgnoreExtensions is a comma-separated list of extensions that will not be transcoded.
ignoreExtensions = .mp4
# outputFastStart. 1 will use -movflags + faststart. 0 will disable this from being used.
outputFastStart = 0
# outputQualityPercent. used as -q:a value. 0 will disable this from being used.
outputQualityPercent = 0
# outputVideoPath. Set path you want transcoded videos moved to. Leave blank to disable.
outputVideoPath = ""
# processOutput. 1 will send the outputVideoPath to SickBeard/CouchPotato. 0 will send original files.
processOutput = 0
# audioLanguage. set the 3 letter language code you want as your primary audio track.
audioLanguage = eng
# allAudioLanguages. 1 will keep all audio tracks (uses AudioCodec3) where available.
allAudioLanguages = 0
# allSubLanguages. 1 will keep all existing sub languages. 0 will discard those not in your list above.
allSubLanguages = 0
# embedSubs. 1 will embed external sub/srt subs into your video if this is supported.
embedSubs = 1
# burnInSubtitle. burns the default sub language into your video (needed for players that don't support subs)
burnInSubtitle = 0
# extractSubs. 1 will extract subs from the video file and save these as external srt files.
extractSubs = 0
# externalSubDir. set the directory where subs should be saved (if not the same directory as the video)
externalSubDir = ""
# hwAccel. 1 will set ffmpeg to enable hardware acceleration (this requires a recent ffmpeg)
hwAccel = 0
# generalOptions. Enter your additional ffmpeg options here with commas to separate each option/value (i.e replace spaces with commas).
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, mp4-scene-release
outputDefault = Roku-1080p
#### Define custom settings below.
outputVideoExtension = .mp4
outputVideoCodec = libx264
VideoCodecAllow = ""
outputVideoPreset = medium
outputVideoResolution = 1920:1080
outputVideoFramerate = 24
outputVideoBitrate = 800000
outputVideoCRF = 19
outputVideoLevel = 3.1
outputAudioCodec = ac3
AudioCodecAllow = ""
outputAudioChannels = 6
outputAudioBitrate = 640k
outputAudioTrack2Codec = aac
AudioCodec2Allow = ""
outputAudioTrack2Channels = 2
outputAudioTrack2Bitrate = 128000
outputAudioOtherCodec = libmp3lame
AudioOtherCodecAllow = ""
outputAudioOtherChannels = ""
outputAudioOtherBitrate = 128000
outputSubtitleCodec = ""

[WakeOnLan]

set wake = 1 to send WOL broadcast to the mac and test the server (e.g. xbmc) the host and port specified.
wake = 0
host = 192.168.1.37
port = 80
mac = 00:01:2e:2D:64:e1

[UserScript]

Use user_script for uncategorized downloads

#Set the categories to use external script.
#Use "UNCAT" to process non-category downloads, and "ALL" for all defined categories.
[[UNCAT]]
    #Enable/Disable this subsection category
    enabled = 0
    Torrent_NoLink = 0
    keep_archive = 1
    extract = 1
    #Enable if you are sending commands to a remote server for this category
    remote_path = 0
    #What extension do you want to process? Specify all the extension, or use "ALL" to process all files.
    user_script_mediaExtensions = .mkv, .avi, .divx, .xvid, .mov, .wmv, .mp4, .mpg, .mpeg
    #Specify the path to your custom script. Use "None" if you wish to link this category, but NOT run any external script.
    user_script_path = /nzbToMedia/userscripts/script.sh
    #Specify the argument(s) passed to script, comma separated in order.
    #for example FP,FN,DN, TN, TL for file path (absolute file name with path), file name, absolute directory name (with path), Torrent Name, Torrent Label/Category.
    #So the result is /media/test/script/script.sh FP FN DN TN TL. Add other arguments as needed eg -f, -r
    user_script_param = FN
    #Set user_script_runOnce = 0 to run for each file, or 1 to only run once (presumably on the entire directory).
    user_script_runOnce = 0
    #Specify the successcodes returned by the user script as a comma separated list. Linux default is 0
    user_script_successCodes = 0
    #Clean after? Note that delay function is used to prevent possible mistake :) Delay is intended as seconds
    user_script_clean = 1
    delay = 120
    #Unique path (directory) created for every download. set 0 to disable.
    unique_path = 1
    ##### Set to path where download client places completed downloads locally for this category
    watch_dir = ""

[ASCII]

Set convert =1 if you want to convert any "foreign" characters to ASCII (UTF8) before passing to SB/CP etc. Default is disabled (0).

convert = 0

[passwords]

enter the full path to a text file containing passwords to be used for extraction attempts.

# In the passwords file, every password should be on a new line
PassWordFile = ""

[Custom]

enter a list (comma separated) of Group Tags you want removed from filenames to help with subtitle matching.

# e.g remove_group = [rarbag],-NZBgeek
# be careful if your "group" is a common "real" word. Please report if you have any group replacements that would fall in this category.
remove_group = ""`
natoriousbigg commented 8 years ago

I think I found the problem. This mkv file contains sub/idx subtitle, which does not have an two letter coding for language at the end: The.Jungle.Book.1967.720p.BluRay.X264-AMIABLE.sub. Thus ffmpeg is detecting "X264-AMIABLE" as the language, causing it to fail during transcoding.

Can we add a feature to default to a specified language if the language for the audio/subtitle is specified?

clinton-hall commented 7 years ago

Hopefully this is resolved in currently nightly. please check and confirm.

natoriousbigg commented 7 years ago

Let me check and get back to you on this.

natoriousbigg commented 7 years ago

This works correctly now. Here's an example from the other subtitle bug fix. I tried to trip up nzbtomedia by adding trying to embed this subtitle: Return to Never Land (2002) 1080p.x264.aaaaaaa.srt. The "aaaaaaa" was ignore (no language metadata added) and subtitle embedded correctly.

nice -n6 ionice -c0 -n0 /usr/bin/ffmpeg -loglevel warning -fflags +genpts -i /mnt/downloads/movies/Return to Never Land (2002) 1080p.x264.mkv.cp(tt0280030)/Return to Never Land (2002) 1080p.x264.mkv -i /mnt/downloads/movies/Return to Never Land (2002) 1080p.x264.mkv.cp(tt0280030)/Return to Never Land (2002) 1080p.x264.aaaaaaa.srt -i /mnt/downloads/movies/Return to Never Land (2002) 1080p.x264.mkv.cp(tt0280030)/Return to Never Land (2002) 1080p.x264.en.srt -map 0:2 -map 0:3 -map 0:3 -map 1:0 -map 2:0 -c:v copy -c:a:0 aac -strict -2 -ac:a:0 2 -b:a:0 160000 -c:a:1 copy -c:s mov_text -metadata:s:s:1 language=eng -movflags +faststart /mnt/downloads/movies/Return to Never Land (2002) 1080p.x264.mkv.cp(tt0280030)/Return to Never Land (2002) 1080p.x264.mp4

Thanks!

clinton-hall commented 7 years ago

glad it works. I'm ging to try and merge this all up to master soon.