mirror of
https://github.com/anidl/multi-downloader-nx.git
synced 2026-04-21 00:12:05 +00:00
Fixed #105
This commit is contained in:
parent
e632a1fd7f
commit
ec4a389d8b
3 changed files with 14 additions and 8 deletions
3
funi.js
3
funi.js
|
|
@ -737,7 +737,8 @@ async function downloadFile(filename, chunkList) {
|
|||
const downloadStatus = await new hlsDownload({
|
||||
m3u8json: chunkList,
|
||||
output: `${filename + '.ts'}`,
|
||||
timeout: argv.timeout
|
||||
timeout: argv.timeout,
|
||||
pcount: argv.partsize
|
||||
}).download()
|
||||
|
||||
return downloadStatus.ok;
|
||||
|
|
|
|||
|
|
@ -13,26 +13,28 @@ const buildCommandFFmpeg = (simul, videoAndAudio, onlyVid, onlyAudio, subtitles,
|
|||
let metaData = [];
|
||||
|
||||
let index = 0;
|
||||
let audioIndex = 0;
|
||||
let hasVideo = false;
|
||||
console.log(videoAndAudio, onlyAudio, onlyVid)
|
||||
for (let vid of videoAndAudio) {
|
||||
args.push(`-i "${vid.path}"`);
|
||||
if (!hasVideo) {
|
||||
metaData.push(`-map ${index}`);
|
||||
metaData.push(`-metadata:s:a:${index} language=${getLanguageCode(vid.lang, vid.lang)}`);
|
||||
metaData.push(`-metadata:s:a:${audioIndex} language=${getLanguageCode(vid.lang, vid.lang)}`);
|
||||
metaData.push(`-metadata:s:v:${index} title="[Funimation]"`);
|
||||
hasVideo = true;
|
||||
} else {
|
||||
metaData.push(`-map ${index}:a`);
|
||||
metaData.push(`-metadata:s:a:${index} language=${getLanguageCode(vid.lang, vid.lang)}`);
|
||||
metaData.push(`-metadata:s:a:${audioIndex} language=${getLanguageCode(vid.lang, vid.lang)}`);
|
||||
}
|
||||
audioIndex++;
|
||||
index++;
|
||||
}
|
||||
|
||||
for (let vid of onlyVid) {
|
||||
if (!hasVideo) {
|
||||
args.push(`-i "${vid.path}"`);
|
||||
metaData.push(`-map ${index}`);
|
||||
metaData.push(`-metadata:s:a:${index} language=${getLanguageCode(vid.lang, vid.lang)}`);
|
||||
metaData.push(`-map ${index} -map -${index}:a`);
|
||||
metaData.push(`-metadata:s:v:${index} title="[Funimation]"`);
|
||||
hasVideo = true;
|
||||
index++;
|
||||
|
|
@ -42,8 +44,9 @@ const buildCommandFFmpeg = (simul, videoAndAudio, onlyVid, onlyAudio, subtitles,
|
|||
for (let aud of onlyAudio) {
|
||||
args.push(`-i "${aud.path}"`);
|
||||
metaData.push(`-map ${index}`);
|
||||
metaData.push(`-metadata:s:a:${index} language=${getLanguageCode(aud.lang, aud.lang)}`);
|
||||
metaData.push(`-metadata:s:a:${audioIndex} language=${getLanguageCode(aud.lang, aud.lang)}`);
|
||||
index++;
|
||||
audioIndex++;
|
||||
}
|
||||
|
||||
for (let index in subtitles) {
|
||||
|
|
@ -58,7 +61,7 @@ const buildCommandFFmpeg = (simul, videoAndAudio, onlyVid, onlyAudio, subtitles,
|
|||
'-c:a copy'
|
||||
);
|
||||
args.push(output.split('.').pop().toLowerCase() === 'mp4' ? '-c:s mov_text' : '-c:s ass');
|
||||
args.push(...subtitles.map((sub, index) => `-metadata:s:${index + 2} language=${getLanguageCode(sub.language)}`));
|
||||
args.push(...subtitles.map((sub, subindex) => `-metadata:s:${index + subindex} language=${getLanguageCode(sub.language)}`));
|
||||
args.push(`"${output}"`);
|
||||
return args.join(' ');
|
||||
};
|
||||
|
|
|
|||
|
|
@ -241,5 +241,7 @@ const showHelp = yargs.showHelp;
|
|||
module.exports = {
|
||||
appArgv,
|
||||
showHelp,
|
||||
availableFilenameVars
|
||||
availableFilenameVars,
|
||||
dubLang,
|
||||
subLang
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue