@jjlmoya/utils-audiovisual 1.7.0 → 1.8.0
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/package.json +2 -1
- package/src/category/i18n/de.ts +198 -0
- package/src/category/i18n/id.ts +198 -0
- package/src/category/i18n/it.ts +198 -0
- package/src/category/i18n/ja.ts +198 -0
- package/src/category/i18n/ko.ts +198 -0
- package/src/category/i18n/nl.ts +198 -0
- package/src/category/i18n/pl.ts +198 -0
- package/src/category/i18n/pt.ts +198 -0
- package/src/category/i18n/ru.ts +198 -0
- package/src/category/i18n/sv.ts +198 -0
- package/src/category/i18n/tr.ts +198 -0
- package/src/category/i18n/zh.ts +198 -0
- package/src/category/index.ts +31 -3
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tool/chromaticLens/i18n/de.ts +246 -0
- package/src/tool/chromaticLens/i18n/id.ts +246 -0
- package/src/tool/chromaticLens/i18n/it.ts +246 -0
- package/src/tool/chromaticLens/i18n/ja.ts +246 -0
- package/src/tool/chromaticLens/i18n/ko.ts +246 -0
- package/src/tool/chromaticLens/i18n/nl.ts +246 -0
- package/src/tool/chromaticLens/i18n/pl.ts +246 -0
- package/src/tool/chromaticLens/i18n/pt.ts +246 -0
- package/src/tool/chromaticLens/i18n/ru.ts +246 -0
- package/src/tool/chromaticLens/i18n/sv.ts +246 -0
- package/src/tool/chromaticLens/i18n/tr.ts +246 -0
- package/src/tool/chromaticLens/i18n/zh.ts +246 -0
- package/src/tool/chromaticLens/index.ts +15 -7
- package/src/tool/collageMaker/i18n/de.ts +233 -0
- package/src/tool/collageMaker/i18n/id.ts +233 -0
- package/src/tool/collageMaker/i18n/it.ts +233 -0
- package/src/tool/collageMaker/i18n/ja.ts +233 -0
- package/src/tool/collageMaker/i18n/ko.ts +233 -0
- package/src/tool/collageMaker/i18n/nl.ts +233 -0
- package/src/tool/collageMaker/i18n/pl.ts +233 -0
- package/src/tool/collageMaker/i18n/pt.ts +233 -0
- package/src/tool/collageMaker/i18n/ru.ts +233 -0
- package/src/tool/collageMaker/i18n/sv.ts +233 -0
- package/src/tool/collageMaker/i18n/tr.ts +233 -0
- package/src/tool/collageMaker/i18n/zh.ts +233 -0
- package/src/tool/collageMaker/index.ts +15 -6
- package/src/tool/exifCleaner/i18n/de.ts +277 -0
- package/src/tool/exifCleaner/i18n/fr.ts +1 -1
- package/src/tool/exifCleaner/i18n/id.ts +277 -0
- package/src/tool/exifCleaner/i18n/it.ts +277 -0
- package/src/tool/exifCleaner/i18n/ja.ts +277 -0
- package/src/tool/exifCleaner/i18n/ko.ts +277 -0
- package/src/tool/exifCleaner/i18n/nl.ts +277 -0
- package/src/tool/exifCleaner/i18n/pl.ts +277 -0
- package/src/tool/exifCleaner/i18n/pt.ts +277 -0
- package/src/tool/exifCleaner/i18n/ru.ts +277 -0
- package/src/tool/exifCleaner/i18n/sv.ts +277 -0
- package/src/tool/exifCleaner/i18n/tr.ts +277 -0
- package/src/tool/exifCleaner/i18n/zh.ts +277 -0
- package/src/tool/exifCleaner/index.ts +16 -8
- package/src/tool/imageCompressor/i18n/de.ts +242 -0
- package/src/tool/imageCompressor/i18n/en.ts +1 -1
- package/src/tool/imageCompressor/i18n/es.ts +1 -1
- package/src/tool/imageCompressor/i18n/id.ts +242 -0
- package/src/tool/imageCompressor/i18n/it.ts +242 -0
- package/src/tool/imageCompressor/i18n/ja.ts +242 -0
- package/src/tool/imageCompressor/i18n/ko.ts +242 -0
- package/src/tool/imageCompressor/i18n/nl.ts +242 -0
- package/src/tool/imageCompressor/i18n/pl.ts +242 -0
- package/src/tool/imageCompressor/i18n/pt.ts +242 -0
- package/src/tool/imageCompressor/i18n/ru.ts +242 -0
- package/src/tool/imageCompressor/i18n/sv.ts +242 -0
- package/src/tool/imageCompressor/i18n/tr.ts +242 -0
- package/src/tool/imageCompressor/i18n/zh.ts +244 -0
- package/src/tool/imageCompressor/index.ts +15 -7
- package/src/tool/printQualityCalculator/i18n/de.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/fr.ts +1 -1
- package/src/tool/printQualityCalculator/i18n/id.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/it.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ja.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ko.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/nl.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/pl.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/pt.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ru.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/sv.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/tr.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/zh.ts +261 -0
- package/src/tool/printQualityCalculator/index.ts +15 -7
- package/src/tool/privacyBlur/i18n/de.ts +238 -0
- package/src/tool/privacyBlur/i18n/id.ts +238 -0
- package/src/tool/privacyBlur/i18n/it.ts +238 -0
- package/src/tool/privacyBlur/i18n/ja.ts +238 -0
- package/src/tool/privacyBlur/i18n/ko.ts +238 -0
- package/src/tool/privacyBlur/i18n/nl.ts +238 -0
- package/src/tool/privacyBlur/i18n/pl.ts +238 -0
- package/src/tool/privacyBlur/i18n/pt.ts +238 -0
- package/src/tool/privacyBlur/i18n/ru.ts +238 -0
- package/src/tool/privacyBlur/i18n/sv.ts +238 -0
- package/src/tool/privacyBlur/i18n/tr.ts +238 -0
- package/src/tool/privacyBlur/i18n/zh.ts +238 -0
- package/src/tool/privacyBlur/index.ts +15 -7
- package/src/tool/subtitleSync/i18n/de.ts +241 -0
- package/src/tool/subtitleSync/i18n/fr.ts +5 -5
- package/src/tool/subtitleSync/i18n/id.ts +241 -0
- package/src/tool/subtitleSync/i18n/it.ts +241 -0
- package/src/tool/subtitleSync/i18n/ja.ts +241 -0
- package/src/tool/subtitleSync/i18n/ko.ts +241 -0
- package/src/tool/subtitleSync/i18n/nl.ts +241 -0
- package/src/tool/subtitleSync/i18n/pl.ts +241 -0
- package/src/tool/subtitleSync/i18n/pt.ts +241 -0
- package/src/tool/subtitleSync/i18n/ru.ts +241 -0
- package/src/tool/subtitleSync/i18n/sv.ts +241 -0
- package/src/tool/subtitleSync/i18n/tr.ts +241 -0
- package/src/tool/subtitleSync/i18n/zh.ts +241 -0
- package/src/tool/subtitleSync/index.ts +15 -7
- package/src/tool/timelapseCalculator/i18n/de.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/fr.ts +2 -2
- package/src/tool/timelapseCalculator/i18n/id.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/it.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ja.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ko.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/nl.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/pl.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/pt.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ru.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/sv.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/tr.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/zh.ts +169 -0
- package/src/tool/timelapseCalculator/index.ts +16 -8
- package/src/tool/tvDistance/i18n/de.ts +223 -0
- package/src/tool/tvDistance/i18n/id.ts +223 -0
- package/src/tool/tvDistance/i18n/it.ts +223 -0
- package/src/tool/tvDistance/i18n/ja.ts +223 -0
- package/src/tool/tvDistance/i18n/ko.ts +223 -0
- package/src/tool/tvDistance/i18n/nl.ts +223 -0
- package/src/tool/tvDistance/i18n/pl.ts +223 -0
- package/src/tool/tvDistance/i18n/pt.ts +223 -0
- package/src/tool/tvDistance/i18n/ru.ts +223 -0
- package/src/tool/tvDistance/i18n/sv.ts +223 -0
- package/src/tool/tvDistance/i18n/tr.ts +223 -0
- package/src/tool/tvDistance/i18n/zh.ts +223 -0
- package/src/tool/tvDistance/index.ts +15 -7
- package/src/tool/videoFrameExtractor/i18n/de.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/id.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/it.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ja.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ko.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/nl.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/pl.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/pt.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ru.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/sv.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/tr.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/zh.ts +235 -0
- package/src/tool/videoFrameExtractor/index.ts +16 -8
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { VideoFrameExtractorUI, VideoFrameExtractorLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'estrattore-fotogrammi-video-online-cattura-stills-hd';
|
|
5
|
+
const title = 'Estrattore Fotogrammi Video: Cattura istantanee HD';
|
|
6
|
+
const description = 'Estrai singole immagini dai tuoi video con precisione millimetrica. Cattura i momenti perfetti in HD localmente e gratuitamente.';
|
|
7
|
+
|
|
8
|
+
const ui: VideoFrameExtractorUI = {
|
|
9
|
+
uploadTitle: "Carica un file video",
|
|
10
|
+
uploadFormats: "MP4, WebM, MOV o MKV (Max. 500MB)",
|
|
11
|
+
privacyNote: "Il video non viene caricato su Internet, viene elaborato nel tuo browser.",
|
|
12
|
+
playLabel: "Riproduci",
|
|
13
|
+
pauseLabel: "Pausa",
|
|
14
|
+
captureBtn: "Cattura fotogramma",
|
|
15
|
+
prevFrame: "-1F",
|
|
16
|
+
nextFrame: "+1F",
|
|
17
|
+
batchTitle: "Estrazione Automatica",
|
|
18
|
+
batchEvery: "Ogni",
|
|
19
|
+
batchStart: "Avvia sequenza",
|
|
20
|
+
batchProcessing: "Estrazione...",
|
|
21
|
+
galleryTitle: "Fotogrammi Catturati",
|
|
22
|
+
galleryEmpty: "Le catture appariranno qui man mano che le effettui.",
|
|
23
|
+
downloadAll: "Scarica tutto",
|
|
24
|
+
downloadHD: "Scarica immagine HD",
|
|
25
|
+
resetBtn: "Carica un altro video"
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const faq: VideoFrameExtractorLocaleContent['faq'] = [
|
|
29
|
+
{
|
|
30
|
+
question: "Posso estrarre fotogrammi da video lunghi?",
|
|
31
|
+
answer: "Sì, purché il tuo browser abbia abbastanza RAM per caricare il video. Consigliamo file fino a 500 MB per prestazioni ottimali.",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
question: "In quale risoluzione vengono salvate le catture?",
|
|
35
|
+
answer: "Le catture vengono effettuate alla risoluzione nativa del video originale. Se il tuo video è in 4K, otterrai un'immagine 4K di alta qualità.",
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: VideoFrameExtractorLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: "Carica il tuo video",
|
|
42
|
+
text: "Seleziona il file video dal tuo dispositivo. Non lo caricheremo su alcun server.",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: "Vai al momento esatto",
|
|
46
|
+
text: "Usa la barra della timeline o i pulsanti ±1 fotogramma per una precisione chirurgica.",
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "Cattura il fotogramma",
|
|
50
|
+
text: "Premi il pulsante di cattura per salvare il momento nella galleria sottostante.",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "Scarica in alta qualità",
|
|
54
|
+
text: "Scarica le singole catture o l'intera sessione nel formato WebP ottimizzato.",
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
const bibliography: VideoFrameExtractorLocaleContent['bibliography'] = [
|
|
59
|
+
{
|
|
60
|
+
name: "Capturing frames with HTML5 Video API",
|
|
61
|
+
url: "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video",
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: VideoFrameExtractorLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'summary',
|
|
68
|
+
title: 'Estrazione Professionale di Fotogrammi Video',
|
|
69
|
+
items: [
|
|
70
|
+
'Precisione al singolo fotogramma (±1 frame) per catture perfette',
|
|
71
|
+
'Supporta MP4, WebM, MOV, MKV fino a 500MB',
|
|
72
|
+
'Risoluzione nativa del video preservata (SD, HD, 4K)',
|
|
73
|
+
'Estrazione automatica in batch a intervalli personalizzati'
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{ type: 'title', text: 'Estrazione Fotogrammi: Congelare il Tempo nel Video', level: 2 },
|
|
77
|
+
{ type: 'paragraph', html: 'A volte un\'immagine vale più di mille parole. Il nostro strumento utilizza la potenza locale del tuo browser per estrarre fotogrammi di precisione senza bisogno di software professionali.' },
|
|
78
|
+
|
|
79
|
+
{ type: 'stats', items: [
|
|
80
|
+
{ value: '±1', label: 'Precisione Fotogramma', icon: 'mdi:target' },
|
|
81
|
+
{ value: '100%', label: 'Risoluzione Nativa', icon: 'mdi:video-high-definition' },
|
|
82
|
+
{ value: '500MB', label: 'File Supportati', icon: 'mdi:file-video' }
|
|
83
|
+
], columns: 3 },
|
|
84
|
+
|
|
85
|
+
{ type: 'title', text: 'Casi d\'Uso Professionali', level: 3 },
|
|
86
|
+
{ type: 'comparative', items: [
|
|
87
|
+
{
|
|
88
|
+
title: 'Cinema e Fotografia',
|
|
89
|
+
description: 'Cattura fotogrammi come riferimento visivo o composizione',
|
|
90
|
+
icon: 'mdi:film',
|
|
91
|
+
points: [
|
|
92
|
+
'Estrai stills per il marketing cinematografico',
|
|
93
|
+
'Riferimenti per la composizione della scena',
|
|
94
|
+
'Analisi fotogramma per fotogramma'
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
title: 'Contenuti Digitali',
|
|
99
|
+
description: 'Crea miniature e copertine per i social media',
|
|
100
|
+
icon: 'mdi:youtube',
|
|
101
|
+
points: [
|
|
102
|
+
'Miniature YouTube ad alta risoluzione',
|
|
103
|
+
'Copertine per i social media',
|
|
104
|
+
'Immagini per presentazioni'
|
|
105
|
+
],
|
|
106
|
+
highlight: true
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: 'Documentazione Tecnica',
|
|
110
|
+
description: 'Estrai fotogrammi da tutorial e dimostrazioni',
|
|
111
|
+
icon: 'mdi:book-open',
|
|
112
|
+
points: [
|
|
113
|
+
'Screenshot da video tutorial',
|
|
114
|
+
'Documentazione visiva passo-passo',
|
|
115
|
+
'Analisi del movimento in tempo reale'
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
title: 'Sport e Azione',
|
|
120
|
+
description: 'Cattura l\'istante preciso della massima azione',
|
|
121
|
+
icon: 'mdi:dumbbell',
|
|
122
|
+
points: [
|
|
123
|
+
'Analisi della tecnica sportiva fotogramma per fotogramma',
|
|
124
|
+
'Cattura di momenti eroici',
|
|
125
|
+
'Studio del movimento'
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
], columns: 2 },
|
|
129
|
+
|
|
130
|
+
{ type: 'title', text: 'Formati Video Supportati', level: 3 },
|
|
131
|
+
{ type: 'table', headers: ['Formato', 'Estensione', 'Compatibilità', 'Note'], rows: [
|
|
132
|
+
['MPEG-4', 'MP4', 'Universale (100%)', 'Migliore compressione, molto usato'],
|
|
133
|
+
['WebM', 'WebM', 'Browser moderni', 'Compressione superiore, dimensioni ridotte'],
|
|
134
|
+
['QuickTime', 'MOV', 'Safari, alcuni player', 'Standard Apple'],
|
|
135
|
+
['Matroska', 'MKV', 'Browser moderni', 'Container flessibile']
|
|
136
|
+
] },
|
|
137
|
+
|
|
138
|
+
{ type: 'card', title: 'Precisione al Singolo Fotogramma', html: 'Muoversi di un singolo fotogramma in avanti o indietro (±1 frame) è vitale per catturare l\'istante perfetto: un salto, un sorriso, un gesto. Il nostro strumento ti offre un controllo millimetrico.' },
|
|
139
|
+
|
|
140
|
+
{ type: 'proscons', items: [
|
|
141
|
+
{
|
|
142
|
+
pro: 'Privacy totale: il video è elaborato al 100% localmente nel tuo browser',
|
|
143
|
+
con: 'Limitata dalla dimensione della memoria RAM disponibile (~500MB consigliati)'
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
pro: 'Risoluzione nativa preservata: SD, HD, 4K senza ri-compressione',
|
|
147
|
+
con: 'Richiede un browser moderno con supporto Video HTML5'
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
pro: 'Estrazione batch automatica a intervalli personalizzati',
|
|
151
|
+
con: 'Per editing avanzato (tagli), è necessario un editor video'
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
pro: 'Esporta fotogrammi in WebP ottimizzato o PNG non compresso',
|
|
155
|
+
con: 'Un fotogramma alla volta (non esporta sequenze GIF automatizzate)'
|
|
156
|
+
}
|
|
157
|
+
], proTitle: 'Vantaggi', conTitle: 'Limitazioni' },
|
|
158
|
+
|
|
159
|
+
{ type: 'diagnostic', variant: 'info', title: 'Risoluzione e Frame Rate', icon: 'mdi:information', badge: 'Tecnico', html: 'La risoluzione finale del fotogramma dipende dal video originale. Preserviamo le informazioni native del video senza upscaling.' },
|
|
160
|
+
|
|
161
|
+
{ type: 'glossary', items: [
|
|
162
|
+
{
|
|
163
|
+
term: 'Fotogramma',
|
|
164
|
+
definition: 'Singola immagine in una sequenza video. Un video a 24 fps contiene 24 fotogrammi al secondo.'
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
term: 'FPS (Fotogrammi Per Secondo)',
|
|
168
|
+
definition: 'Fotogrammi al secondo. Determina la fluidità del movimento.'
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
term: 'Codec Video',
|
|
172
|
+
definition: 'Algoritmo di compressione: H.264, VP9, HEVC. Determina dimensione e qualità.'
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
term: 'Bitrate',
|
|
176
|
+
definition: 'Quantità di dati elaborati al secondo. Bitrate più alto = qualità superiore.'
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
term: 'Risoluzione Video',
|
|
180
|
+
definition: 'Dimensioni in pixel: 720p, 1080p, 4K, 8K.'
|
|
181
|
+
}
|
|
182
|
+
] },
|
|
183
|
+
|
|
184
|
+
{ type: 'message', title: 'Estrazione fotogrammi professionale', ariaLabel: 'Informazioni tecniche sull\'estrazione video', html: 'Non servono complessi convertitori. Un fotogramma perfetto è a soli 3 clic: carica video, naviga, cattura.' },
|
|
185
|
+
|
|
186
|
+
{ type: 'title', text: 'Congelare Momenti Video', level: 3 },
|
|
187
|
+
{ type: 'paragraph', html: 'Ogni video contiene centinaia di fotogrammi. Usa questo strumento per estrarre quei momenti perfetti senza compromettere qualità o privacy.' }
|
|
188
|
+
];
|
|
189
|
+
|
|
190
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
191
|
+
'@context': 'https://schema.org',
|
|
192
|
+
'@type': 'FAQPage',
|
|
193
|
+
mainEntity: faq.map((item) => ({
|
|
194
|
+
'@type': 'Question',
|
|
195
|
+
name: item.question,
|
|
196
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
197
|
+
})),
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
const howToSchema: WithContext<HowTo> = {
|
|
201
|
+
'@context': 'https://schema.org',
|
|
202
|
+
'@type': 'HowTo',
|
|
203
|
+
name: title,
|
|
204
|
+
description,
|
|
205
|
+
step: howTo.map((step) => ({
|
|
206
|
+
'@type': 'HowToStep',
|
|
207
|
+
name: step.name,
|
|
208
|
+
text: step.text,
|
|
209
|
+
})),
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
213
|
+
'@context': 'https://schema.org',
|
|
214
|
+
'@type': 'SoftwareApplication',
|
|
215
|
+
name: title,
|
|
216
|
+
description,
|
|
217
|
+
applicationCategory: 'UtilitiesApplication',
|
|
218
|
+
operatingSystem: 'Web',
|
|
219
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
220
|
+
inLanguage: 'it',
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
export const content: VideoFrameExtractorLocaleContent = {
|
|
224
|
+
slug,
|
|
225
|
+
title,
|
|
226
|
+
description,
|
|
227
|
+
ui,
|
|
228
|
+
seo,
|
|
229
|
+
faq,
|
|
230
|
+
faqTitle: 'Domande Frequenti sull\'Estrazione Fotogrammi Video',
|
|
231
|
+
bibliography,
|
|
232
|
+
bibliographyTitle: 'Standard Tecnici per la Cattura Video',
|
|
233
|
+
howTo,
|
|
234
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
235
|
+
};
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { VideoFrameExtractorUI, VideoFrameExtractorLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'online-video-frame-extractor-japan-hd';
|
|
5
|
+
const title = 'ビデオフレーム抽出:HD静止画キャプチャ';
|
|
6
|
+
const description = 'ビデオから特定の瞬間をフレーム単位で正確に抽出。HD品質の画像をブラウザ上で安全かつ無料でキャプチャできます。';
|
|
7
|
+
|
|
8
|
+
const ui: VideoFrameExtractorUI = {
|
|
9
|
+
uploadTitle: "ビデオファイルをアップロード",
|
|
10
|
+
uploadFormats: "MP4, WebM, MOV, または MKV (最大 500MB)",
|
|
11
|
+
privacyNote: "ビデオはインターネットに送信されず、ブラウザ内でローカルに処理されます。",
|
|
12
|
+
playLabel: "再生",
|
|
13
|
+
pauseLabel: "一時停止",
|
|
14
|
+
captureBtn: "フレームをキャプチャ",
|
|
15
|
+
prevFrame: "-1F",
|
|
16
|
+
nextFrame: "+1F",
|
|
17
|
+
batchTitle: "自動書き出し",
|
|
18
|
+
batchEvery: "間隔:",
|
|
19
|
+
batchStart: "連続抽出開始",
|
|
20
|
+
batchProcessing: "抽出中...",
|
|
21
|
+
galleryTitle: "キャプチャ済みフレーム",
|
|
22
|
+
galleryEmpty: "キャプチャした画像がここに表示されます。",
|
|
23
|
+
downloadAll: "一括ダウンロード",
|
|
24
|
+
downloadHD: "HD画像をダウンロード",
|
|
25
|
+
resetBtn: "別のビデオを読み込む"
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const faq: VideoFrameExtractorLocaleContent['faq'] = [
|
|
29
|
+
{
|
|
30
|
+
question: "長いビデオからフレームを抽出できますか?",
|
|
31
|
+
answer: "はい、ブラウザがビデオを読み込むのに十分なRAM(メモリ)を持っていれば可能です。最適なパフォーマンスのために500MB以下のファイルを推奨しています。",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
question: "保存される画像の解像度はどのくらいですか?",
|
|
35
|
+
answer: "元のビデオのネイティブ解像度でキャプチャされます。4Kビデオであれば、高品質な4Kイメージを抽出できます。",
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: VideoFrameExtractorLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: "ビデオをアップロード",
|
|
42
|
+
text: "デバイスからビデオファイルを選択します。外部サーバーには一切アップロードされません。",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: "正確な瞬間へ移動",
|
|
46
|
+
text: "タイムラインバーまたは±1フレームボタンを使用して、秒単位以下の精度で調整します。",
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "フレームをキャプチャ",
|
|
50
|
+
text: "キャプチャボタンを押して、下のギャラリーに画像を保存します。",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "高品質でダウンロード",
|
|
54
|
+
text: "個別の画像またはセッション全体を最適化されたWebP形式でダウンロードします。",
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
const bibliography: VideoFrameExtractorLocaleContent['bibliography'] = [
|
|
59
|
+
{
|
|
60
|
+
name: "Capturing frames with HTML5 Video API",
|
|
61
|
+
url: "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video",
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: VideoFrameExtractorLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'summary',
|
|
68
|
+
title: 'プロフェッショナルなビデオフレーム抽出',
|
|
69
|
+
items: [
|
|
70
|
+
'特定の瞬間を逃さない±1フレーム単位の超精密キャプチャ',
|
|
71
|
+
'MP4, WebM, MOV, MKVに対応 (最大500MB)',
|
|
72
|
+
'ビデオ本来の解像度を維持 (SD, HD, 4K対応)',
|
|
73
|
+
'指定した間隔での自動バッチ抽出機能'
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{ type: 'title', text: 'フレーム抽出:映像の一瞬を切り取る', level: 2 },
|
|
77
|
+
{ type: 'paragraph', html: '時には一枚の画像が千の言葉よりも雄弁に語ることがあります。プロ用の編集ソフトを使わずに、ブラウザの処理能力を活用して正確なフレームを抽出しましょう。' },
|
|
78
|
+
|
|
79
|
+
{ type: 'stats', items: [
|
|
80
|
+
{ value: '±1', label: '1フレーム単位の精度', icon: 'mdi:target' },
|
|
81
|
+
{ value: '100%', label: 'ネイティブ解像度', icon: 'mdi:video-high-definition' },
|
|
82
|
+
{ value: '500MB', label: '対応ファイル容量', icon: 'mdi:file-video' }
|
|
83
|
+
], columns: 3 },
|
|
84
|
+
|
|
85
|
+
{ type: 'title', text: 'プロフェッショナルな活用シーン', level: 3 },
|
|
86
|
+
{ type: 'comparative', items: [
|
|
87
|
+
{
|
|
88
|
+
title: '映像制作・写真',
|
|
89
|
+
description: '構図の確認やリファレンスとして抽出',
|
|
90
|
+
icon: 'mdi:film',
|
|
91
|
+
points: [
|
|
92
|
+
'プロモーション用のスチル素材',
|
|
93
|
+
'シーン構図の資料作成',
|
|
94
|
+
'コマ送りによる詳細分析'
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
title: 'SNS・Webコンテンツ',
|
|
99
|
+
description: 'サムネイルやカバー画像の作成',
|
|
100
|
+
icon: 'mdi:youtube',
|
|
101
|
+
points: [
|
|
102
|
+
'高解像度なYouTubeサムネイル',
|
|
103
|
+
'SNS投稿用カバー画像',
|
|
104
|
+
'プレゼン資料用のキャプチャ'
|
|
105
|
+
],
|
|
106
|
+
highlight: true
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: '技術資料・教育',
|
|
110
|
+
description: 'チュートリアルやデモ動画の図解作成',
|
|
111
|
+
icon: 'mdi:book-open',
|
|
112
|
+
points: [
|
|
113
|
+
'操作手順のステップ画像',
|
|
114
|
+
'動作確認用の視覚的エビデンス',
|
|
115
|
+
'リアルタイム動作分析'
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
title: 'スポーツ分析',
|
|
120
|
+
description: '最も重要なアクションの瞬間を捉える',
|
|
121
|
+
icon: 'mdi:dumbbell',
|
|
122
|
+
points: [
|
|
123
|
+
'フォームのコマ送りチェック',
|
|
124
|
+
'決定的な瞬間の保存',
|
|
125
|
+
'動作解析'
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
], columns: 2 },
|
|
129
|
+
|
|
130
|
+
{ type: 'title', text: '対応ビデオフォーマット', level: 3 },
|
|
131
|
+
{ type: 'table', headers: ['フォーマット', '拡張子', '互換性', '備考'], rows: [
|
|
132
|
+
['MPEG-4', 'MP4', '汎用性(100%)', '最も普及している形式'],
|
|
133
|
+
['WebM', 'WebM', 'モダンブラウザ', '優れた圧縮効率'],
|
|
134
|
+
['QuickTime', 'MOV', 'Safari等', 'Apple系標準'],
|
|
135
|
+
['Matroska', 'MKV', 'モダンブラウザ', '高機能コンテナ形式']
|
|
136
|
+
] },
|
|
137
|
+
|
|
138
|
+
{ type: 'card', title: '1フレーム単位の超精密操作', html: '1コマだけ進める、戻すといった操作は、完璧な一瞬を捉えるために不可欠です。秒間24~60コマの映像から、狙った瞬間を逃さずコントロールできます。' },
|
|
139
|
+
|
|
140
|
+
{ type: 'proscons', items: [
|
|
141
|
+
{
|
|
142
|
+
pro: '完全なプライバシー:映像は100%ローカル(ブラウザ内)で処理',
|
|
143
|
+
con: 'お使いのデバイスのRAM容量に依存(500MB以下を推奨)'
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
pro: '解像度劣化なし:再圧縮なしでSD, HD, 4Kを維持',
|
|
147
|
+
con: 'HTML5 Videoに対応したモダンブラウザが必要'
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
pro: '指定間隔での一括抽出が可能',
|
|
151
|
+
con: '複雑な編集(カットや結合)には編集ソフトが必要'
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
pro: 'WebPや無圧縮PNG形式での書き出しに対応',
|
|
155
|
+
con: '自動アニメーションGIFの作成機能は非搭載'
|
|
156
|
+
}
|
|
157
|
+
], proTitle: 'メリット', conTitle: '制限事項' },
|
|
158
|
+
|
|
159
|
+
{ type: 'diagnostic', variant: 'info', title: '解像度とフレームレート', icon: 'mdi:information', badge: 'テクニカル', html: '抽出される解像度は元のビデオに依存します。アップスケーリングなどは行わず、ビデオ本来の情報を忠実に保存します。' },
|
|
160
|
+
|
|
161
|
+
{ type: 'glossary', items: [
|
|
162
|
+
{
|
|
163
|
+
term: 'フレーム',
|
|
164
|
+
definition: 'ビデオを構成する個々の静止画のこと。24fpsの動画なら1秒に24枚の画像が含まれます。'
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
term: 'FPS',
|
|
168
|
+
definition: '1秒あたりのフレーム数。映像の滑らかさを決定します。'
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
term: 'ビデオコーデック',
|
|
172
|
+
definition: '圧縮アルゴリズム(H.264, VP9等)。ファイルサイズと画質に影響します。'
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
term: 'ビットレート',
|
|
176
|
+
definition: '1秒間に処理されるデータ量。高いほど高品質になります。'
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
term: '解像度',
|
|
180
|
+
definition: 'ピクセル数(1080p, 4K等)。画像の細かさを決定します。'
|
|
181
|
+
}
|
|
182
|
+
] },
|
|
183
|
+
|
|
184
|
+
{ type: 'message', title: 'プロ品質のフレーム抽出', ariaLabel: '抽出技術に関する情報', html: '複雑な変換サイトや高価なソフトは不要です。アップロード、移動、保存の3ステップで理想の一枚が手に入ります。' },
|
|
185
|
+
|
|
186
|
+
{ type: 'title', text: 'ビデオの瞬間を「永遠」に', level: 3 },
|
|
187
|
+
{ type: 'paragraph', html: '映像の中には無数の価値ある瞬間が眠っています。品質やプライバシーを損なうことなく、それらを最高品質で切り取りましょう。' }
|
|
188
|
+
];
|
|
189
|
+
|
|
190
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
191
|
+
'@context': 'https://schema.org',
|
|
192
|
+
'@type': 'FAQPage',
|
|
193
|
+
mainEntity: faq.map((item) => ({
|
|
194
|
+
'@type': 'Question',
|
|
195
|
+
name: item.question,
|
|
196
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
197
|
+
})),
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
const howToSchema: WithContext<HowTo> = {
|
|
201
|
+
'@context': 'https://schema.org',
|
|
202
|
+
'@type': 'HowTo',
|
|
203
|
+
name: title,
|
|
204
|
+
description,
|
|
205
|
+
step: howTo.map((step) => ({
|
|
206
|
+
'@type': 'HowToStep',
|
|
207
|
+
name: step.name,
|
|
208
|
+
text: step.text,
|
|
209
|
+
})),
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
213
|
+
'@context': 'https://schema.org',
|
|
214
|
+
'@type': 'SoftwareApplication',
|
|
215
|
+
name: title,
|
|
216
|
+
description,
|
|
217
|
+
applicationCategory: 'UtilitiesApplication',
|
|
218
|
+
operatingSystem: 'Web',
|
|
219
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
220
|
+
inLanguage: 'ja',
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
export const content: VideoFrameExtractorLocaleContent = {
|
|
224
|
+
slug,
|
|
225
|
+
title,
|
|
226
|
+
description,
|
|
227
|
+
ui,
|
|
228
|
+
seo,
|
|
229
|
+
faq,
|
|
230
|
+
faqTitle: 'ビデオフレーム抽出に関するよくある質問',
|
|
231
|
+
bibliography,
|
|
232
|
+
bibliographyTitle: 'ビデオキャプチャの技術仕様',
|
|
233
|
+
howTo,
|
|
234
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
235
|
+
};
|