Language names in audio tracks and subtitles

Change made by "Young" cat @alfablac
This commit is contained in:
Ory 2021-07-22 20:14:08 -03:00 committed by GitHub
parent f81ad4c57c
commit a3e3a53435
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -76,9 +76,7 @@ const buildCommandMkvMerge = (videoAndAudio, onlyVid, onlyAudio, subtitles, outp
args.push(`-o "${output}"`);
args.push(
'--no-date',
'--disable-track-statistics-tags',
'--engage no_variable_data',
'--global-tags "./tag.xml"',
);
for (let vid of onlyVid) {
@ -100,6 +98,8 @@ const buildCommandMkvMerge = (videoAndAudio, onlyVid, onlyAudio, subtitles, outp
'--audio-tracks 1'
);
args.push('--track-name 0:[Funimation]');
let trackName = subDict[vid.lang];
args.push('--track-name',`1:"${trackName}"`);
args.push(`--language 1:${getLanguageCode(vid.lang, vid.lang)}`);
hasVideo = true;
} else {
@ -107,12 +107,16 @@ const buildCommandMkvMerge = (videoAndAudio, onlyVid, onlyAudio, subtitles, outp
'--no-video',
'--audio-tracks 1'
);
let trackName = subDict[vid.lang];
args.push('--track-name',`1:"${trackName}"`);
args.push(`--language 1:${getLanguageCode(vid.lang, vid.lang)}`);
}
args.push(`"${vid.path}"`);
}
for (let aud of onlyAudio) {
let trackName = subDict[aud.lang];
args.push('--track-name',`0:"${trackName}"`);
args.push(`--language 0:${getLanguageCode(aud.lang, aud.lang)}`);
args.push(
'--no-video',
@ -123,9 +127,11 @@ const buildCommandMkvMerge = (videoAndAudio, onlyVid, onlyAudio, subtitles, outp
if(subtitles.length > 0){
for (let subObj of subtitles) {
args.push('--language',`0:${getLanguageCode(subObj.language)}`);
args.push(`"${subObj.file}"`);
}
let trackName = subDict[subObj.language];
args.push('--track-name',`0:"${trackName}"`);
args.push('--language',`0:${getLanguageCode(subObj.language)}`);
args.push(`"${subObj.file}"`);
}
} else {
args.push(
'--no-subtitles',
@ -135,7 +141,12 @@ const buildCommandMkvMerge = (videoAndAudio, onlyVid, onlyAudio, subtitles, outp
return args.join(' ');
};
const subDict = {
'en': 'English (United State)',
'es': 'Español (Latinoamericano)',
'pt': 'Português (Brasil)',
'ja': '日本語'
};
const getLanguageCode = (from, _default = 'eng') => {
for (let lang in iso639.iso_639_2) {
let langObj = iso639.iso_639_2[lang];