@sigmaott/base-next 1.4.41 → 1.4.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.npmrc +3 -0
- package/package.json +1 -1
- package/src/components/Channel/AdvancedForm.vue +42 -104
- package/src/components/Channel/ConfigCensorship.vue +20 -63
- package/src/components/Channel/ConfigForensicWatermark.vue +3 -2
- package/src/components/Channel/ConfigPte.vue +14 -34
- package/src/components/Channel/PresetConfigItem.vue +273 -686
- package/src/components/Channel/PresetConfigItemPId.vue +12 -11
- package/src/components/Channel/ProfileConfigItem.vue +151 -226
- package/src/components/Server/ServerConfig.vue +58 -101
|
@@ -24,9 +24,11 @@ function getProp(key: string) {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
const encoderIdValue = ref(inject('encoderIdValue'))
|
|
27
|
+
const encoderTypeValue = ref(inject('encoderTypeValue'))
|
|
27
28
|
const mappingEncoder = {
|
|
28
29
|
open_h264: 'OpenH264',
|
|
29
30
|
open_hevc: 'OpenHEVC',
|
|
31
|
+
netint: 'NETINT',
|
|
30
32
|
nvenc: 'NVENC',
|
|
31
33
|
passthrough: 'Passthrough',
|
|
32
34
|
}
|
|
@@ -38,8 +40,8 @@ const optionsEncoder = computed(() => {
|
|
|
38
40
|
}
|
|
39
41
|
const value = encoderIdValue.value
|
|
40
42
|
|
|
41
|
-
// TH1:
|
|
42
|
-
if ((value ===
|
|
43
|
+
// TH1: encoderTypeValue === 'SOFTWARE'
|
|
44
|
+
if ((encoderTypeValue.value === 'SOFTWARE' || value === 'cpu') && triggerAction.value !== 'edit') {
|
|
43
45
|
return [
|
|
44
46
|
{ label: 'OpenH264', value: 'open_h264' },
|
|
45
47
|
{ label: 'OpenHEVC', value: 'open_hevc' },
|
|
@@ -47,16 +49,23 @@ const optionsEncoder = computed(() => {
|
|
|
47
49
|
]
|
|
48
50
|
}
|
|
49
51
|
|
|
50
|
-
// TH2:
|
|
51
|
-
if (value === null || value === undefined || value === '' || triggerAction.value === 'edit') {
|
|
52
|
+
// TH2: encoderTypeValue là null, undefined, '' hoặc bất kỳ giá trị nào khác
|
|
53
|
+
if (encoderTypeValue.value === null || encoderTypeValue.value === undefined || encoderTypeValue.value === '' || triggerAction.value === 'edit') {
|
|
52
54
|
return [
|
|
53
55
|
{ label: 'OpenH264', value: 'open_h264' },
|
|
54
56
|
{ label: 'OpenHEVC', value: 'open_hevc' },
|
|
55
57
|
{ label: 'NVENC', value: 'nvenc' },
|
|
58
|
+
{ label: 'NETINT', value: 'netint' },
|
|
56
59
|
// { label: 'Aurora4', value: 'aurora4' },
|
|
57
60
|
{ label: 'Passthrough', value: 'passthrough' },
|
|
58
61
|
]
|
|
59
62
|
}
|
|
63
|
+
// TH3: encoderTypeValue là NETINT
|
|
64
|
+
if (encoderTypeValue.value === 'NETINT') {
|
|
65
|
+
return [
|
|
66
|
+
{ label: 'NETINT', value: 'netint' },
|
|
67
|
+
]
|
|
68
|
+
}
|
|
60
69
|
|
|
61
70
|
// Mặc định cho các giá trị khác (ví dụ: 0, 1, 2, 3,...)
|
|
62
71
|
return [
|
|
@@ -523,8 +532,8 @@ function fillVideo() {
|
|
|
523
532
|
audioCodecValue.value = undefined
|
|
524
533
|
videoCodecValue.value = 'h264'
|
|
525
534
|
dataCodecValue.value = undefined
|
|
526
|
-
encoderValue.value =
|
|
527
|
-
presetValue.value =
|
|
535
|
+
encoderValue.value = encoderTypeValue.value === 'SOFTWARE' ? 'open_h264' : encoderTypeValue.value === 'NETINT' ? 'netint' : 'nvenc'
|
|
536
|
+
presetValue.value = encoderTypeValue.value === 'SOFTWARE' ? 'veryfast' : encoderTypeValue.value === 'NETINT' ? 'medium' : 'llhp'
|
|
528
537
|
videoRateValue.value = 4000000
|
|
529
538
|
rateControlModeValue.value = 'vbr'
|
|
530
539
|
minrateValue.value = undefined
|
|
@@ -544,7 +553,7 @@ function fillVideo() {
|
|
|
544
553
|
hdrValue.value = undefined
|
|
545
554
|
rcValue.value = undefined
|
|
546
555
|
channelValue.value = undefined
|
|
547
|
-
profileValue.value = undefined
|
|
556
|
+
profileValue.value = encoderTypeValue.value === 'NETINT' ? 'main' : undefined
|
|
548
557
|
levelValue.value = undefined
|
|
549
558
|
volumeValue.value = undefined
|
|
550
559
|
defaultPTEValue.value = undefined
|
|
@@ -646,74 +655,74 @@ function setUndefined(type: string, value: any) {
|
|
|
646
655
|
const optionsPreset = computed(() => {
|
|
647
656
|
return encoderValue.value === 'nvenc'
|
|
648
657
|
? [
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
658
|
+
{
|
|
659
|
+
label: 'SLOW',
|
|
660
|
+
value: 'slow',
|
|
661
|
+
},
|
|
662
|
+
{
|
|
663
|
+
label: 'MEDIUM',
|
|
664
|
+
value: 'medium',
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
label: 'FAST',
|
|
668
|
+
value: 'fast',
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
label: 'HP',
|
|
672
|
+
value: 'hp',
|
|
673
|
+
},
|
|
674
|
+
{
|
|
675
|
+
label: 'HQ',
|
|
676
|
+
value: 'hq',
|
|
677
|
+
},
|
|
678
|
+
{
|
|
679
|
+
label: 'BD',
|
|
680
|
+
value: 'bd',
|
|
681
|
+
},
|
|
682
|
+
{
|
|
683
|
+
label: 'LL',
|
|
684
|
+
value: 'll',
|
|
685
|
+
},
|
|
686
|
+
{
|
|
687
|
+
label: 'LLHQ',
|
|
688
|
+
value: 'llhq',
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
label: 'LLHP',
|
|
692
|
+
value: 'llhp',
|
|
693
|
+
},
|
|
694
|
+
]
|
|
686
695
|
: [
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
696
|
+
{
|
|
697
|
+
label: 'MEDIUM',
|
|
698
|
+
value: 'medium',
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
label: 'FAST',
|
|
702
|
+
value: 'fast',
|
|
703
|
+
},
|
|
704
|
+
{
|
|
705
|
+
label: 'FASTER',
|
|
706
|
+
value: 'faster',
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
label: 'VERYFAST',
|
|
710
|
+
value: 'veryfast',
|
|
711
|
+
},
|
|
712
|
+
{
|
|
713
|
+
label: 'SUPERFAST',
|
|
714
|
+
value: 'superfast',
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
label: 'ULTRAFAST',
|
|
718
|
+
value: 'ultrafast',
|
|
719
|
+
},
|
|
720
|
+
]
|
|
712
721
|
})
|
|
713
722
|
|
|
714
723
|
const codecSelection = computed(() => {
|
|
715
724
|
return {
|
|
716
|
-
video: (encoderValue.value === 'open_h264' || encoderValue.value === 'aurora4')
|
|
725
|
+
video: (encoderValue.value === 'open_h264' || encoderValue.value === 'aurora4' || encoderValue.value === 'netint')
|
|
717
726
|
? { H264: 'h264' }
|
|
718
727
|
: encoderValue.value === 'open_hevc'
|
|
719
728
|
? { HEVC: 'hevc' }
|
|
@@ -903,10 +912,8 @@ async function handleApplyConfig(_value) {
|
|
|
903
912
|
|
|
904
913
|
<template>
|
|
905
914
|
<template v-if="typeValue === 'data'">
|
|
906
|
-
<el-collapse
|
|
907
|
-
|
|
908
|
-
class="[&_.el-collapse-item\_\_content]:pb-0 [&_.el-collapse-item\_\_header]:(text-16px) ![&_.el-collapse-item\_\_header]:font-600"
|
|
909
|
-
>
|
|
915
|
+
<el-collapse v-model="activeNames"
|
|
916
|
+
class="[&_.el-collapse-item\_\_content]:pb-0 [&_.el-collapse-item\_\_header]:(text-16px) ![&_.el-collapse-item\_\_header]:font-600">
|
|
910
917
|
<el-collapse-item name="general">
|
|
911
918
|
<template #title>
|
|
912
919
|
<label for="" class="flex items-center gap-2 text-16px font-semibold">
|
|
@@ -918,50 +925,26 @@ async function handleApplyConfig(_value) {
|
|
|
918
925
|
<template #label>
|
|
919
926
|
<SSInformationLabel :label="$t('general.name')" :info="schemaObj.name" />
|
|
920
927
|
</template>
|
|
921
|
-
<el-input
|
|
922
|
-
|
|
923
|
-
:placeholder="$t('library_preset.enter_name')"
|
|
924
|
-
autocomplete="off"
|
|
925
|
-
clearable
|
|
926
|
-
:minlength="1"
|
|
927
|
-
:maxlength="50"
|
|
928
|
-
show-word-limit
|
|
929
|
-
/>
|
|
928
|
+
<el-input v-model="nameValue" :placeholder="$t('library_preset.enter_name')" autocomplete="off" clearable
|
|
929
|
+
:minlength="1" :maxlength="50" show-word-limit />
|
|
930
930
|
</el-form-item>
|
|
931
931
|
<el-form-item v-if="isShowType" class="w-full" v-bind="typeAttrs">
|
|
932
932
|
<template #label>
|
|
933
933
|
<SSInformationLabel :label="$t('library_preset.type')" :info="schemaObj.type" />
|
|
934
934
|
</template>
|
|
935
|
-
<el-select
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
@change="handleChangeType"
|
|
940
|
-
>
|
|
941
|
-
<el-option
|
|
942
|
-
v-for="(type, idx) in ['video', 'audio', 'data']"
|
|
943
|
-
:key="type + idx"
|
|
944
|
-
:value="type"
|
|
945
|
-
:label="type"
|
|
946
|
-
/>
|
|
935
|
+
<el-select v-model="typeValue" class="w-full" :disabled="!!defaultMediaType || mode === 'edit'"
|
|
936
|
+
@change="handleChangeType">
|
|
937
|
+
<el-option v-for="(type, idx) in ['video', 'audio', 'data']" :key="type + idx" :value="type"
|
|
938
|
+
:label="type" />
|
|
947
939
|
</el-select>
|
|
948
940
|
</el-form-item>
|
|
949
941
|
<el-form-item class="w-full" label="Codec" v-bind="dataCodecAttrs">
|
|
950
942
|
<template #label>
|
|
951
943
|
<SSInformationLabel label="Codec" :info="schemaObj.dataCodec" />
|
|
952
944
|
</template>
|
|
953
|
-
<el-select
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
default-first-option
|
|
957
|
-
:disabled="isPackage && typeValue !== 'data'"
|
|
958
|
-
>
|
|
959
|
-
<el-option
|
|
960
|
-
v-for="(type, idx) in codecSelection"
|
|
961
|
-
:key="type + idx"
|
|
962
|
-
:value="type"
|
|
963
|
-
:label="type"
|
|
964
|
-
/>
|
|
945
|
+
<el-select v-model="dataCodecValue" class="w-full" default-first-option
|
|
946
|
+
:disabled="isPackage && typeValue !== 'data'">
|
|
947
|
+
<el-option v-for="(type, idx) in codecSelection" :key="type + idx" :value="type" :label="type" />
|
|
965
948
|
</el-select>
|
|
966
949
|
</el-form-item>
|
|
967
950
|
</div>
|
|
@@ -978,36 +961,23 @@ async function handleApplyConfig(_value) {
|
|
|
978
961
|
<template #label>
|
|
979
962
|
<SSInformationLabel :label="$t('EventChannel.form.label.enable')" :info="schemaSCTE35.enabled" />
|
|
980
963
|
</template>
|
|
981
|
-
<el-switch
|
|
982
|
-
v-model="scte35OverwriteConfigValue.enabled"
|
|
983
|
-
/>
|
|
964
|
+
<el-switch v-model="scte35OverwriteConfigValue.enabled" />
|
|
984
965
|
</el-form-item>
|
|
985
966
|
<el-form-item class="w-full">
|
|
986
967
|
<template #label>
|
|
987
968
|
<SSInformationLabel :label="$t('fast_channel.duration')" :info="schemaSCTE35.overwriteDuration" />
|
|
988
969
|
</template>
|
|
989
|
-
<el-input-number
|
|
990
|
-
|
|
991
|
-
:disabled="!scte35OverwriteConfigValue.enabled"
|
|
992
|
-
:min="1"
|
|
993
|
-
:max="180"
|
|
994
|
-
:precision="0"
|
|
995
|
-
class="w-full"
|
|
996
|
-
/>
|
|
970
|
+
<el-input-number v-model="scte35OverwriteConfigValue.overwriteDuration"
|
|
971
|
+
:disabled="!scte35OverwriteConfigValue.enabled" :min="1" :max="180" :precision="0" class="w-full" />
|
|
997
972
|
</el-form-item>
|
|
998
973
|
|
|
999
974
|
<el-form-item class="w-full" label="Delay">
|
|
1000
975
|
<template #label>
|
|
1001
|
-
<SSInformationLabel :label="$t('EventChannel.form.label.delay')"
|
|
976
|
+
<SSInformationLabel :label="$t('EventChannel.form.label.delay')"
|
|
977
|
+
:info="schemaSCTE35.overwriteDelayTime" />
|
|
1002
978
|
</template>
|
|
1003
|
-
<el-input-number
|
|
1004
|
-
|
|
1005
|
-
:disabled="!scte35OverwriteConfigValue.enabled"
|
|
1006
|
-
:min="0"
|
|
1007
|
-
:max="60"
|
|
1008
|
-
:precision="0"
|
|
1009
|
-
class="w-full"
|
|
1010
|
-
/>
|
|
979
|
+
<el-input-number v-model="scte35OverwriteConfigValue.overwriteDelayTime"
|
|
980
|
+
:disabled="!scte35OverwriteConfigValue.enabled" :min="0" :max="60" :precision="0" class="w-full" />
|
|
1011
981
|
</el-form-item>
|
|
1012
982
|
</div>
|
|
1013
983
|
</el-collapse-item>
|
|
@@ -1019,40 +989,22 @@ async function handleApplyConfig(_value) {
|
|
|
1019
989
|
<template #label>
|
|
1020
990
|
<SSInformationLabel :label="$t('general.name')" :info="schemaObj.name" />
|
|
1021
991
|
</template>
|
|
1022
|
-
<el-input
|
|
1023
|
-
|
|
1024
|
-
:placeholder="$t('library_preset.enter_name')"
|
|
1025
|
-
autocomplete="off"
|
|
1026
|
-
clearable
|
|
1027
|
-
:minlength="1"
|
|
1028
|
-
:maxlength="50"
|
|
1029
|
-
show-word-limit
|
|
1030
|
-
/>
|
|
992
|
+
<el-input v-model="nameValue" :placeholder="$t('library_preset.enter_name')" autocomplete="off" clearable
|
|
993
|
+
:minlength="1" :maxlength="50" show-word-limit />
|
|
1031
994
|
</el-form-item>
|
|
1032
995
|
<el-form-item v-if="isShowType" class="flex-1" v-bind="typeAttrs">
|
|
1033
996
|
<template #label>
|
|
1034
997
|
<SSInformationLabel :label="$t('library_preset.type')" :info="schemaObj.type" />
|
|
1035
998
|
</template>
|
|
1036
|
-
<el-select
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
:disabled="!!defaultMediaType || mode === 'edit'"
|
|
1040
|
-
@change="handleChangeType"
|
|
1041
|
-
>
|
|
1042
|
-
<el-option
|
|
1043
|
-
v-for="(type, idx) in ['video', 'audio', 'data']"
|
|
1044
|
-
:key="type + idx"
|
|
1045
|
-
:value="type"
|
|
1046
|
-
:label="type"
|
|
1047
|
-
/>
|
|
999
|
+
<el-select v-model="typeValue" class="w-full" :disabled="!!defaultMediaType || mode === 'edit'"
|
|
1000
|
+
@change="handleChangeType">
|
|
1001
|
+
<el-option v-for="(type, idx) in ['video', 'audio', 'data']" :key="type + idx" :value="type" :label="type" />
|
|
1048
1002
|
</el-select>
|
|
1049
1003
|
</el-form-item>
|
|
1050
1004
|
</div>
|
|
1051
1005
|
|
|
1052
|
-
<el-collapse
|
|
1053
|
-
|
|
1054
|
-
class="[&_.el-collapse-item\_\_content]:pb-0 [&_.el-collapse-item\_\_header]:(text-16px) ![&_.el-collapse-item\_\_header]:font-600"
|
|
1055
|
-
>
|
|
1006
|
+
<el-collapse v-model="activeNames"
|
|
1007
|
+
class="[&_.el-collapse-item\_\_content]:pb-0 [&_.el-collapse-item\_\_header]:(text-16px) ![&_.el-collapse-item\_\_header]:font-600">
|
|
1056
1008
|
<el-collapse-item v-if="typeValue" name="general">
|
|
1057
1009
|
<template #title>
|
|
1058
1010
|
<label for="" class="flex items-center gap-2 text-16px font-semibold">
|
|
@@ -1064,137 +1016,75 @@ async function handleApplyConfig(_value) {
|
|
|
1064
1016
|
<template #label>
|
|
1065
1017
|
<SSInformationLabel :label="$t('general.name')" :info="schemaObj.name" />
|
|
1066
1018
|
</template>
|
|
1067
|
-
<el-input
|
|
1068
|
-
|
|
1069
|
-
:placeholder="$t('library_preset.enter_name')"
|
|
1070
|
-
autocomplete="off"
|
|
1071
|
-
clearable
|
|
1072
|
-
:minlength="1"
|
|
1073
|
-
:maxlength="50"
|
|
1074
|
-
show-word-limit
|
|
1075
|
-
/>
|
|
1019
|
+
<el-input v-model="nameValue" :placeholder="$t('library_preset.enter_name')" autocomplete="off" clearable
|
|
1020
|
+
:minlength="1" :maxlength="50" show-word-limit />
|
|
1076
1021
|
</el-form-item>
|
|
1077
1022
|
<el-form-item v-if="isShowType" class="max-w-190px min-w-190px" v-bind="typeAttrs">
|
|
1078
1023
|
<template #label>
|
|
1079
1024
|
<SSInformationLabel :label="$t('library_preset.type')" :info="schemaObj.type" />
|
|
1080
1025
|
</template>
|
|
1081
|
-
<el-select
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
@change="handleChangeType"
|
|
1086
|
-
>
|
|
1087
|
-
<el-option
|
|
1088
|
-
v-for="(type, idx) in ['video', 'audio', 'data']"
|
|
1089
|
-
:key="type + idx"
|
|
1090
|
-
:value="type"
|
|
1091
|
-
:label="type"
|
|
1092
|
-
/>
|
|
1026
|
+
<el-select v-model="typeValue" class="w-full" :disabled="!!defaultMediaType || mode === 'edit'"
|
|
1027
|
+
@change="handleChangeType">
|
|
1028
|
+
<el-option v-for="(type, idx) in ['video', 'audio', 'data']" :key="type + idx" :value="type"
|
|
1029
|
+
:label="type" />
|
|
1093
1030
|
</el-select>
|
|
1094
1031
|
</el-form-item>
|
|
1095
|
-
<el-form-item v-if="isConfigEncoder && typeValue === 'video'" class="[&_.el-form-item\_\_content]:block"
|
|
1032
|
+
<el-form-item v-if="isConfigEncoder && typeValue === 'video'" class="[&_.el-form-item\_\_content]:block"
|
|
1033
|
+
v-bind="encoderAttrs">
|
|
1096
1034
|
<template #label>
|
|
1097
1035
|
<SSInformationLabel :label="$t('library_preset.encoder')" :info="schemaObj.encoderType" />
|
|
1098
1036
|
</template>
|
|
1099
|
-
<el-select
|
|
1100
|
-
|
|
1101
|
-
:
|
|
1102
|
-
class="max-w-190px min-w-190px"
|
|
1103
|
-
@change="handleChangeEncoder"
|
|
1104
|
-
>
|
|
1105
|
-
<el-option
|
|
1106
|
-
v-for="(e, idx) in optionsEncoder"
|
|
1107
|
-
:key="e + idx"
|
|
1108
|
-
:value="e.value"
|
|
1109
|
-
:label="e.label"
|
|
1110
|
-
/>
|
|
1037
|
+
<el-select v-model="encoderValue" :disabled="isPackage" class="max-w-190px min-w-190px"
|
|
1038
|
+
@change="handleChangeEncoder">
|
|
1039
|
+
<el-option v-for="(e, idx) in optionsEncoder" :key="e + idx" :value="e.value" :label="e.label" />
|
|
1111
1040
|
</el-select>
|
|
1112
1041
|
</el-form-item>
|
|
1113
|
-
<el-form-item
|
|
1114
|
-
v-
|
|
1115
|
-
class="max-w-190px min-w-190px"
|
|
1116
|
-
label="Codec"
|
|
1117
|
-
v-bind="videoCodecAttrs"
|
|
1118
|
-
>
|
|
1042
|
+
<el-form-item v-if="typeValue === 'video'" class="max-w-190px min-w-190px" label="Codec"
|
|
1043
|
+
v-bind="videoCodecAttrs">
|
|
1119
1044
|
<template #label>
|
|
1120
1045
|
<SSInformationLabel label="Codec" :info="schemaObj.videoCodec" />
|
|
1121
1046
|
</template>
|
|
1122
|
-
<el-select
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
default-first-option
|
|
1126
|
-
:disabled="(isPackage && typeValue !== 'data' || disabledWithPTEConfig)"
|
|
1127
|
-
@change="handleChangeVideoCodec"
|
|
1128
|
-
>
|
|
1129
|
-
<el-option
|
|
1130
|
-
v-for="(type, idx) in codecSelection"
|
|
1131
|
-
:key="type + idx"
|
|
1132
|
-
:value="type"
|
|
1133
|
-
:label="type"
|
|
1134
|
-
/>
|
|
1047
|
+
<el-select v-model="videoCodecValue" class="max-w-190px min-w-190px" default-first-option
|
|
1048
|
+
:disabled="(isPackage && typeValue !== 'data' || disabledWithPTEConfig)" @change="handleChangeVideoCodec">
|
|
1049
|
+
<el-option v-for="(type, idx) in codecSelection" :key="type + idx" :value="type" :label="type" />
|
|
1135
1050
|
</el-select>
|
|
1136
1051
|
</el-form-item>
|
|
1137
1052
|
|
|
1138
|
-
<el-form-item
|
|
1139
|
-
v-
|
|
1140
|
-
class="max-w-190px min-w-190px"
|
|
1141
|
-
label="Codec"
|
|
1142
|
-
v-bind="audioCodecAttrs"
|
|
1143
|
-
>
|
|
1053
|
+
<el-form-item v-if="typeValue === 'audio'" class="max-w-190px min-w-190px" label="Codec"
|
|
1054
|
+
v-bind="audioCodecAttrs">
|
|
1144
1055
|
<template #label>
|
|
1145
1056
|
<SSInformationLabel label="Codec" :info="schemaObj.audioCodec" />
|
|
1146
1057
|
</template>
|
|
1147
|
-
<el-select
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
default-first-option
|
|
1151
|
-
:disabled="isPackage"
|
|
1152
|
-
>
|
|
1153
|
-
<el-option
|
|
1154
|
-
v-for="(type, idx) in codecSelection"
|
|
1155
|
-
:key="type + idx"
|
|
1156
|
-
:value="type"
|
|
1157
|
-
:label="type"
|
|
1158
|
-
/>
|
|
1058
|
+
<el-select v-model="audioCodecValue" class="max-w-190px min-w-190px" default-first-option
|
|
1059
|
+
:disabled="isPackage">
|
|
1060
|
+
<el-option v-for="(type, idx) in codecSelection" :key="type + idx" :value="type" :label="type" />
|
|
1159
1061
|
</el-select>
|
|
1160
1062
|
</el-form-item>
|
|
1161
|
-
<el-form-item
|
|
1162
|
-
v-
|
|
1163
|
-
class="max-w-190px min-w-190px"
|
|
1164
|
-
label="Codec"
|
|
1165
|
-
v-bind="dataCodecAttrs"
|
|
1166
|
-
>
|
|
1063
|
+
<el-form-item v-if="typeValue === 'data'" class="max-w-190px min-w-190px" label="Codec"
|
|
1064
|
+
v-bind="dataCodecAttrs">
|
|
1167
1065
|
<template #label>
|
|
1168
1066
|
<SSInformationLabel label="Codec" :info="schemaObj.dataCodec" />
|
|
1169
1067
|
</template>
|
|
1170
|
-
<el-select
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
default-first-option
|
|
1174
|
-
:disabled="isPackage"
|
|
1175
|
-
>
|
|
1176
|
-
<el-option
|
|
1177
|
-
v-for="(type, idx) in codecSelection"
|
|
1178
|
-
:key="type + idx"
|
|
1179
|
-
:value="type"
|
|
1180
|
-
:label="type"
|
|
1181
|
-
/>
|
|
1068
|
+
<el-select v-model="dataCodecValue" class="max-w-190px min-w-190px" default-first-option
|
|
1069
|
+
:disabled="isPackage">
|
|
1070
|
+
<el-option v-for="(type, idx) in codecSelection" :key="type + idx" :value="type" :label="type" />
|
|
1182
1071
|
</el-select>
|
|
1183
1072
|
</el-form-item>
|
|
1184
1073
|
</div>
|
|
1185
1074
|
</el-collapse-item>
|
|
1186
|
-
<el-collapse-item
|
|
1075
|
+
<el-collapse-item
|
|
1076
|
+
v-if="typeValue === 'video' && encoderValue === 'nvenc' && isCreateChannel && encoderValue !== 'passthrough' && configPte?.pte?.enable"
|
|
1077
|
+
name="pte">
|
|
1187
1078
|
<template #title>
|
|
1188
1079
|
<label class="flex items-center gap-2 text-16px font-semibold">
|
|
1189
|
-
PTE Config <span class="text-13px font-normal">({{
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
<div class="i-carbon:thumbs-up-filled mb-1px cursor-pointer text-light" @click.prevent.stop="isVisibleRecommend = true" />
|
|
1080
|
+
PTE Config <span class="text-13px font-normal">({{
|
|
1081
|
+
$t('base_library.used_in_video_encoding_with_ai-based_quality_assessment_to_optimize_efficiency_while_maintaining_visual_quality')
|
|
1082
|
+
}})</span>
|
|
1083
|
+
<el-tooltip class="box-item" effect="dark" content="Recommended Configuration" placement="top">
|
|
1084
|
+
<div v-if="configPte?.pte?.path"
|
|
1085
|
+
class="h-20px w-20px flex items-center justify-center rounded-full bg-primary">
|
|
1086
|
+
<div class="i-carbon:thumbs-up-filled mb-1px cursor-pointer text-light"
|
|
1087
|
+
@click.prevent.stop="isVisibleRecommend = true" />
|
|
1198
1088
|
</div>
|
|
1199
1089
|
</el-tooltip>
|
|
1200
1090
|
</label>
|
|
@@ -1204,57 +1094,35 @@ async function handleApplyConfig(_value) {
|
|
|
1204
1094
|
<template #label>
|
|
1205
1095
|
<SSInformationLabel label="Enable" :info="schemaObj.pteEnabled" />
|
|
1206
1096
|
</template>
|
|
1207
|
-
<el-switch
|
|
1208
|
-
v-model="defaultPTEValue"
|
|
1209
|
-
:disabled="!configPte?.pte?.enable"
|
|
1210
|
-
@change="defaultPTEConfig"
|
|
1211
|
-
/>
|
|
1097
|
+
<el-switch v-model="defaultPTEValue" :disabled="!configPte?.pte?.enable" @change="defaultPTEConfig" />
|
|
1212
1098
|
</el-form-item>
|
|
1213
1099
|
<el-form-item label="vmafMax" class="max-w-190px min-w-190px" v-bind="vmafMaxAttrs">
|
|
1214
1100
|
<template #label>
|
|
1215
1101
|
<SSInformationLabel label="vmafMax" :info="schemaObj.vmafMax" />
|
|
1216
1102
|
</template>
|
|
1217
|
-
<el-input-number
|
|
1218
|
-
|
|
1219
|
-
:
|
|
1220
|
-
class="w-full [&_.el-input\_\_inner]:text-start"
|
|
1221
|
-
:controls="false"
|
|
1222
|
-
:precision="2"
|
|
1223
|
-
:max="96"
|
|
1224
|
-
:min="vmafMinValue || 89"
|
|
1225
|
-
/>
|
|
1103
|
+
<el-input-number v-model="vmafMaxValue" :disabled="!defaultPTEValue"
|
|
1104
|
+
class="w-full [&_.el-input\_\_inner]:text-start" :controls="false" :precision="2" :max="96"
|
|
1105
|
+
:min="vmafMinValue || 89" />
|
|
1226
1106
|
</el-form-item>
|
|
1227
1107
|
<el-form-item label="vmafMin" class="max-w-190px min-w-190px" v-bind="vmafMinAttrs">
|
|
1228
1108
|
<template #label>
|
|
1229
1109
|
<SSInformationLabel label="vmafMin" :info="schemaObj.vmafMin" />
|
|
1230
1110
|
</template>
|
|
1231
|
-
<el-input-number
|
|
1232
|
-
|
|
1233
|
-
:
|
|
1234
|
-
class="w-full [&_.el-input\_\_inner]:text-start"
|
|
1235
|
-
:controls="false"
|
|
1236
|
-
:precision="2"
|
|
1237
|
-
:max="vmafMaxValue || 96"
|
|
1238
|
-
:min="89"
|
|
1239
|
-
/>
|
|
1111
|
+
<el-input-number v-model="vmafMinValue" :disabled="!defaultPTEValue"
|
|
1112
|
+
class="w-full [&_.el-input\_\_inner]:text-start" :controls="false" :precision="2"
|
|
1113
|
+
:max="vmafMaxValue || 96" :min="89" />
|
|
1240
1114
|
</el-form-item>
|
|
1241
1115
|
<el-form-item label="vmafThres" class="max-w-190px min-w-190px" v-bind="vmafThresAttrs">
|
|
1242
1116
|
<template #label>
|
|
1243
1117
|
<SSInformationLabel label="vmafThres" :info="schemaObj.vmafThres" />
|
|
1244
1118
|
</template>
|
|
1245
|
-
<el-input-number
|
|
1246
|
-
|
|
1247
|
-
:disabled="!defaultPTEValue"
|
|
1248
|
-
class="w-full [&_.el-input\_\_inner]:text-start"
|
|
1249
|
-
:controls="false"
|
|
1250
|
-
:max="1"
|
|
1251
|
-
:min="0.5"
|
|
1252
|
-
:precision="2"
|
|
1253
|
-
/>
|
|
1119
|
+
<el-input-number v-model="vmafThresValue" :disabled="!defaultPTEValue"
|
|
1120
|
+
class="w-full [&_.el-input\_\_inner]:text-start" :controls="false" :max="1" :min="0.5" :precision="2" />
|
|
1254
1121
|
</el-form-item>
|
|
1255
1122
|
</div>
|
|
1256
1123
|
</el-collapse-item>
|
|
1257
|
-
<el-collapse-item v-if="scte35 && ['copy', 'scte35'].includes(dataCodecValue) && encoderValue !== 'passthrough'"
|
|
1124
|
+
<el-collapse-item v-if="scte35 && ['copy', 'scte35'].includes(dataCodecValue) && encoderValue !== 'passthrough'"
|
|
1125
|
+
name="scte35">
|
|
1258
1126
|
<template #title>
|
|
1259
1127
|
<label for="" class="flex items-center gap-2 text-16px font-semibold">
|
|
1260
1128
|
Overwrite SCTE35
|
|
@@ -1266,36 +1134,23 @@ async function handleApplyConfig(_value) {
|
|
|
1266
1134
|
<template #label>
|
|
1267
1135
|
<SSInformationLabel :label="$t('EventChannel.form.label.enable')" :info="schemaSCTE35.enabled" />
|
|
1268
1136
|
</template>
|
|
1269
|
-
<el-switch
|
|
1270
|
-
v-model="scte35OverwriteConfigValue.enabled"
|
|
1271
|
-
/>
|
|
1137
|
+
<el-switch v-model="scte35OverwriteConfigValue.enabled" />
|
|
1272
1138
|
</el-form-item>
|
|
1273
1139
|
<el-form-item class="w-full">
|
|
1274
1140
|
<template #label>
|
|
1275
1141
|
<SSInformationLabel :label="$t('fast_channel.duration')" :info="schemaSCTE35.overwriteDuration" />
|
|
1276
1142
|
</template>
|
|
1277
|
-
<el-input-number
|
|
1278
|
-
|
|
1279
|
-
:disabled="!scte35OverwriteConfigValue.enabled"
|
|
1280
|
-
:min="1"
|
|
1281
|
-
:max="180"
|
|
1282
|
-
:precision="0"
|
|
1283
|
-
class="w-full"
|
|
1284
|
-
/>
|
|
1143
|
+
<el-input-number v-model="scte35OverwriteConfigValue.overwriteDuration"
|
|
1144
|
+
:disabled="!scte35OverwriteConfigValue.enabled" :min="1" :max="180" :precision="0" class="w-full" />
|
|
1285
1145
|
</el-form-item>
|
|
1286
1146
|
|
|
1287
1147
|
<el-form-item class="w-full" :label="$t('EventChannel.form.label.delay')">
|
|
1288
1148
|
<template #label>
|
|
1289
|
-
<SSInformationLabel :label="$t('EventChannel.form.label.delay')"
|
|
1149
|
+
<SSInformationLabel :label="$t('EventChannel.form.label.delay')"
|
|
1150
|
+
:info="schemaSCTE35.overwriteDelayTime" />
|
|
1290
1151
|
</template>
|
|
1291
|
-
<el-input-number
|
|
1292
|
-
|
|
1293
|
-
:disabled="!scte35OverwriteConfigValue.enabled"
|
|
1294
|
-
:min="0"
|
|
1295
|
-
:max="60"
|
|
1296
|
-
:precision="0"
|
|
1297
|
-
class="w-full"
|
|
1298
|
-
/>
|
|
1152
|
+
<el-input-number v-model="scte35OverwriteConfigValue.overwriteDelayTime"
|
|
1153
|
+
:disabled="!scte35OverwriteConfigValue.enabled" :min="0" :max="60" :precision="0" class="w-full" />
|
|
1299
1154
|
</el-form-item>
|
|
1300
1155
|
</div>
|
|
1301
1156
|
</el-collapse-item>
|
|
@@ -1307,121 +1162,60 @@ async function handleApplyConfig(_value) {
|
|
|
1307
1162
|
</template>
|
|
1308
1163
|
|
|
1309
1164
|
<div class="flex flex-wrap gap-2">
|
|
1310
|
-
<el-form-item v-if="isConfigEncoder && typeValue === 'video' && encoderValue !== 'passthrough' && !isPackage"
|
|
1165
|
+
<el-form-item v-if="isConfigEncoder && typeValue === 'video' && encoderValue !== 'passthrough' && !isPackage"
|
|
1166
|
+
class="max-w-190px min-w-190px" v-bind="presetAttrs">
|
|
1311
1167
|
<template #label>
|
|
1312
1168
|
<SSInformationLabel label="Preset" :info="schemaObj.videoPreset" />
|
|
1313
1169
|
</template>
|
|
1314
1170
|
<el-select v-model="presetValue" class="w-full">
|
|
1315
|
-
<el-option
|
|
1316
|
-
v-for="(e) in optionsPreset"
|
|
1317
|
-
:key="e.value"
|
|
1318
|
-
:value="e.value"
|
|
1319
|
-
:label="e.label"
|
|
1320
|
-
/>
|
|
1171
|
+
<el-option v-for="(e) in optionsPreset" :key="e.value" :value="e.value" :label="e.label" />
|
|
1321
1172
|
</el-select>
|
|
1322
1173
|
</el-form-item>
|
|
1323
|
-
<el-form-item
|
|
1324
|
-
v-
|
|
1325
|
-
label="Pixel format"
|
|
1326
|
-
class="max-w-190px min-w-190px"
|
|
1327
|
-
v-bind="pixelFormatAttrs"
|
|
1328
|
-
>
|
|
1174
|
+
<el-form-item v-if="typeValue === 'video'" label="Pixel format" class="max-w-190px min-w-190px"
|
|
1175
|
+
v-bind="pixelFormatAttrs">
|
|
1329
1176
|
<template #label>
|
|
1330
1177
|
<SSInformationLabel label="Pixel format" :info="schemaObj.pixelFormat" />
|
|
1331
1178
|
</template>
|
|
1332
|
-
<el-select
|
|
1333
|
-
|
|
1334
|
-
:
|
|
1335
|
-
|
|
1336
|
-
clearable
|
|
1337
|
-
@change="(value) => setUndefined('pixel', value)"
|
|
1338
|
-
>
|
|
1339
|
-
<el-option
|
|
1340
|
-
v-for="(type, idx) in ['yuv420p', 'yuv444p', 'yuv420p10le', 'yuv444p10le']"
|
|
1341
|
-
:key="type + idx"
|
|
1342
|
-
:value="type"
|
|
1343
|
-
:label="type"
|
|
1344
|
-
/>
|
|
1179
|
+
<el-select v-model="pixelFormatValue" :disabled="isCopiedVideoCodec" class="w-full" clearable
|
|
1180
|
+
@change="(value) => setUndefined('pixel', value)">
|
|
1181
|
+
<el-option v-for="(type, idx) in ['yuv420p', 'yuv444p', 'yuv420p10le', 'yuv444p10le']" :key="type + idx"
|
|
1182
|
+
:value="type" :label="type" />
|
|
1345
1183
|
</el-select>
|
|
1346
1184
|
</el-form-item>
|
|
1347
|
-
<el-form-item
|
|
1348
|
-
v-
|
|
1349
|
-
class="max-w-190px min-w-190px"
|
|
1350
|
-
label="Profile"
|
|
1351
|
-
v-bind="profileAttrs"
|
|
1352
|
-
>
|
|
1185
|
+
<el-form-item v-if="typeValue === 'video'" class="max-w-190px min-w-190px" label="Profile"
|
|
1186
|
+
v-bind="profileAttrs">
|
|
1353
1187
|
<template #label>
|
|
1354
1188
|
<SSInformationLabel label="Profile" :info="schemaObj.videoProfile" />
|
|
1355
1189
|
</template>
|
|
1356
|
-
<el-select
|
|
1357
|
-
|
|
1358
|
-
:
|
|
1359
|
-
class="w-full"
|
|
1360
|
-
default-first-option
|
|
1361
|
-
clearable
|
|
1362
|
-
@change="(value) => setUndefined('profile', value)"
|
|
1363
|
-
>
|
|
1364
|
-
<el-option
|
|
1365
|
-
v-for="(type, idx) in optionsProfile"
|
|
1366
|
-
:key="type + idx"
|
|
1367
|
-
:value="type"
|
|
1368
|
-
:label="type"
|
|
1369
|
-
/>
|
|
1190
|
+
<el-select v-model="profileValue" :disabled="isCopiedVideoCodec" class="w-full" default-first-option
|
|
1191
|
+
clearable @change="(value) => setUndefined('profile', value)">
|
|
1192
|
+
<el-option v-for="(type, idx) in optionsProfile" :key="type + idx" :value="type" :label="type" />
|
|
1370
1193
|
</el-select>
|
|
1371
1194
|
</el-form-item>
|
|
1372
|
-
<el-form-item
|
|
1373
|
-
v-
|
|
1374
|
-
class="max-w-190px min-w-190px"
|
|
1375
|
-
label="Profile"
|
|
1376
|
-
v-bind="audioProfileAttrs"
|
|
1377
|
-
>
|
|
1195
|
+
<el-form-item v-if="typeValue === 'audio'" class="max-w-190px min-w-190px" label="Profile"
|
|
1196
|
+
v-bind="audioProfileAttrs">
|
|
1378
1197
|
<template #label>
|
|
1379
1198
|
<SSInformationLabel label="Profile" :info="schemaObj.audioProfile" />
|
|
1380
1199
|
</template>
|
|
1381
|
-
<el-select
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
default-first-option
|
|
1386
|
-
clearable
|
|
1387
|
-
@change="(value) => setUndefined('audioProfile', value)"
|
|
1388
|
-
>
|
|
1389
|
-
<el-option
|
|
1390
|
-
v-for="(type, idx) in ['aac_low', 'aac_he', 'aac_he_v2', 'aac_main', 'aac_ld', 'aac_eld']"
|
|
1391
|
-
:key="type + idx"
|
|
1392
|
-
:value="type"
|
|
1393
|
-
:label="type"
|
|
1394
|
-
/>
|
|
1200
|
+
<el-select v-model="audioProfileValue" :disabled="isCopiedVideoCodec" class="w-full" default-first-option
|
|
1201
|
+
clearable @change="(value) => setUndefined('audioProfile', value)">
|
|
1202
|
+
<el-option v-for="(type, idx) in ['aac_low', 'aac_he', 'aac_he_v2', 'aac_main', 'aac_ld', 'aac_eld']"
|
|
1203
|
+
:key="type + idx" :value="type" :label="type" />
|
|
1395
1204
|
</el-select>
|
|
1396
1205
|
</el-form-item>
|
|
1397
|
-
<el-form-item
|
|
1398
|
-
v-if="typeValue === 'video'"
|
|
1399
|
-
class="max-w-190px min-w-190px"
|
|
1400
|
-
label="Level"
|
|
1401
|
-
v-bind="levelAttrs"
|
|
1402
|
-
>
|
|
1206
|
+
<el-form-item v-if="typeValue === 'video'" class="max-w-190px min-w-190px" label="Level" v-bind="levelAttrs">
|
|
1403
1207
|
<template #label>
|
|
1404
1208
|
<SSInformationLabel label="Level" :info="schemaObj.videoLevel" />
|
|
1405
1209
|
</template>
|
|
1406
|
-
<el-select
|
|
1407
|
-
|
|
1408
|
-
:
|
|
1409
|
-
class="w-full"
|
|
1410
|
-
default-first-option
|
|
1411
|
-
clearable
|
|
1412
|
-
@change="(value) => setUndefined('level', value)"
|
|
1413
|
-
>
|
|
1414
|
-
<el-option
|
|
1415
|
-
v-for="(type, idx) in optionsLevel"
|
|
1416
|
-
:key="type + idx"
|
|
1417
|
-
:value="type"
|
|
1418
|
-
:label="type"
|
|
1419
|
-
/>
|
|
1210
|
+
<el-select v-model="levelValue" :disabled="isCopiedVideoCodec" class="w-full" default-first-option clearable
|
|
1211
|
+
@change="(value) => setUndefined('level', value)">
|
|
1212
|
+
<el-option v-for="(type, idx) in optionsLevel" :key="type + idx" :value="type" :label="type" />
|
|
1420
1213
|
</el-select>
|
|
1421
1214
|
</el-form-item>
|
|
1422
1215
|
</div>
|
|
1423
1216
|
</el-collapse-item>
|
|
1424
|
-
<el-collapse-item v-if="typeValue === 'video' && !isPackage && encoderValue !== 'passthrough'"
|
|
1217
|
+
<el-collapse-item v-if="typeValue === 'video' && !isPackage && encoderValue !== 'passthrough'"
|
|
1218
|
+
title="Detail Information" name="output_aspect">
|
|
1425
1219
|
<template #title>
|
|
1426
1220
|
<label class="flex items-center gap-2 text-16px font-semibold">
|
|
1427
1221
|
{{ $t('SSConfig.aspect_ratio') }}
|
|
@@ -1433,19 +1227,10 @@ async function handleApplyConfig(_value) {
|
|
|
1433
1227
|
<template #label>
|
|
1434
1228
|
<SSInformationLabel label="Aspect Ratio Mode" :info="schemaObj.aspectRatioMode" />
|
|
1435
1229
|
</template>
|
|
1436
|
-
<el-select
|
|
1437
|
-
v-
|
|
1438
|
-
|
|
1439
|
-
:
|
|
1440
|
-
>
|
|
1441
|
-
<el-option
|
|
1442
|
-
v-for="(type, idx) in [
|
|
1443
|
-
'auto', 'custom', 'source',
|
|
1444
|
-
]"
|
|
1445
|
-
:key="type + idx"
|
|
1446
|
-
:value="type"
|
|
1447
|
-
:label="type"
|
|
1448
|
-
/>
|
|
1230
|
+
<el-select v-model="aspectRatioModeValue" class="w-full" :disabled="isCopiedVideoCodec">
|
|
1231
|
+
<el-option v-for="(type, idx) in [
|
|
1232
|
+
'auto', 'custom', 'source',
|
|
1233
|
+
]" :key="type + idx" :value="type" :label="type" />
|
|
1449
1234
|
</el-select>
|
|
1450
1235
|
</el-form-item>
|
|
1451
1236
|
|
|
@@ -1453,35 +1238,22 @@ async function handleApplyConfig(_value) {
|
|
|
1453
1238
|
<template #label>
|
|
1454
1239
|
<SSInformationLabel label="Aspect Ratio Width" :info="schemaObj.aspectRatioWidth" />
|
|
1455
1240
|
</template>
|
|
1456
|
-
<el-input-number
|
|
1457
|
-
|
|
1458
|
-
:
|
|
1459
|
-
:max="1000"
|
|
1460
|
-
class="w-full [&_.el-input\_\_inner]:text-start"
|
|
1461
|
-
:disabled="aspectRatioModeValue !== 'custom'"
|
|
1462
|
-
:precision="0"
|
|
1463
|
-
:controls="false"
|
|
1464
|
-
step-strictly
|
|
1465
|
-
/>
|
|
1241
|
+
<el-input-number v-model="aspectRatioWidthValue" :min="1" :max="1000"
|
|
1242
|
+
class="w-full [&_.el-input\_\_inner]:text-start" :disabled="aspectRatioModeValue !== 'custom'"
|
|
1243
|
+
:precision="0" :controls="false" step-strictly />
|
|
1466
1244
|
</el-form-item>
|
|
1467
1245
|
<el-form-item label="Aspect Ratio Height" class="max-w-190px min-w-190px" v-bind="aspectRatioHeightAttrs">
|
|
1468
1246
|
<template #label>
|
|
1469
1247
|
<SSInformationLabel label="Aspect Ratio Height" :info="schemaObj.aspectRatioHeight" />
|
|
1470
1248
|
</template>
|
|
1471
|
-
<el-input-number
|
|
1472
|
-
|
|
1473
|
-
:
|
|
1474
|
-
:max="1000"
|
|
1475
|
-
class="w-full [&_.el-input\_\_inner]:text-start"
|
|
1476
|
-
:disabled="aspectRatioModeValue !== 'custom'"
|
|
1477
|
-
:precision="0"
|
|
1478
|
-
:controls="false"
|
|
1479
|
-
step-strictly
|
|
1480
|
-
/>
|
|
1249
|
+
<el-input-number v-model="aspectRatioHeightValue" :min="1" :max="1000"
|
|
1250
|
+
class="w-full [&_.el-input\_\_inner]:text-start" :disabled="aspectRatioModeValue !== 'custom'"
|
|
1251
|
+
:precision="0" :controls="false" step-strictly />
|
|
1481
1252
|
</el-form-item>
|
|
1482
1253
|
</div>
|
|
1483
1254
|
</el-collapse-item>
|
|
1484
|
-
<el-collapse-item v-if="typeValue === 'video' && !isPackage && encoderValue !== 'passthrough'"
|
|
1255
|
+
<el-collapse-item v-if="typeValue === 'video' && !isPackage && encoderValue !== 'passthrough'"
|
|
1256
|
+
title="Detail Information" name="aspect">
|
|
1485
1257
|
<template #title>
|
|
1486
1258
|
<label class="flex items-center gap-2 text-16px font-semibold">
|
|
1487
1259
|
{{ $t('Channel.output_aspect_ratio') }}
|
|
@@ -1492,57 +1264,31 @@ async function handleApplyConfig(_value) {
|
|
|
1492
1264
|
<template #label>
|
|
1493
1265
|
<SSInformationLabel label="Width" :info="schemaObj.width" />
|
|
1494
1266
|
</template>
|
|
1495
|
-
<el-input-number
|
|
1496
|
-
|
|
1497
|
-
:min="0"
|
|
1498
|
-
:max="7680"
|
|
1499
|
-
class="w-full [&_.el-input\_\_inner]:text-start"
|
|
1500
|
-
:disabled="isCopiedVideoCodec"
|
|
1501
|
-
:precision="0"
|
|
1502
|
-
:controls="false"
|
|
1503
|
-
step-strictly
|
|
1504
|
-
/>
|
|
1267
|
+
<el-input-number v-model="widthValue" :min="0" :max="7680" class="w-full [&_.el-input\_\_inner]:text-start"
|
|
1268
|
+
:disabled="isCopiedVideoCodec" :precision="0" :controls="false" step-strictly />
|
|
1505
1269
|
</el-form-item>
|
|
1506
1270
|
|
|
1507
1271
|
<el-form-item label="Height" class="max-w-190px min-w-190px" v-bind="heightAttrs">
|
|
1508
1272
|
<template #label>
|
|
1509
1273
|
<SSInformationLabel label="Height" :info="schemaObj.height" />
|
|
1510
1274
|
</template>
|
|
1511
|
-
<el-input-number
|
|
1512
|
-
|
|
1513
|
-
:min="0"
|
|
1514
|
-
:max="4320"
|
|
1515
|
-
class="w-full [&_.el-input\_\_inner]:text-start"
|
|
1516
|
-
:disabled="isCopiedVideoCodec"
|
|
1517
|
-
:precision="0"
|
|
1518
|
-
:controls="false"
|
|
1519
|
-
step-strictly
|
|
1520
|
-
/>
|
|
1275
|
+
<el-input-number v-model="heightValue" :min="0" :max="4320" class="w-full [&_.el-input\_\_inner]:text-start"
|
|
1276
|
+
:disabled="isCopiedVideoCodec" :precision="0" :controls="false" step-strictly />
|
|
1521
1277
|
</el-form-item>
|
|
1522
1278
|
<el-form-item label="Scale Type" class="max-w-190px min-w-190px" v-bind="scaleTypeAttrs">
|
|
1523
1279
|
<template #label>
|
|
1524
1280
|
<SSInformationLabel label="Scale Type" :info="schemaObj.scaleType" />
|
|
1525
1281
|
</template>
|
|
1526
|
-
<el-select
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
'fitHeight',
|
|
1537
|
-
'fitInside',
|
|
1538
|
-
'fitCrop',
|
|
1539
|
-
'fitBoth',
|
|
1540
|
-
'source',
|
|
1541
|
-
]"
|
|
1542
|
-
:key="type + idx"
|
|
1543
|
-
:value="type"
|
|
1544
|
-
:label="type"
|
|
1545
|
-
/>
|
|
1282
|
+
<el-select v-model="scaleTypeValue" class="w-full" :disabled="isCopiedVideoCodec" clearable
|
|
1283
|
+
@change="(value) => setUndefined('scale', value)">
|
|
1284
|
+
<el-option v-for="(type, idx) in [
|
|
1285
|
+
'fitWidth',
|
|
1286
|
+
'fitHeight',
|
|
1287
|
+
'fitInside',
|
|
1288
|
+
'fitCrop',
|
|
1289
|
+
'fitBoth',
|
|
1290
|
+
'source',
|
|
1291
|
+
]" :key="type + idx" :value="type" :label="type" />
|
|
1546
1292
|
</el-select>
|
|
1547
1293
|
</el-form-item>
|
|
1548
1294
|
</div>
|
|
@@ -1560,32 +1306,16 @@ async function handleApplyConfig(_value) {
|
|
|
1560
1306
|
<template #label>
|
|
1561
1307
|
<SSInformationLabel label="FPS" :info="schemaObj.fps" />
|
|
1562
1308
|
</template>
|
|
1563
|
-
<el-input-number
|
|
1564
|
-
|
|
1565
|
-
class="w-full [&_.el-input\_\_inner]:text-start"
|
|
1566
|
-
:disabled="isCopiedVideoCodec"
|
|
1567
|
-
:precision="0"
|
|
1568
|
-
:controls="false"
|
|
1569
|
-
step-strictly
|
|
1570
|
-
/>
|
|
1309
|
+
<el-input-number v-model="fpsValue" class="w-full [&_.el-input\_\_inner]:text-start"
|
|
1310
|
+
:disabled="isCopiedVideoCodec" :precision="0" :controls="false" step-strictly />
|
|
1571
1311
|
</el-form-item>
|
|
1572
1312
|
<el-form-item label="Scan Type" class="max-w-190px min-w-190px" v-bind="scanTypeAttrs">
|
|
1573
1313
|
<template #label>
|
|
1574
1314
|
<SSInformationLabel label="Scan Type" :info="schemaObj.scanType" />
|
|
1575
1315
|
</template>
|
|
1576
|
-
<el-select
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
:disabled="isCopiedVideoCodec"
|
|
1580
|
-
clearable
|
|
1581
|
-
@change="(value) => setUndefined('scan', value)"
|
|
1582
|
-
>
|
|
1583
|
-
<el-option
|
|
1584
|
-
v-for="(type) in optionScanType"
|
|
1585
|
-
:key="type.value"
|
|
1586
|
-
:value="type.value"
|
|
1587
|
-
:label="type.value"
|
|
1588
|
-
/>
|
|
1316
|
+
<el-select v-model="scanTypeValue" class="w-full" :disabled="isCopiedVideoCodec" clearable
|
|
1317
|
+
@change="(value) => setUndefined('scan', value)">
|
|
1318
|
+
<el-option v-for="(type) in optionScanType" :key="type.value" :value="type.value" :label="type.value" />
|
|
1589
1319
|
</el-select>
|
|
1590
1320
|
</el-form-item>
|
|
1591
1321
|
</div>
|
|
@@ -1602,22 +1332,12 @@ async function handleApplyConfig(_value) {
|
|
|
1602
1332
|
<template #label>
|
|
1603
1333
|
<SSInformationLabel label="Rate control mode" :info="schemaObj.rateControlMode" />
|
|
1604
1334
|
</template>
|
|
1605
|
-
<el-select
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
>
|
|
1612
|
-
<el-option
|
|
1613
|
-
v-for="(type, idx) in [
|
|
1614
|
-
'cbr',
|
|
1615
|
-
'vbr',
|
|
1616
|
-
]"
|
|
1617
|
-
:key="type + idx"
|
|
1618
|
-
:value="type"
|
|
1619
|
-
:label="type"
|
|
1620
|
-
/>
|
|
1335
|
+
<el-select v-model="rateControlModeValue" class="max-w-190px min-w-190px flex-1"
|
|
1336
|
+
:disabled="isCopiedVideoCodec" clearable @change="(value) => setUndefined('rateControlMode', value)">
|
|
1337
|
+
<el-option v-for="(type, idx) in [
|
|
1338
|
+
'cbr',
|
|
1339
|
+
'vbr',
|
|
1340
|
+
]" :key="type + idx" :value="type" :label="type" />
|
|
1621
1341
|
</el-select>
|
|
1622
1342
|
</el-form-item>
|
|
1623
1343
|
|
|
@@ -1625,83 +1345,48 @@ async function handleApplyConfig(_value) {
|
|
|
1625
1345
|
<template #label>
|
|
1626
1346
|
<SSInformationLabel label="Constant quality" min-width="min-w-112px" :info="schemaObj.cq" />
|
|
1627
1347
|
</template>
|
|
1628
|
-
<el-input-number
|
|
1629
|
-
v-model="cqValue"
|
|
1630
|
-
:controls="false"
|
|
1631
|
-
:precision="0"
|
|
1348
|
+
<el-input-number v-model="cqValue" :controls="false" :precision="0"
|
|
1632
1349
|
class="w-full [&_.el-input\_\_inner]:text-start"
|
|
1633
|
-
:disabled="isCopiedVideoCodec || rateControlModeValue !== 'vbr'"
|
|
1634
|
-
:min="0"
|
|
1635
|
-
:max="51"
|
|
1636
|
-
/>
|
|
1350
|
+
:disabled="isCopiedVideoCodec || rateControlModeValue !== 'vbr'" :min="0" :max="51" />
|
|
1637
1351
|
</el-form-item>
|
|
1638
1352
|
<el-form-item label="RC" class="max-w-190px min-w-190px flex-1" v-bind="rcAttrs">
|
|
1639
1353
|
<template #label>
|
|
1640
1354
|
<SSInformationLabel label="RC" :info="schemaObj.rc" />
|
|
1641
1355
|
</template>
|
|
1642
|
-
<el-select
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
:disabled="isCopiedVideoCodec || isDisabledRc"
|
|
1646
|
-
clearable
|
|
1647
|
-
@change="(value) => setUndefined('rc', value)"
|
|
1648
|
-
>
|
|
1649
|
-
<el-option
|
|
1650
|
-
v-for="(type, idx) in optionRc"
|
|
1651
|
-
:key="type + idx"
|
|
1652
|
-
:value="type"
|
|
1653
|
-
:label="type"
|
|
1654
|
-
/>
|
|
1356
|
+
<el-select v-model="rcValue" class="max-w-190px min-w-190px flex-1"
|
|
1357
|
+
:disabled="isCopiedVideoCodec || isDisabledRc" clearable @change="(value) => setUndefined('rc', value)">
|
|
1358
|
+
<el-option v-for="(type, idx) in optionRc" :key="type + idx" :value="type" :label="type" />
|
|
1655
1359
|
</el-select>
|
|
1656
1360
|
</el-form-item>
|
|
1657
|
-
<el-form-item v-if="encoderValue !== 'passthrough' && !isPackage" class="max-w-190px min-w-190px flex-1"
|
|
1361
|
+
<el-form-item v-if="encoderValue !== 'passthrough' && !isPackage" class="max-w-190px min-w-190px flex-1"
|
|
1362
|
+
v-bind="videoRateAttrs">
|
|
1658
1363
|
<template #label>
|
|
1659
1364
|
<SSInformationLabel label="Bitrate" :info="schemaObj.videoBitrate" />
|
|
1660
1365
|
</template>
|
|
1661
|
-
<el-input
|
|
1662
|
-
|
|
1663
|
-
class="max-w-190px min-w-190px flex-1"
|
|
1664
|
-
:disabled="isCopiedVideoCodec"
|
|
1665
|
-
:formatter="formatter"
|
|
1666
|
-
:parser="parser"
|
|
1667
|
-
/>
|
|
1366
|
+
<el-input v-model="videoRateValue" class="max-w-190px min-w-190px flex-1" :disabled="isCopiedVideoCodec"
|
|
1367
|
+
:formatter="formatter" :parser="parser" />
|
|
1668
1368
|
</el-form-item>
|
|
1669
1369
|
<el-form-item v-bind="minrateAttrs" class="max-w-190px min-w-190px flex-1">
|
|
1670
1370
|
<template #label>
|
|
1671
1371
|
<SSInformationLabel label="Minrate" :info="schemaObj.minrate" />
|
|
1672
1372
|
</template>
|
|
1673
|
-
<el-input
|
|
1674
|
-
|
|
1675
|
-
class="max-w-190px min-w-190px flex-1"
|
|
1676
|
-
:disabled="isCopiedVideoCodec"
|
|
1677
|
-
:formatter="formatter"
|
|
1678
|
-
:parser="parser"
|
|
1679
|
-
/>
|
|
1373
|
+
<el-input v-model="minrateValue" class="max-w-190px min-w-190px flex-1" :disabled="isCopiedVideoCodec"
|
|
1374
|
+
:formatter="formatter" :parser="parser" />
|
|
1680
1375
|
</el-form-item>
|
|
1681
1376
|
|
|
1682
1377
|
<el-form-item v-bind="maxrateAttrs" class="max-w-190px min-w-190px flex-1">
|
|
1683
1378
|
<template #label>
|
|
1684
1379
|
<SSInformationLabel label="Maxrate" :info="schemaObj.maxrate" />
|
|
1685
1380
|
</template>
|
|
1686
|
-
<el-input
|
|
1687
|
-
|
|
1688
|
-
class="max-w-190px min-w-190px flex-1"
|
|
1689
|
-
:disabled="isCopiedVideoCodec"
|
|
1690
|
-
:formatter="formatter"
|
|
1691
|
-
:parser="parser"
|
|
1692
|
-
/>
|
|
1381
|
+
<el-input v-model="maxrateValue" class="max-w-190px min-w-190px flex-1" :disabled="isCopiedVideoCodec"
|
|
1382
|
+
:formatter="formatter" :parser="parser" />
|
|
1693
1383
|
</el-form-item>
|
|
1694
1384
|
<el-form-item v-bind="bufsizeAttrs" class="max-w-190px min-w-190px flex-1">
|
|
1695
1385
|
<template #label>
|
|
1696
1386
|
<SSInformationLabel label="Bufsize" :info="schemaObj.bufsize" />
|
|
1697
1387
|
</template>
|
|
1698
|
-
<el-input
|
|
1699
|
-
|
|
1700
|
-
class="max-w-190px min-w-190px flex-1"
|
|
1701
|
-
:disabled="isCopiedVideoCodec"
|
|
1702
|
-
:formatter="formatter"
|
|
1703
|
-
:parser="parser"
|
|
1704
|
-
/>
|
|
1388
|
+
<el-input v-model="bufsizeValue" class="max-w-190px min-w-190px flex-1" :disabled="isCopiedVideoCodec"
|
|
1389
|
+
:formatter="formatter" :parser="parser" />
|
|
1705
1390
|
</el-form-item>
|
|
1706
1391
|
</div>
|
|
1707
1392
|
<div v-if="typeValue === 'audio'" class="flex flex-wrap gap-2">
|
|
@@ -1709,58 +1394,25 @@ async function handleApplyConfig(_value) {
|
|
|
1709
1394
|
<template #label>
|
|
1710
1395
|
<SSInformationLabel label="Bitrate" :info="schemaObj.audioBitrate" />
|
|
1711
1396
|
</template>
|
|
1712
|
-
<el-input
|
|
1713
|
-
|
|
1714
|
-
class="max-w-190px min-w-190px flex-1"
|
|
1715
|
-
:disabled="isCopiedVideoCodec"
|
|
1716
|
-
:formatter="formatter"
|
|
1717
|
-
:parser="parser"
|
|
1718
|
-
/>
|
|
1397
|
+
<el-input v-model="audioRateValue" class="max-w-190px min-w-190px flex-1" :disabled="isCopiedVideoCodec"
|
|
1398
|
+
:formatter="formatter" :parser="parser" />
|
|
1719
1399
|
</el-form-item>
|
|
1720
1400
|
|
|
1721
|
-
<el-form-item
|
|
1722
|
-
v-
|
|
1723
|
-
class="max-w-190px min-w-190px flex-1"
|
|
1724
|
-
label="Sample rate"
|
|
1725
|
-
v-bind="sampleRateAttrs"
|
|
1726
|
-
>
|
|
1401
|
+
<el-form-item v-if="!isPackage" class="max-w-190px min-w-190px flex-1" label="Sample rate"
|
|
1402
|
+
v-bind="sampleRateAttrs">
|
|
1727
1403
|
<template #label>
|
|
1728
1404
|
<SSInformationLabel label="Sample rate" :info="schemaObj.sampleRate" />
|
|
1729
1405
|
</template>
|
|
1730
|
-
<el-select
|
|
1731
|
-
v-
|
|
1732
|
-
:disabled="isCopiedAudioCodec"
|
|
1733
|
-
class="w-full"
|
|
1734
|
-
default-first-option
|
|
1735
|
-
>
|
|
1736
|
-
<el-option
|
|
1737
|
-
v-for="(type, idx) in [44100, 48000]"
|
|
1738
|
-
:key="type + idx"
|
|
1739
|
-
:value="type"
|
|
1740
|
-
:label="type"
|
|
1741
|
-
/>
|
|
1406
|
+
<el-select v-model="sampleRateValue" :disabled="isCopiedAudioCodec" class="w-full" default-first-option>
|
|
1407
|
+
<el-option v-for="(type, idx) in [44100, 48000]" :key="type + idx" :value="type" :label="type" />
|
|
1742
1408
|
</el-select>
|
|
1743
1409
|
</el-form-item>
|
|
1744
|
-
<el-form-item
|
|
1745
|
-
v-if="!isPackage"
|
|
1746
|
-
class="max-w-190px min-w-190px flex-1"
|
|
1747
|
-
label="Channel"
|
|
1748
|
-
v-bind="channelAttrs"
|
|
1749
|
-
>
|
|
1410
|
+
<el-form-item v-if="!isPackage" class="max-w-190px min-w-190px flex-1" label="Channel" v-bind="channelAttrs">
|
|
1750
1411
|
<template #label>
|
|
1751
1412
|
<SSInformationLabel label="Channel" :info="schemaObj.channel" />
|
|
1752
1413
|
</template>
|
|
1753
|
-
<el-select
|
|
1754
|
-
v-
|
|
1755
|
-
:disabled="isCopiedAudioCodec"
|
|
1756
|
-
class="w-full"
|
|
1757
|
-
>
|
|
1758
|
-
<el-option
|
|
1759
|
-
v-for="(type, idx) in [1, 2, 6]"
|
|
1760
|
-
:key="type + idx"
|
|
1761
|
-
:value="type"
|
|
1762
|
-
:label="type"
|
|
1763
|
-
/>
|
|
1414
|
+
<el-select v-model="channelValue" :disabled="isCopiedAudioCodec" class="w-full">
|
|
1415
|
+
<el-option v-for="(type, idx) in [1, 2, 6]" :key="type + idx" :value="type" :label="type" />
|
|
1764
1416
|
</el-select>
|
|
1765
1417
|
</el-form-item>
|
|
1766
1418
|
</div>
|
|
@@ -1777,18 +1429,10 @@ async function handleApplyConfig(_value) {
|
|
|
1777
1429
|
<template #label>
|
|
1778
1430
|
<SSInformationLabel label="Hdr" :info="schemaObj.hdr" />
|
|
1779
1431
|
</template>
|
|
1780
|
-
<el-select
|
|
1781
|
-
|
|
1782
|
-
:
|
|
1783
|
-
|
|
1784
|
-
@change="(value) => setUndefined('hdr', value)"
|
|
1785
|
-
>
|
|
1786
|
-
<el-option
|
|
1787
|
-
v-for="(type, idx) in ['COPY', 'NONE', 'HDR10', 'HLG10', 'PQ10']"
|
|
1788
|
-
:key="type + idx"
|
|
1789
|
-
:value="type"
|
|
1790
|
-
:label="type"
|
|
1791
|
-
/>
|
|
1432
|
+
<el-select v-model="hdrValue" :disabled="isCopiedVideoCodec" clearable
|
|
1433
|
+
@change="(value) => setUndefined('hdr', value)">
|
|
1434
|
+
<el-option v-for="(type, idx) in ['COPY', 'NONE', 'HDR10', 'HLG10', 'PQ10']" :key="type + idx"
|
|
1435
|
+
:value="type" :label="type" />
|
|
1792
1436
|
</el-select>
|
|
1793
1437
|
</el-form-item>
|
|
1794
1438
|
</div>
|
|
@@ -1806,55 +1450,31 @@ async function handleApplyConfig(_value) {
|
|
|
1806
1450
|
<template #label>
|
|
1807
1451
|
<SSInformationLabel label="Bframe" :info="schemaObj.bframe" />
|
|
1808
1452
|
</template>
|
|
1809
|
-
<el-input-number
|
|
1810
|
-
|
|
1811
|
-
class="w-full [&_.el-input\_\_inner]:text-start"
|
|
1812
|
-
:disabled="isCopiedVideoCodec"
|
|
1813
|
-
:controls="false"
|
|
1814
|
-
:precision="1"
|
|
1815
|
-
:step="0.1"
|
|
1816
|
-
:max="3"
|
|
1817
|
-
:min="0"
|
|
1818
|
-
/>
|
|
1453
|
+
<el-input-number v-model="bframeValue" class="w-full [&_.el-input\_\_inner]:text-start"
|
|
1454
|
+
:disabled="isCopiedVideoCodec" :controls="false" :precision="1" :step="0.1" :max="3" :min="0" />
|
|
1819
1455
|
</el-form-item>
|
|
1820
1456
|
<el-form-item label="Gop structure mode" class="max-w-190px min-w-190px" v-bind="gopModeAttrs">
|
|
1821
1457
|
<template #label>
|
|
1822
1458
|
<SSInformationLabel label="Gop structure mode" :info="schemaObj.gopMode" />
|
|
1823
1459
|
</template>
|
|
1824
|
-
<el-select
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
clearable
|
|
1829
|
-
@change="gopValue = undefined"
|
|
1830
|
-
>
|
|
1831
|
-
<el-option
|
|
1832
|
-
v-for="(type, idx) in optionGopMode"
|
|
1833
|
-
:key="type + idx"
|
|
1834
|
-
:value="type.value"
|
|
1835
|
-
:label="type.label"
|
|
1836
|
-
/>
|
|
1460
|
+
<el-select v-model="gopModeValue" class="w-full" :disabled="isCopiedVideoCodec" clearable
|
|
1461
|
+
@change="gopValue = undefined">
|
|
1462
|
+
<el-option v-for="(type, idx) in optionGopMode" :key="type + idx" :value="type.value"
|
|
1463
|
+
:label="type.label" />
|
|
1837
1464
|
</el-select>
|
|
1838
1465
|
</el-form-item>
|
|
1839
1466
|
<el-form-item label="Gop size" class="max-w-190px min-w-190px" v-bind="gopAttrs">
|
|
1840
1467
|
<template #label>
|
|
1841
1468
|
<SSInformationLabel label="Gop size" :info="schemaObj.gopMode" />
|
|
1842
1469
|
</template>
|
|
1843
|
-
<el-input
|
|
1844
|
-
|
|
1845
|
-
:disabled="isCopiedVideoCodec || isDisabledGopSize"
|
|
1846
|
-
:formatter="formatter"
|
|
1847
|
-
:parser="parser"
|
|
1848
|
-
/>
|
|
1470
|
+
<el-input v-model="gopValue" :disabled="isCopiedVideoCodec || isDisabledGopSize" :formatter="formatter"
|
|
1471
|
+
:parser="parser" />
|
|
1849
1472
|
</el-form-item>
|
|
1850
1473
|
<el-form-item label="FixedGOP" class="max-w-190px min-w-190px" v-bind="fixedGOPAttrs">
|
|
1851
1474
|
<template #label>
|
|
1852
1475
|
<SSInformationLabel label="FixedGOP" :info="schemaObj.fixedGOP" />
|
|
1853
1476
|
</template>
|
|
1854
|
-
<el-switch
|
|
1855
|
-
v-model="fixedGOPValue"
|
|
1856
|
-
:disabled="disabledWithPTEConfig"
|
|
1857
|
-
/>
|
|
1477
|
+
<el-switch v-model="fixedGOPValue" :disabled="disabledWithPTEConfig" />
|
|
1858
1478
|
</el-form-item>
|
|
1859
1479
|
</div>
|
|
1860
1480
|
</el-collapse-item>
|
|
@@ -1870,72 +1490,38 @@ async function handleApplyConfig(_value) {
|
|
|
1870
1490
|
<template #label>
|
|
1871
1491
|
<SSInformationLabel :label="$t('general.groupId')" :info="schemaObj.name" />
|
|
1872
1492
|
</template>
|
|
1873
|
-
<el-input
|
|
1874
|
-
|
|
1875
|
-
:placeholder="$t('library_preset.enter_group_id')"
|
|
1876
|
-
autocomplete="off"
|
|
1877
|
-
clearable
|
|
1878
|
-
:maxlength="50"
|
|
1879
|
-
show-word-limit
|
|
1880
|
-
/>
|
|
1493
|
+
<el-input v-model="groupIdValue" :placeholder="$t('library_preset.enter_group_id')" autocomplete="off"
|
|
1494
|
+
clearable :maxlength="50" show-word-limit />
|
|
1881
1495
|
</el-form-item>
|
|
1882
|
-
<el-form-item
|
|
1883
|
-
v-if="!isPackage"
|
|
1884
|
-
class="max-w-190px min-w-190px"
|
|
1885
|
-
label="Volume"
|
|
1886
|
-
v-bind="volumeAttrs"
|
|
1887
|
-
>
|
|
1496
|
+
<el-form-item v-if="!isPackage" class="max-w-190px min-w-190px" label="Volume" v-bind="volumeAttrs">
|
|
1888
1497
|
<template #label>
|
|
1889
1498
|
<SSInformationLabel label="Volume" :info="schemaObj.volume" />
|
|
1890
1499
|
</template>
|
|
1891
|
-
<el-select
|
|
1892
|
-
|
|
1893
|
-
:
|
|
1894
|
-
|
|
1895
|
-
default-first-option
|
|
1896
|
-
clearable
|
|
1897
|
-
@change="(value) => setUndefined('volume', value)"
|
|
1898
|
-
>
|
|
1899
|
-
<el-option
|
|
1900
|
-
v-for="(type, idx) in ['+5dB', '-10dB', '0.5', '2', 'loudnorm']"
|
|
1901
|
-
:key="type + idx"
|
|
1902
|
-
:value="type"
|
|
1903
|
-
:label="type"
|
|
1904
|
-
/>
|
|
1500
|
+
<el-select v-model="volumeValue" :disabled="isCopiedAudioCodec" class="w-full" default-first-option
|
|
1501
|
+
clearable @change="(value) => setUndefined('volume', value)">
|
|
1502
|
+
<el-option v-for="(type, idx) in ['+5dB', '-10dB', '0.5', '2', 'loudnorm']" :key="type + idx"
|
|
1503
|
+
:value="type" :label="type" />
|
|
1905
1504
|
</el-select>
|
|
1906
1505
|
</el-form-item>
|
|
1907
1506
|
<el-form-item class="max-w-190px min-w-190px" :label="$t('profile.language')" v-bind="languageAttrs">
|
|
1908
1507
|
<template #label>
|
|
1909
1508
|
<SSInformationLabel :label="$t('profile.language')" :info="schemaObj.language" />
|
|
1910
1509
|
</template>
|
|
1911
|
-
<el-select-v2
|
|
1912
|
-
v-model="languageValue"
|
|
1913
|
-
:options="optionsLang"
|
|
1914
|
-
placeholder="Select"
|
|
1915
|
-
/>
|
|
1510
|
+
<el-select-v2 v-model="languageValue" :options="optionsLang" placeholder="Select" />
|
|
1916
1511
|
</el-form-item>
|
|
1917
1512
|
<el-form-item class="max-w-190px min-w-190px" :label="$t('profile.label')" v-bind="labelAttrs">
|
|
1918
1513
|
<template #label>
|
|
1919
1514
|
<SSInformationLabel :label="$t('profile.label')" :info="schemaObj.label" />
|
|
1920
1515
|
</template>
|
|
1921
|
-
<el-input
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
:placeholder="$t('profile.placeholder_label')"
|
|
1925
|
-
autocomplete="off"
|
|
1926
|
-
clearable
|
|
1927
|
-
show-word-limit
|
|
1928
|
-
maxlength="50"
|
|
1929
|
-
@change="(value) => setUndefined('label', value)"
|
|
1930
|
-
/>
|
|
1516
|
+
<el-input v-model="labelValue" :disabled="isCopiedAudioCodec && !isPackage"
|
|
1517
|
+
:placeholder="$t('profile.placeholder_label')" autocomplete="off" clearable show-word-limit maxlength="50"
|
|
1518
|
+
@change="(value) => setUndefined('label', value)" />
|
|
1931
1519
|
</el-form-item>
|
|
1932
1520
|
<el-form-item class="max-w-190px min-w-190px" :label="$t('profile.default')" v-bind="defaultAttrs">
|
|
1933
1521
|
<template #label>
|
|
1934
1522
|
<SSInformationLabel :label="$t('profile.default')" :info="schemaObj.audioDefault" />
|
|
1935
1523
|
</template>
|
|
1936
|
-
<el-switch
|
|
1937
|
-
v-model="defaultValue"
|
|
1938
|
-
/>
|
|
1524
|
+
<el-switch v-model="defaultValue" />
|
|
1939
1525
|
</el-form-item>
|
|
1940
1526
|
</div>
|
|
1941
1527
|
</el-collapse-item>
|
|
@@ -1953,5 +1539,6 @@ async function handleApplyConfig(_value) {
|
|
|
1953
1539
|
</el-button>
|
|
1954
1540
|
</DevOnly>
|
|
1955
1541
|
|
|
1956
|
-
<SSRecommendedConfigurationPTE v-if="isVisibleRecommend" v-model:visible="isVisibleRecommend"
|
|
1542
|
+
<SSRecommendedConfigurationPTE v-if="isVisibleRecommend" v-model:visible="isVisibleRecommend"
|
|
1543
|
+
@apply-config="handleApplyConfig" />
|
|
1957
1544
|
</template>
|