mirror of
https://github.com/neosubhamoy/neodlp.git
synced 2025-12-19 15:32:59 +05:30
(feat): added always re-encode video option in settings
This commit is contained in:
@@ -59,6 +59,7 @@ export default function App({ children }: { children: React.ReactNode }) {
|
||||
const PROXY_URL = useSettingsPageStatesStore(state => state.settings.proxy_url);
|
||||
const VIDEO_FORMAT = useSettingsPageStatesStore(state => state.settings.video_format);
|
||||
const AUDIO_FORMAT = useSettingsPageStatesStore(state => state.settings.audio_format);
|
||||
const ALWAYS_REENCODE_VIDEO = useSettingsPageStatesStore(state => state.settings.always_reencode_video);
|
||||
const EMBED_VIDEO_METADATA = useSettingsPageStatesStore(state => state.settings.embed_video_metadata);
|
||||
const EMBED_AUDIO_METADATA = useSettingsPageStatesStore(state => state.settings.embed_audio_metadata);
|
||||
const EMBED_AUDIO_THUMBNAIL = useSettingsPageStatesStore(state => state.settings.embed_audio_thumbnail);
|
||||
@@ -187,11 +188,19 @@ export default function App({ children }: { children: React.ReactNode }) {
|
||||
|
||||
if (fileType !== 'unknown' && (VIDEO_FORMAT !== 'auto' || AUDIO_FORMAT !== 'auto')) {
|
||||
if (VIDEO_FORMAT !== 'auto' && fileType === 'video+audio') {
|
||||
if (ALWAYS_REENCODE_VIDEO) {
|
||||
args.push('--recode-video', VIDEO_FORMAT);
|
||||
} else {
|
||||
args.push('--merge-output-format', VIDEO_FORMAT);
|
||||
}
|
||||
}
|
||||
if (VIDEO_FORMAT !== 'auto' && fileType === 'video') {
|
||||
if (ALWAYS_REENCODE_VIDEO) {
|
||||
args.push('--recode-video', VIDEO_FORMAT);
|
||||
} else {
|
||||
args.push('--remux-video', VIDEO_FORMAT);
|
||||
}
|
||||
}
|
||||
if (AUDIO_FORMAT !== 'auto' && fileType === 'audio') {
|
||||
args.push('--extract-audio', '--audio-format', AUDIO_FORMAT);
|
||||
}
|
||||
|
||||
@@ -64,6 +64,7 @@ export default function SettingsPage() {
|
||||
const proxyUrl = useSettingsPageStatesStore(state => state.settings.proxy_url);
|
||||
const videoFormat = useSettingsPageStatesStore(state => state.settings.video_format);
|
||||
const audioFormat = useSettingsPageStatesStore(state => state.settings.audio_format);
|
||||
const alwaysReencodeVideo = useSettingsPageStatesStore(state => state.settings.always_reencode_video);
|
||||
const embedVideoMetadata = useSettingsPageStatesStore(state => state.settings.embed_video_metadata);
|
||||
const embedAudioMetadata = useSettingsPageStatesStore(state => state.settings.embed_audio_metadata);
|
||||
const embedAudioThumbnail = useSettingsPageStatesStore(state => state.settings.embed_audio_thumbnail);
|
||||
@@ -452,6 +453,15 @@ export default function SettingsPage() {
|
||||
</div>
|
||||
</RadioGroup>
|
||||
</div>
|
||||
<div className="always-reencode-video">
|
||||
<h3 className="font-semibold">Always Re-Encode Video</h3>
|
||||
<p className="text-xs text-muted-foreground mb-3">Instead of remuxing (simple container change) always re-encode the video to the target format with best compatible codecs (better compatibility, takes longer processing time)</p>
|
||||
<Switch
|
||||
id="always-reencode-video"
|
||||
checked={alwaysReencodeVideo}
|
||||
onCheckedChange={(checked) => saveSettingsKey('always_reencode_video', checked)}
|
||||
/>
|
||||
</div>
|
||||
</TabsContent>
|
||||
<TabsContent key="metadata" value="metadata" className="flex flex-col gap-4 min-h-[235px]">
|
||||
<div className="embed-video-metadata">
|
||||
|
||||
@@ -112,6 +112,7 @@ export const useSettingsPageStatesStore = create<SettingsPageStatesStore>((set)
|
||||
proxy_url: '',
|
||||
video_format: 'auto',
|
||||
audio_format: 'auto',
|
||||
always_reencode_video: false,
|
||||
embed_video_metadata: false,
|
||||
embed_audio_metadata: true,
|
||||
embed_audio_thumbnail: true,
|
||||
@@ -151,6 +152,7 @@ export const useSettingsPageStatesStore = create<SettingsPageStatesStore>((set)
|
||||
proxy_url: '',
|
||||
video_format: 'auto',
|
||||
audio_format: 'auto',
|
||||
always_reencode_video: false,
|
||||
embed_video_metadata: false,
|
||||
embed_audio_metadata: true,
|
||||
embed_audio_thumbnail: true,
|
||||
|
||||
@@ -14,6 +14,7 @@ export interface Settings {
|
||||
proxy_url: string;
|
||||
video_format: string;
|
||||
audio_format: string;
|
||||
always_reencode_video: boolean;
|
||||
embed_video_metadata: boolean;
|
||||
embed_audio_metadata: boolean;
|
||||
embed_audio_thumbnail: boolean;
|
||||
|
||||
Reference in New Issue
Block a user