Force Muxer command
This commit is contained in:
parent
4e055418aa
commit
595b407b22
6 changed files with 29 additions and 6 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -19,5 +19,6 @@ token.yml
|
|||
lib
|
||||
test.*
|
||||
updates.json
|
||||
funi_token.yml
|
||||
cr_token.yml
|
||||
archive.json
|
||||
|
|
@ -857,7 +857,7 @@ async function muxStreams(data: DownloadedMedia[], output: string) {
|
|||
};
|
||||
})
|
||||
});
|
||||
const bin = Merger.checkMerger(cfg.bin, argv.mp4);
|
||||
const bin = Merger.checkMerger(cfg.bin, argv.mp4, argv.forceMuxer);
|
||||
// collect fonts info
|
||||
// mergers
|
||||
let isMuxed = false;
|
||||
|
|
|
|||
2
funi.ts
2
funi.ts
|
|
@ -731,7 +731,7 @@ async function downloadStreams(epsiode: FunimationMediaDownload){
|
|||
}
|
||||
|
||||
// check exec
|
||||
const mergerBin = merger.checkMerger(cfg.bin, argv.mp4);
|
||||
const mergerBin = merger.checkMerger(cfg.bin, argv.mp4, argv.forceMuxer);
|
||||
|
||||
if ( argv.novids ){
|
||||
console.log('[INFO] Video not downloaded. Skip muxing video.');
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import yargs, { Choices } from 'yargs';
|
||||
import { args, groups } from './module.args';
|
||||
import { args, AvailableMuxer, groups } from './module.args';
|
||||
|
||||
yargs(process.argv.slice(2));
|
||||
|
||||
let argvC: { [x: string]: unknown; username: string|undefined, password: string|undefined, silentAuth: boolean, skipSubMux: boolean, downloadArchive: boolean, addArchive: boolean, but: boolean, auth: boolean | undefined; dlFonts: boolean | undefined; search: string | undefined; 'search-type': string; page: number | undefined; 'search-locale': string; new: boolean | undefined; 'movie-listing': string | undefined; series: string | undefined; s: string | undefined; e: string | undefined; q: number; x: number; kstream: number; partsize: number; hslang: string; dlsubs: string[]; novids: boolean | undefined; noaudio: boolean | undefined; nosubs: boolean | undefined; dubLang: string[]; all: boolean; fontSize: number; allDubs: boolean; timeout: number; simul: boolean; mp4: boolean; skipmux: boolean | undefined; fileName: string; numbers: number; nosess: string; debug: boolean | undefined; nocleanup: boolean; help: boolean | undefined; service: 'funi' | 'crunchy'; update: boolean; fontName: string | undefined; _: (string | number)[]; $0: string; };
|
||||
let argvC: { [x: string]: unknown; forceMuxer: AvailableMuxer|undefined; username: string|undefined, password: string|undefined, silentAuth: boolean, skipSubMux: boolean, downloadArchive: boolean, addArchive: boolean, but: boolean, auth: boolean | undefined; dlFonts: boolean | undefined; search: string | undefined; 'search-type': string; page: number | undefined; 'search-locale': string; new: boolean | undefined; 'movie-listing': string | undefined; series: string | undefined; s: string | undefined; e: string | undefined; q: number; x: number; kstream: number; partsize: number; hslang: string; dlsubs: string[]; novids: boolean | undefined; noaudio: boolean | undefined; nosubs: boolean | undefined; dubLang: string[]; all: boolean; fontSize: number; allDubs: boolean; timeout: number; simul: boolean; mp4: boolean; skipmux: boolean | undefined; fileName: string; numbers: number; nosess: string; debug: boolean | undefined; nocleanup: boolean; help: boolean | undefined; service: 'funi' | 'crunchy'; update: boolean; fontName: string | undefined; _: (string | number)[]; $0: string; };
|
||||
|
||||
export type ArgvType = typeof argvC;
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ const availableFilenameVars: AvailableFilenameVars[] = [
|
|||
'service'
|
||||
];
|
||||
|
||||
export type AvailableMuxer = 'ffmpeg' | 'mkvmerge'
|
||||
export const muxer: AvailableMuxer[] = [ 'ffmpeg', 'mkvmerge' ];
|
||||
|
||||
type TAppArg<T extends boolean|string|number|unknown[]> = {
|
||||
name: string,
|
||||
group: keyof typeof groups,
|
||||
|
|
@ -538,6 +541,19 @@ const args: TAppArg<boolean|number|string|unknown[]>[] = [
|
|||
default: {
|
||||
default: false
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'forceMuxer',
|
||||
describe: 'Force the program to use said muxer or don\'t mux if the given muxer is not present',
|
||||
docDescribe: true,
|
||||
group: 'mux',
|
||||
service: 'both',
|
||||
type: 'string',
|
||||
usage: '${muxer}',
|
||||
choices: muxer,
|
||||
default: {
|
||||
default: undefined
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -201,11 +201,17 @@ class Merger {
|
|||
|
||||
public static checkMerger(bin: {
|
||||
mkvmerge?: string,
|
||||
ffmpeg?: string
|
||||
}, useMP4format: boolean) : {
|
||||
ffmpeg?: string,
|
||||
}, useMP4format: boolean, force: AvailableMuxer|undefined) : {
|
||||
MKVmerge?: string,
|
||||
FFmpeg?: string
|
||||
} {
|
||||
if (force && bin[force]) {
|
||||
return {
|
||||
FFmpeg: force === 'ffmpeg' ? bin.ffmpeg : undefined,
|
||||
MKVmerge: force === 'mkvmerge' ? bin.mkvmerge : undefined
|
||||
};
|
||||
}
|
||||
if (useMP4format && bin.ffmpeg) {
|
||||
return {
|
||||
FFmpeg: bin.ffmpeg
|
||||
|
|
|
|||
Loading…
Reference in a new issue