wip
This commit is contained in:
parent
527b98810b
commit
214c8e86fa
|
@ -5513,6 +5513,14 @@ export interface Locale extends ILocale {
|
||||||
* 低くすると画質を保てますが、ファイルサイズは増加します。<br>高くするとファイルサイズを減らせますが、画質は低下します。
|
* 低くすると画質を保てますが、ファイルサイズは増加します。<br>高くするとファイルサイズを減らせますが、画質は低下します。
|
||||||
*/
|
*/
|
||||||
"defaultImageCompressionLevel_description": string;
|
"defaultImageCompressionLevel_description": string;
|
||||||
|
/**
|
||||||
|
* デフォルトの圧縮度
|
||||||
|
*/
|
||||||
|
"defaultCompressionLevel": string;
|
||||||
|
/**
|
||||||
|
* 低くすると品質を保てますが、ファイルサイズは増加します。<br>高くするとファイルサイズを減らせますが、品質は低下します。
|
||||||
|
*/
|
||||||
|
"defaultCompressionLevel_description": string;
|
||||||
/**
|
/**
|
||||||
* 分
|
* 分
|
||||||
*/
|
*/
|
||||||
|
@ -5545,6 +5553,36 @@ export interface Locale extends ILocale {
|
||||||
* ユーザー指定ノートを作成
|
* ユーザー指定ノートを作成
|
||||||
*/
|
*/
|
||||||
"createUserSpecifiedNote": string;
|
"createUserSpecifiedNote": string;
|
||||||
|
"_compression": {
|
||||||
|
"_quality": {
|
||||||
|
/**
|
||||||
|
* 高品質
|
||||||
|
*/
|
||||||
|
"high": string;
|
||||||
|
/**
|
||||||
|
* 中品質
|
||||||
|
*/
|
||||||
|
"medium": string;
|
||||||
|
/**
|
||||||
|
* 低品質
|
||||||
|
*/
|
||||||
|
"low": string;
|
||||||
|
};
|
||||||
|
"_size": {
|
||||||
|
/**
|
||||||
|
* サイズ大
|
||||||
|
*/
|
||||||
|
"large": string;
|
||||||
|
/**
|
||||||
|
* サイズ中
|
||||||
|
*/
|
||||||
|
"medium": string;
|
||||||
|
/**
|
||||||
|
* サイズ小
|
||||||
|
*/
|
||||||
|
"small": string;
|
||||||
|
};
|
||||||
|
};
|
||||||
"_order": {
|
"_order": {
|
||||||
/**
|
/**
|
||||||
* 新しい順
|
* 新しい順
|
||||||
|
|
|
@ -1373,6 +1373,8 @@ redisplayAllTips: "全ての「ヒントとコツ」を再表示"
|
||||||
hideAllTips: "全ての「ヒントとコツ」を非表示"
|
hideAllTips: "全ての「ヒントとコツ」を非表示"
|
||||||
defaultImageCompressionLevel: "デフォルトの画像圧縮度"
|
defaultImageCompressionLevel: "デフォルトの画像圧縮度"
|
||||||
defaultImageCompressionLevel_description: "低くすると画質を保てますが、ファイルサイズは増加します。<br>高くするとファイルサイズを減らせますが、画質は低下します。"
|
defaultImageCompressionLevel_description: "低くすると画質を保てますが、ファイルサイズは増加します。<br>高くするとファイルサイズを減らせますが、画質は低下します。"
|
||||||
|
defaultCompressionLevel: "デフォルトの圧縮度"
|
||||||
|
defaultCompressionLevel_description: "低くすると品質を保てますが、ファイルサイズは増加します。<br>高くするとファイルサイズを減らせますが、品質は低下します。"
|
||||||
inMinutes: "分"
|
inMinutes: "分"
|
||||||
inDays: "日"
|
inDays: "日"
|
||||||
safeModeEnabled: "セーフモードが有効です"
|
safeModeEnabled: "セーフモードが有効です"
|
||||||
|
@ -1382,6 +1384,16 @@ themeIsDefaultBecauseSafeMode: "セーフモードが有効な間はデフォル
|
||||||
thankYouForTestingBeta: "ベータ版の検証にご協力いただきありがとうございます!"
|
thankYouForTestingBeta: "ベータ版の検証にご協力いただきありがとうございます!"
|
||||||
createUserSpecifiedNote: "ユーザー指定ノートを作成"
|
createUserSpecifiedNote: "ユーザー指定ノートを作成"
|
||||||
|
|
||||||
|
_compression:
|
||||||
|
_quality:
|
||||||
|
high: "高品質"
|
||||||
|
medium: "中品質"
|
||||||
|
low: "低品質"
|
||||||
|
_size:
|
||||||
|
large: "サイズ大"
|
||||||
|
medium: "サイズ中"
|
||||||
|
small: "サイズ小"
|
||||||
|
|
||||||
_order:
|
_order:
|
||||||
newest: "新しい順"
|
newest: "新しい順"
|
||||||
oldest: "古い順"
|
oldest: "古い順"
|
||||||
|
|
|
@ -145,7 +145,7 @@ export function useUploader(options: {
|
||||||
aborted: false,
|
aborted: false,
|
||||||
uploaded: null,
|
uploaded: null,
|
||||||
uploadFailed: false,
|
uploadFailed: false,
|
||||||
compressionLevel: prefer.s.defaultImageCompressionLevel,
|
compressionLevel: IMAGE_COMPRESSION_SUPPORTED_TYPES.includes(file.type) ? prefer.s.defaultImageCompressionLevel : VIDEO_COMPRESSION_SUPPORTED_TYPES.includes(file.type) ? prefer.s.defaultVideoCompressionLevel : 0,
|
||||||
watermarkPresetId: uploaderFeatures.value.watermark && $i.policies.watermarkAvailable ? prefer.s.defaultWatermarkPresetId : null,
|
watermarkPresetId: uploaderFeatures.value.watermark && $i.policies.watermarkAvailable ? prefer.s.defaultWatermarkPresetId : null,
|
||||||
file: markRaw(file),
|
file: markRaw(file),
|
||||||
});
|
});
|
||||||
|
@ -330,7 +330,7 @@ export function useUploader(options: {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
IMAGE_COMPRESSION_SUPPORTED_TYPES.includes(item.file.type) &&
|
(IMAGE_COMPRESSION_SUPPORTED_TYPES.includes(item.file.type) || VIDEO_COMPRESSION_SUPPORTED_TYPES.includes(item.file.type)) &&
|
||||||
!item.preprocessing &&
|
!item.preprocessing &&
|
||||||
!item.uploading &&
|
!item.uploading &&
|
||||||
!item.uploaded
|
!item.uploaded
|
||||||
|
@ -589,7 +589,7 @@ export function useUploader(options: {
|
||||||
async function preprocessForVideo(item: UploaderItem): Promise<void> {
|
async function preprocessForVideo(item: UploaderItem): Promise<void> {
|
||||||
let preprocessedFile: Blob | File = item.file;
|
let preprocessedFile: Blob | File = item.file;
|
||||||
|
|
||||||
const needsCompress = true && VIDEO_COMPRESSION_SUPPORTED_TYPES.includes(preprocessedFile.type);
|
const needsCompress = item.compressionLevel !== 0 && VIDEO_COMPRESSION_SUPPORTED_TYPES.includes(preprocessedFile.type);
|
||||||
|
|
||||||
if (needsCompress) {
|
if (needsCompress) {
|
||||||
const mediabunny = await import('mediabunny');
|
const mediabunny = await import('mediabunny');
|
||||||
|
@ -611,7 +611,7 @@ export function useUploader(options: {
|
||||||
output,
|
output,
|
||||||
video: {
|
video: {
|
||||||
//width: 320, // Height will be deduced automatically to retain aspect ratio
|
//width: 320, // Height will be deduced automatically to retain aspect ratio
|
||||||
bitrate: mediabunny.QUALITY_MEDIUM,
|
bitrate: item.compressionLevel === 1 ? mediabunny.QUALITY_VERY_HIGH : item.compressionLevel === 2 ? mediabunny.QUALITY_MEDIUM : mediabunny.QUALITY_VERY_LOW,
|
||||||
},
|
},
|
||||||
audio: {
|
audio: {
|
||||||
bitrate: 32e3,
|
bitrate: 32e3,
|
||||||
|
|
|
@ -129,13 +129,37 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
<MkSelect
|
<MkSelect
|
||||||
v-model="defaultImageCompressionLevel" :items="[
|
v-model="defaultImageCompressionLevel" :items="[
|
||||||
{ label: i18n.ts.none, value: 0 },
|
{ label: i18n.ts.none, value: 0 },
|
||||||
{ label: i18n.ts.low, value: 1 },
|
{ label: `${i18n.ts.low} (${i18n.ts._compression._quality.high}; ${i18n.ts._compression._size.large})`, value: 1 },
|
||||||
{ label: i18n.ts.medium, value: 2 },
|
{ label: `${i18n.ts.medium} (${i18n.ts._compression._quality.medium}; ${i18n.ts._compression._size.medium})`, value: 2 },
|
||||||
{ label: i18n.ts.high, value: 3 },
|
{ label: `${i18n.ts.high} (${i18n.ts._compression._quality.low}; ${i18n.ts._compression._size.small})`, value: 3 },
|
||||||
]"
|
]"
|
||||||
>
|
>
|
||||||
<template #label><SearchLabel>{{ i18n.ts.defaultImageCompressionLevel }}</SearchLabel></template>
|
<template #label><SearchLabel>{{ i18n.ts.defaultCompressionLevel }}</SearchLabel></template>
|
||||||
<template #caption><div v-html="i18n.ts.defaultImageCompressionLevel_description"></div></template>
|
<template #caption><div v-html="i18n.ts.defaultCompressionLevel_description"></div></template>
|
||||||
|
</MkSelect>
|
||||||
|
</MkPreferenceContainer>
|
||||||
|
</SearchMarker>
|
||||||
|
</div>
|
||||||
|
</FormSection>
|
||||||
|
</SearchMarker>
|
||||||
|
|
||||||
|
<SearchMarker :keywords="['video']">
|
||||||
|
<FormSection>
|
||||||
|
<template #label><SearchLabel>{{ i18n.ts.video }}</SearchLabel></template>
|
||||||
|
|
||||||
|
<div class="_gaps_m">
|
||||||
|
<SearchMarker :keywords="['default', 'video', 'compression']">
|
||||||
|
<MkPreferenceContainer k="defaultVideoCompressionLevel">
|
||||||
|
<MkSelect
|
||||||
|
v-model="defaultVideoCompressionLevel" :items="[
|
||||||
|
{ label: i18n.ts.none, value: 0 },
|
||||||
|
{ label: `${i18n.ts.low} (${i18n.ts._compression._quality.high}; ${i18n.ts._compression._size.large})`, value: 1 },
|
||||||
|
{ label: `${i18n.ts.medium} (${i18n.ts._compression._quality.medium}; ${i18n.ts._compression._size.medium})`, value: 2 },
|
||||||
|
{ label: `${i18n.ts.high} (${i18n.ts._compression._quality.low}; ${i18n.ts._compression._size.small})`, value: 3 },
|
||||||
|
]"
|
||||||
|
>
|
||||||
|
<template #label><SearchLabel>{{ i18n.ts.defaultCompressionLevel }}</SearchLabel></template>
|
||||||
|
<template #caption><div v-html="i18n.ts.defaultCompressionLevel_description"></div></template>
|
||||||
</MkSelect>
|
</MkSelect>
|
||||||
</MkPreferenceContainer>
|
</MkPreferenceContainer>
|
||||||
</SearchMarker>
|
</SearchMarker>
|
||||||
|
@ -196,6 +220,7 @@ const meterStyle = computed(() => {
|
||||||
const keepOriginalFilename = prefer.model('keepOriginalFilename');
|
const keepOriginalFilename = prefer.model('keepOriginalFilename');
|
||||||
const defaultWatermarkPresetId = prefer.model('defaultWatermarkPresetId');
|
const defaultWatermarkPresetId = prefer.model('defaultWatermarkPresetId');
|
||||||
const defaultImageCompressionLevel = prefer.model('defaultImageCompressionLevel');
|
const defaultImageCompressionLevel = prefer.model('defaultImageCompressionLevel');
|
||||||
|
const defaultVideoCompressionLevel = prefer.model('defaultVideoCompressionLevel');
|
||||||
|
|
||||||
const watermarkPresetsSyncEnabled = ref(prefer.isSyncEnabled('watermarkPresets'));
|
const watermarkPresetsSyncEnabled = ref(prefer.isSyncEnabled('watermarkPresets'));
|
||||||
|
|
||||||
|
|
|
@ -439,6 +439,9 @@ export const PREF_DEF = definePreferences({
|
||||||
defaultImageCompressionLevel: {
|
defaultImageCompressionLevel: {
|
||||||
default: 2 as 0 | 1 | 2 | 3,
|
default: 2 as 0 | 1 | 2 | 3,
|
||||||
},
|
},
|
||||||
|
defaultVideoCompressionLevel: {
|
||||||
|
default: 2 as 0 | 1 | 2 | 3,
|
||||||
|
},
|
||||||
|
|
||||||
'sound.masterVolume': {
|
'sound.masterVolume': {
|
||||||
default: 0.5,
|
default: 0.5,
|
||||||
|
|
Loading…
Reference in New Issue