digiKam
Loading...
Searching...
No Matches
vidslidesettings.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2017-05-25
7 * Description : a tool to generate video slideshow from images.
8 *
9 * SPDX-FileCopyrightText: 2017-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QString>
20#include <QStringList>
21#include <QList>
22#include <QUrl>
23#include <QSize>
24#include <QMap>
25#include <QTime>
26#include <QStandardPaths>
27
28// Local includes
29
30#include "digikam_export.h"
31#include "filesaveconflictbox.h"
32#include "transitionmngr.h"
33#include "effectmngr.h"
34#include "frameosdsettings.h"
35#include "dinfointerface.h"
36
37class KConfigGroup;
38
39namespace Digikam
40{
41
42class DIGIKAM_EXPORT VidSlideSettings
43{
44public:
45
50 {
51 IMAGES = 0,
52 ALBUMS
53 };
54
59 {
60 NOPLAYER = 0,
62 DESKTOP
63 };
64
81
85 enum VidStd
86 {
87 PAL = 0,
88 NTSC
89 };
90
154
174
179 {
180 AVI = 0,
183 MPG
184 };
185
186public:
187
188 VidSlideSettings() = default;
189 ~VidSlideSettings() = default;
190
194 void readSettings(const KConfigGroup& group);
195 void writeSettings(KConfigGroup& group);
196
197 QSize videoSize() const;
198 int videoBitRate() const;
199 qreal videoFrameRate() const;
200 QString videoCodec() const;
201 QString videoFormat() const;
202
206 static QMap<VidType, QString> videoTypeNames();
207 static QMap<VidBitRate, QString> videoBitRateNames();
208 static QMap<VidStd, QString> videoStdNames();
209 static QMap<VidCodec, QString> videoCodecNames();
210 static QMap<VidFormat, QString> videoFormatNames();
211 static QMap<VidPlayer, QString> videoPlayerNames();
212
213 static QSize videoSizeFromType(VidType type);
214 static bool isVideoTVFormat(VidType type);
215
216 QStringList defaultFFmpegSearchPaths() const;
217
218public:
219
220 Selection selMode = IMAGES;
221
222 // -- Generator settings ------
223
224 QList<QUrl> inputImages;
225 QString audioTrack;
226
227 TransitionMngr::TransType transition = TransitionMngr::None;
228
229 int imgFrames = 125;
230
231 int abitRate = 64000;
232 VidBitRate vbitRate = VBR12;
233 VidStd vStandard = PAL;
234 VidType vType = BLUERAY;
235 VidCodec vCodec = X264;
236 VidFormat vFormat = MP4;
237 EffectMngr::EffectType vEffect = EffectMngr::None;
238
242 FileSaveConflictBox::ConflictRule conflictRule = FileSaveConflictBox::OVERWRITE;
243
247 QString outputDir = QStandardPaths::writableLocation(QStandardPaths::MoviesLocation);
248
249 // ---------------------
250
251 QString tempDir;
252 QString outputFile;
253 QString filesList;
254 QString outputVideo;
255 VidPlayer outputPlayer = INTERNAL;
256 QString ffmpegPath;
257 bool equalize = false;
258 int strength = 5;
259
260 // -- FFMpeg features --------
261
262 QMap<QString, QString> ffmpegCodecs;
263 QMap<QString, QString> ffmpegFormats;
265
267 DInfoInterface* iface = nullptr;
268};
269
270} // namespace Digikam
Definition dinfointerface.h:48
EffectType
Definition effectmngr.h:38
ConflictRule
Definition filesaveconflictbox.h:37
Definition frameosdsettings.h:35
TransType
Definition transitionmngr.h:35
Definition vidslidesettings.h:43
QString outputVideo
Target video file encoded at end.
Definition vidslidesettings.h:254
QList< QUrl > inputImages
Images stream.
Definition vidslidesettings.h:224
QString ffmpegPath
Path to FFmpeg binary.
Definition vidslidesettings.h:256
QTime soundtrackLength
Duration of the soundtrack.
Definition vidslidesettings.h:264
VidCodec
Definition vidslidesettings.h:69
@ MJPEG
https://en.wikipedia.org/wiki/Motion_JPEG
Definition vidslidesettings.h:73
@ THEORA
https://en.wikipedia.org/wiki/Theora
Definition vidslidesettings.h:76
@ MPEG4
https://en.wikipedia.org/wiki/MPEG-4
Definition vidslidesettings.h:71
@ FLASH
https://en.wikipedia.org/wiki/Adobe_Flash
Definition vidslidesettings.h:74
@ WMV8
https://en.wikipedia.org/wiki/Windows_Media_Video
Definition vidslidesettings.h:78
@ WEBMVP8
https://en.wikipedia.org/wiki/VP8
Definition vidslidesettings.h:75
@ WMV7
https://en.wikipedia.org/wiki/Windows_Media_Video
Definition vidslidesettings.h:77
@ MPEG2
https://en.wikipedia.org/wiki/MPEG-2
Definition vidslidesettings.h:72
FrameOsdSettings osdSettings
On Screen Display parameters.
Definition vidslidesettings.h:266
VidStd
Definition vidslidesettings.h:86
VidType
Definition vidslidesettings.h:97
@ EGA
640 x 350 - 16:9 - Computer Graphics
Definition vidslidesettings.h:109
@ HSXGA
5120 x 4096 - 5:4 - Computer Graphics
Definition vidslidesettings.h:145
@ DVD1
720 x 480 - 3:2 - Digital TV
Definition vidslidesettings.h:113
@ SDTV2
544 x 480 - 17:15 - Digital TV
Definition vidslidesettings.h:106
@ SVGA
800 x 600 - 4:3 - Computer Graphics
Definition vidslidesettings.h:116
@ WUXGA
1920 x 1200 - 8:5 - Computer Graphics
Definition vidslidesettings.h:129
@ UW10K
10240 x 4320 - 21:9 - Computer Graphics
Definition vidslidesettings.h:151
@ SXGA
1280 x 1024 - 5:4 - Computer Graphics
Definition vidslidesettings.h:122
@ WSXGA
1440 x 900 - 8:5 - Computer Graphics
Definition vidslidesettings.h:124
@ WQSXGA
3200 x 2048 - 25:16 - Computer Graphics
Definition vidslidesettings.h:138
@ SDTV3
704 x 480 - 22:15 - Digital TV
Definition vidslidesettings.h:111
@ WQXGAPLUS
3200 x 1800 - 16:9 - Computer Graphics
Definition vidslidesettings.h:137
@ DVD2
720 x 576 - 5:4 - Digital TV
Definition vidslidesettings.h:114
@ WQXGA
2560 x 1600 - 8:5 - Computer Graphics
Definition vidslidesettings.h:134
@ QSXGA
2560 x 2048 - 5:4 - Computer Graphics
Definition vidslidesettings.h:135
@ SXGAPLUS
1400 x 1050 - 4:3 - Computer Graphics
Definition vidslidesettings.h:123
@ SDTV1
528 x 480 - 11:10 - Digital TV
Definition vidslidesettings.h:105
@ BLUERAY
1920 x 1080 - 19:9 - Digital TV
Definition vidslidesettings.h:128
@ UHD6K
6016 x 3384 - 16:9 - Computer Graphics
Definition vidslidesettings.h:146
@ UWFHD
2560 < 1080 - 21:9 - Computer Graphics
Definition vidslidesettings.h:132
@ WHSXGA
6400 x 4096 - 25:16 - Computer Graphics
Definition vidslidesettings.h:147
@ EDTV1
544 x 576 - 17;18 - Digital TV
Definition vidslidesettings.h:107
@ UXGA
1600 x 1200 - 4:3 - Computer Graphics
Definition vidslidesettings.h:126
@ XVGA
1024 x 576 - 16:9 - Computer Graphics
Definition vidslidesettings.h:118
@ CVD2
352 x 576 - 11:18 - Digital TV
Definition vidslidesettings.h:102
@ HUXGA
6400 x 4800 - 4:3 - Computer Graphics
Definition vidslidesettings.h:148
@ WXGA2
1280 x 800 - 8:5 - Computer Graphics
Definition vidslidesettings.h:121
@ UHD4K
3840 x 2160 - 19:9 - Digital TV
Definition vidslidesettings.h:140
@ QUXGA
3200 x 2400 - 4:3 - Computer Graphics
Definition vidslidesettings.h:139
@ SVCD1
480 x 480 - 1:1 - Digital TV
Definition vidslidesettings.h:104
@ HDPLUS
1600 x 900 - 16:9 - Digital TV
Definition vidslidesettings.h:125
@ HDTV
1280 x 720 - 16:9 - Digital TV
Definition vidslidesettings.h:119
@ UHD8K
7680 x 4320 - 16:9 - Digital TV
Definition vidslidesettings.h:149
@ WVGA
800 x 450 - 16:9 - Computer Graphics
Definition vidslidesettings.h:115
@ WHUXGA
7680 x 4800 - 8:5 - Computer Graphics
Definition vidslidesettings.h:150
@ WQUXGA
3840 x 2400 - 8:5 - Computer Graphics
Definition vidslidesettings.h:141
@ HVGA
480 x 270 - 16:9 - Computer Graphics
Definition vidslidesettings.h:103
@ QXGA
2048 x 1536 - 4:3 - Computer Graphics
Definition vidslidesettings.h:131
@ WSXGAPLUS
1680 x 1050 - 8:5 - Computer Graphics
Definition vidslidesettings.h:127
@ VCD2
352 x 288 - 6:5 - Digital TV
Definition vidslidesettings.h:100
@ QSXGAPLUS
2800 x 2100 - 4:3 - Computer Graphics
Definition vidslidesettings.h:136
@ SVCD2
480 x 576 - 5:6 - Digital TV
Definition vidslidesettings.h:108
@ UHD5K
5120 x 2880 - 16:9 - Computer Graphics
Definition vidslidesettings.h:143
@ HXGA
4096 x 3072 - 4:3 - Computer Graphics
Definition vidslidesettings.h:142
@ WQHD
2560 x 1440 - 16:9 - Computer Graphics
Definition vidslidesettings.h:133
@ DVGA
960 x 640 - 3:2 - Computer Graphics
Definition vidslidesettings.h:117
@ CVD1
352 x 480 - 11:15 - Digital TV
Definition vidslidesettings.h:101
@ WXGA1
1280 x 768 - 5:3 - Computer Graphics
Definition vidslidesettings.h:120
@ EDTV2
704 x 576 - 11;9 - Digital TV
Definition vidslidesettings.h:112
@ TXGA
1920 x 1440 - 7:5 - Computer Graphics
Definition vidslidesettings.h:130
@ VCD1
352 x 240 - 7:5 - Digital TV
Definition vidslidesettings.h:99
@ WHXGA
5120 x 3200 - 8:5 - Computer Graphics
Definition vidslidesettings.h:144
@ VGA
640 x 480 - 4:3 - Computer Graphics
Definition vidslidesettings.h:110
Selection
Definition vidslidesettings.h:50
QMap< QString, QString > ffmpegFormats
Map of FFmpeg format names and features.
Definition vidslidesettings.h:263
QString tempDir
To store temporary frames.
Definition vidslidesettings.h:251
QString filesList
Path to list of frame files to encode.
Definition vidslidesettings.h:253
VidPlayer
Definition vidslidesettings.h:59
@ INTERNAL
Definition vidslidesettings.h:61
VidFormat
Definition vidslidesettings.h:179
@ MP4
https://en.wikipedia.org/wiki/MPEG-4_Part_14
Definition vidslidesettings.h:182
@ MKV
https://en.wikipedia.org/wiki/Matroska
Definition vidslidesettings.h:181
QString audioTrack
Soundtrack stream.
Definition vidslidesettings.h:225
QMap< QString, QString > ffmpegCodecs
Map of FFmpeg codec names and features.
Definition vidslidesettings.h:262
QString outputFile
Path to encoded video.
Definition vidslidesettings.h:252
VidBitRate
Definition vidslidesettings.h:159
@ VBR30
3000000
Definition vidslidesettings.h:167
@ VBR12
1200000
Definition vidslidesettings.h:163
@ VBR50
5000000
Definition vidslidesettings.h:170
@ VBR45
4500000
Definition vidslidesettings.h:169
@ VBR15
1500000
Definition vidslidesettings.h:164
@ VBR60
6000000
Definition vidslidesettings.h:171
@ VBR10
1000000
Definition vidslidesettings.h:162
@ VBR40
4000000
Definition vidslidesettings.h:168
@ VBR20
2000000
Definition vidslidesettings.h:165
@ VBR25
2500000
Definition vidslidesettings.h:166
@ VBR05
500000
Definition vidslidesettings.h:161
Definition datefolderview.cpp:34