mirror of
https://github.com/neosubhamoy/neodlp.git
synced 2025-12-19 23:39:33 +05:30
(feat): added always re-encode video option in settings
This commit is contained in:
11
src/App.tsx
11
src/App.tsx
@@ -59,6 +59,7 @@ export default function App({ children }: { children: React.ReactNode }) {
|
|||||||
const PROXY_URL = useSettingsPageStatesStore(state => state.settings.proxy_url);
|
const PROXY_URL = useSettingsPageStatesStore(state => state.settings.proxy_url);
|
||||||
const VIDEO_FORMAT = useSettingsPageStatesStore(state => state.settings.video_format);
|
const VIDEO_FORMAT = useSettingsPageStatesStore(state => state.settings.video_format);
|
||||||
const AUDIO_FORMAT = useSettingsPageStatesStore(state => state.settings.audio_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_VIDEO_METADATA = useSettingsPageStatesStore(state => state.settings.embed_video_metadata);
|
||||||
const EMBED_AUDIO_METADATA = useSettingsPageStatesStore(state => state.settings.embed_audio_metadata);
|
const EMBED_AUDIO_METADATA = useSettingsPageStatesStore(state => state.settings.embed_audio_metadata);
|
||||||
const EMBED_AUDIO_THUMBNAIL = useSettingsPageStatesStore(state => state.settings.embed_audio_thumbnail);
|
const EMBED_AUDIO_THUMBNAIL = useSettingsPageStatesStore(state => state.settings.embed_audio_thumbnail);
|
||||||
@@ -187,10 +188,18 @@ export default function App({ children }: { children: React.ReactNode }) {
|
|||||||
|
|
||||||
if (fileType !== 'unknown' && (VIDEO_FORMAT !== 'auto' || AUDIO_FORMAT !== 'auto')) {
|
if (fileType !== 'unknown' && (VIDEO_FORMAT !== 'auto' || AUDIO_FORMAT !== 'auto')) {
|
||||||
if (VIDEO_FORMAT !== 'auto' && fileType === 'video+audio') {
|
if (VIDEO_FORMAT !== 'auto' && fileType === 'video+audio') {
|
||||||
args.push('--merge-output-format', VIDEO_FORMAT);
|
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 (VIDEO_FORMAT !== 'auto' && fileType === 'video') {
|
||||||
|
if (ALWAYS_REENCODE_VIDEO) {
|
||||||
|
args.push('--recode-video', VIDEO_FORMAT);
|
||||||
|
} else {
|
||||||
args.push('--remux-video', VIDEO_FORMAT);
|
args.push('--remux-video', VIDEO_FORMAT);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (AUDIO_FORMAT !== 'auto' && fileType === 'audio') {
|
if (AUDIO_FORMAT !== 'auto' && fileType === 'audio') {
|
||||||
args.push('--extract-audio', '--audio-format', AUDIO_FORMAT);
|
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 proxyUrl = useSettingsPageStatesStore(state => state.settings.proxy_url);
|
||||||
const videoFormat = useSettingsPageStatesStore(state => state.settings.video_format);
|
const videoFormat = useSettingsPageStatesStore(state => state.settings.video_format);
|
||||||
const audioFormat = useSettingsPageStatesStore(state => state.settings.audio_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 embedVideoMetadata = useSettingsPageStatesStore(state => state.settings.embed_video_metadata);
|
||||||
const embedAudioMetadata = useSettingsPageStatesStore(state => state.settings.embed_audio_metadata);
|
const embedAudioMetadata = useSettingsPageStatesStore(state => state.settings.embed_audio_metadata);
|
||||||
const embedAudioThumbnail = useSettingsPageStatesStore(state => state.settings.embed_audio_thumbnail);
|
const embedAudioThumbnail = useSettingsPageStatesStore(state => state.settings.embed_audio_thumbnail);
|
||||||
@@ -452,6 +453,15 @@ export default function SettingsPage() {
|
|||||||
</div>
|
</div>
|
||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
</div>
|
</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>
|
||||||
<TabsContent key="metadata" value="metadata" className="flex flex-col gap-4 min-h-[235px]">
|
<TabsContent key="metadata" value="metadata" className="flex flex-col gap-4 min-h-[235px]">
|
||||||
<div className="embed-video-metadata">
|
<div className="embed-video-metadata">
|
||||||
|
|||||||
@@ -112,6 +112,7 @@ export const useSettingsPageStatesStore = create<SettingsPageStatesStore>((set)
|
|||||||
proxy_url: '',
|
proxy_url: '',
|
||||||
video_format: 'auto',
|
video_format: 'auto',
|
||||||
audio_format: 'auto',
|
audio_format: 'auto',
|
||||||
|
always_reencode_video: false,
|
||||||
embed_video_metadata: false,
|
embed_video_metadata: false,
|
||||||
embed_audio_metadata: true,
|
embed_audio_metadata: true,
|
||||||
embed_audio_thumbnail: true,
|
embed_audio_thumbnail: true,
|
||||||
@@ -151,6 +152,7 @@ export const useSettingsPageStatesStore = create<SettingsPageStatesStore>((set)
|
|||||||
proxy_url: '',
|
proxy_url: '',
|
||||||
video_format: 'auto',
|
video_format: 'auto',
|
||||||
audio_format: 'auto',
|
audio_format: 'auto',
|
||||||
|
always_reencode_video: false,
|
||||||
embed_video_metadata: false,
|
embed_video_metadata: false,
|
||||||
embed_audio_metadata: true,
|
embed_audio_metadata: true,
|
||||||
embed_audio_thumbnail: true,
|
embed_audio_thumbnail: true,
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export interface Settings {
|
|||||||
proxy_url: string;
|
proxy_url: string;
|
||||||
video_format: string;
|
video_format: string;
|
||||||
audio_format: string;
|
audio_format: string;
|
||||||
|
always_reencode_video: boolean;
|
||||||
embed_video_metadata: boolean;
|
embed_video_metadata: boolean;
|
||||||
embed_audio_metadata: boolean;
|
embed_audio_metadata: boolean;
|
||||||
embed_audio_thumbnail: boolean;
|
embed_audio_thumbnail: boolean;
|
||||||
|
|||||||
Reference in New Issue
Block a user