1
0
mirror of https://github.com/bpatrik/pigallery2.git synced 2024-12-25 02:04:15 +02:00

adding crf, preset and custom options to video encoding, implementing: #131

This commit is contained in:
Patrik J. Braun 2020-02-08 09:59:18 +01:00
parent 336cbca499
commit bcfd419908
12 changed files with 335 additions and 41 deletions

6
package-lock.json generated
View File

@ -18721,9 +18721,9 @@
}
},
"typeconfig": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/typeconfig/-/typeconfig-2.0.7.tgz",
"integrity": "sha512-aShKfhwvPQFnMwBBFWsJhl1QQmDsdkx/vs7aKgxbGnLMW7W2djucEPGlUsmK3isMrTJAErmsr5CElacO/YFA6A==",
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/typeconfig/-/typeconfig-2.0.8.tgz",
"integrity": "sha512-D2Qfq1Ub6aZ/P24VGiyufuepClsHt9doe7xPf2YbmEOUtJRGgyQSDNamQp6wFuTfFKjpQIqi+6moQelkPI9BwQ==",
"requires": {
"optimist": "0.6.1"
}

View File

@ -48,7 +48,7 @@
"sqlite3": "4.1.1",
"ts-exif-parser": "0.1.4",
"ts-node-iptc": "1.0.11",
"typeconfig": "2.0.7",
"typeconfig": "2.0.8",
"typeorm": "0.2.21",
"winston": "2.4.4"
},

View File

@ -71,7 +71,10 @@ export class VideoProcessing {
output: {
path: outPath,
codec: Config.Server.Media.Video.transcoding.codec,
format: Config.Server.Media.Video.transcoding.format
format: Config.Server.Media.Video.transcoding.format,
crf: Config.Server.Media.Video.transcoding.crf,
preset: Config.Server.Media.Video.transcoding.preset,
customOptions: Config.Server.Media.Video.transcoding.customOptions,
}
};

View File

@ -3,6 +3,7 @@ import {promises as fsp} from 'fs';
import {FfmpegCommand} from 'fluent-ffmpeg';
import {FFmpegFactory} from '../FFmpegFactory';
import {ServerConfig} from '../../../common/config/private/PrivateConfig';
import FFmpegPresets = ServerConfig.FFmpegPresets;
export interface VideoConverterInput {
@ -12,6 +13,9 @@ export interface VideoConverterInput {
bitRate?: number,
resolution?: ServerConfig.resolutionType,
fps?: number,
crf?: number,
preset?: ServerConfig.FFmpegPresets,
customOptions?: string[],
codec: ServerConfig.codecType,
format: ServerConfig.formatType
};
@ -67,6 +71,21 @@ export class VideoConverterWorker {
if (input.output.fps) {
command.fps(input.output.fps);
}
// set Constant Rate Factor (CRF)
if (input.output.crf) {
command.addOption(['-crf ' + input.output.crf]);
}
// set preset
if (input.output.preset) {
command.addOption(['-preset ' + FFmpegPresets[input.output.preset]]);
}
// set any additional commands
if (input.output.customOptions) {
command.addOption(input.output.customOptions);
}
// set output format to force
command.format(input.output.format)
// save to file

View File

@ -29,6 +29,11 @@ export module ServerConfig {
low = 1, medium = 2, high = 3
}
export enum FFmpegPresets {
ultrafast = 1, superfast = 2, veryfast = 3, faster = 4, fast = 5, medium = 6,
slow = 7, slower = 8, veryslow = 9, placebo = 10
}
export type codecType = 'libvpx-vp9' | 'libx264' | 'libvpx' | 'libx265';
export type resolutionType = 240 | 360 | 480 | 720 | 1080 | 1440 | 2160 | 4320;
@ -252,6 +257,20 @@ export module ServerConfig {
codec: codecType = 'libx264';
@ConfigProperty()
format: formatType = 'mp4';
@ConfigProperty({
type: 'unsignedInt',
description: 'Constant Rate Factor. The range of the CRF scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible.',
max: 51
})
crf: number = 23;
@ConfigProperty({
type: FFmpegPresets,
description: 'A preset is a collection of options that will provide a certain encoding speed to compression ratio'
})
preset: FFmpegPresets = FFmpegPresets.medium;
@ConfigProperty({arrayType: 'string', description: 'It will be sent to ffmpeg as it is, as custom options.'})
customOptions: string[] = [];
}
@SubConfigClass()

View File

@ -31,6 +31,7 @@ export class SettingsEntryComponent implements ControlValueAccessor, Validator,
@Input() placeholder: string;
@Input() options: { key: number | string, value: number | string }[];
@Input() simplifiedMode = false;
@Input() allowSpaces = false;
@Input() description: boolean;
state: {
isEnumType: boolean,
@ -99,7 +100,9 @@ export class SettingsEntryComponent implements ControlValueAccessor, Validator,
if (this.state.type === 'array' &&
(this.state.arrayType === 'string' || this.isNumberArray)) {
value = value.replace(new RegExp(',', 'g'), ';');
value = value.replace(new RegExp(' ', 'g'), ';');
if(this.allowSpaces === false) {
value = value.replace(new RegExp(' ', 'g'), ';');
}
this.state.value = value.split(';').filter((v: string) => v !== '');
if (this.isNumberArray) {
this.state.value = this.state.value.map((v: string) => parseFloat(v)).filter((v: number) => !isNaN(v));

View File

@ -108,6 +108,36 @@
</div>
<app-settings-entry
name="CRF"
description="The range of the Constant Rate Factor (CRF) scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible."
i18n-name i18n-description
[ngModel]="states.server.transcoding.crf"
[simplifiedMode]="simplifiedMode"
required="true">
</app-settings-entry>
<app-settings-entry
name="Preset"
description="A preset is a collection of options that will provide a certain encoding speed to compression ratio. A slower preset will provide better compression (compression is quality per filesize)."
i18n-name i18n-description
[ngModel]="states.server.transcoding.preset"
[simplifiedMode]="simplifiedMode"
required="true">
</app-settings-entry>
<app-settings-entry
name="Custom Options"
description="; separated values. It will be sent to ffmpeg as it is, as custom options."
placeholder="-pass 2; -minrate 1M; -maxrate 1M; -bufsize 2M"
i18n-name i18n-description
[ngModel]="states.server.transcoding.customOptions"
[allowSpaces]="true"
[simplifiedMode]="simplifiedMode"
required="true">
</app-settings-entry>
<button class="btn btn-success float-right"
[disabled]="!settingsForm.form.valid || !changed || inProgress"
(click)="save()" i18n>Save

View File

@ -588,11 +588,7 @@
<context context-type="sourcefile">app/ui/settings/_abstract/settings-entry/settings-entry.component.html</context>
<context context-type="linenumber">1</context>
</context-group>
<target>
It seems that you are running the application in a Docker container.
This setting should not be changed in docker.
Make sure, that you know what you are doing.
</target>
<target>It seems that you are running the application in a Docker container. This setting should not be changed in docker. Make sure, that you know what you are doing.</target>
</trans-unit>
<trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">
<source>Disabled</source>
@ -832,7 +828,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">113</context>
<context context-type="linenumber">143</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/photo/photo.settings.component.html</context>
@ -889,7 +885,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">117</context>
<context context-type="linenumber">147</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/photo/photo.settings.component.html</context>
@ -1181,6 +1177,54 @@
</context-group>
<target>Target bit rate of the output video will be scaled down this this. This should be less than the upload rate of your home server.</target>
</trans-unit>
<trans-unit id="148d5d78e94f20a20c3ad3b01d704a3497a8c761" datatype="html">
<source>CRF</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">112</context>
</context-group>
<target>CRF</target>
</trans-unit>
<trans-unit id="9849326199a31248798c5acffde967fd35a7fb68" datatype="html">
<source>The range of the Constant Rate Factor (CRF) scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible.</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">113</context>
</context-group>
<target>The range of the Constant Rate Factor (CRF) scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible.</target>
</trans-unit>
<trans-unit id="962533863b61fce4a1ac5a852936185f58039695" datatype="html">
<source>Preset</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">121</context>
</context-group>
<target>Preset</target>
</trans-unit>
<trans-unit id="b990e080e67c16cef76ca1f879e659de50ce1c36" datatype="html">
<source>A preset is a collection of options that will provide a certain encoding speed to compression ratio. A slower preset will provide better compression (compression is quality per filesize).</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">122</context>
</context-group>
<target>A preset is a collection of options that will provide a certain encoding speed to compression ratio. A slower preset will provide better compression (compression is quality per filesize).</target>
</trans-unit>
<trans-unit id="25ce84764ffa614804d96c740bec339fe91f4a25" datatype="html">
<source>Custom Options</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">130</context>
</context-group>
<target>Custom Options</target>
</trans-unit>
<trans-unit id="fde4937739b841cf4a7566913ea3787c745a0c83" datatype="html">
<source>; separated values. It will be sent to ffmpeg as it is, as custom options.</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">131</context>
</context-group>
<target>; separated values. It will be sent to ffmpeg as it is, as custom options.</target>
</trans-unit>
<trans-unit id="1b239b0422945f36c35b5559b4b0c135922fe299" datatype="html">
<source>It is highly recommended to use hardware accelerated (sharp or gm) lib for thumbnail
generation

View File

@ -588,11 +588,7 @@
<context context-type="sourcefile">app/ui/settings/_abstract/settings-entry/settings-entry.component.html</context>
<context context-type="linenumber">1</context>
</context-group>
<target>
It seems that you are running the application in a Docker container.
This setting should not be changed in docker.
Make sure, that you know what you are doing.
</target>
<target>It seems that you are running the application in a Docker container. This setting should not be changed in docker. Make sure, that you know what you are doing.</target>
</trans-unit>
<trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">
<source>Disabled</source>
@ -832,7 +828,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">113</context>
<context context-type="linenumber">143</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/photo/photo.settings.component.html</context>
@ -889,7 +885,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">117</context>
<context context-type="linenumber">147</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/photo/photo.settings.component.html</context>
@ -1181,6 +1177,54 @@
</context-group>
<target>Target bit rate of the output video will be scaled down this this. This should be less than the upload rate of your home server.</target>
</trans-unit>
<trans-unit id="148d5d78e94f20a20c3ad3b01d704a3497a8c761" datatype="html">
<source>CRF</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">112</context>
</context-group>
<target>CRF</target>
</trans-unit>
<trans-unit id="9849326199a31248798c5acffde967fd35a7fb68" datatype="html">
<source>The range of the Constant Rate Factor (CRF) scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible.</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">113</context>
</context-group>
<target>The range of the Constant Rate Factor (CRF) scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible.</target>
</trans-unit>
<trans-unit id="962533863b61fce4a1ac5a852936185f58039695" datatype="html">
<source>Preset</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">121</context>
</context-group>
<target>Preset</target>
</trans-unit>
<trans-unit id="b990e080e67c16cef76ca1f879e659de50ce1c36" datatype="html">
<source>A preset is a collection of options that will provide a certain encoding speed to compression ratio. A slower preset will provide better compression (compression is quality per filesize).</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">122</context>
</context-group>
<target>A preset is a collection of options that will provide a certain encoding speed to compression ratio. A slower preset will provide better compression (compression is quality per filesize).</target>
</trans-unit>
<trans-unit id="25ce84764ffa614804d96c740bec339fe91f4a25" datatype="html">
<source>Custom Options</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">130</context>
</context-group>
<target>Custom Options</target>
</trans-unit>
<trans-unit id="fde4937739b841cf4a7566913ea3787c745a0c83" datatype="html">
<source>; separated values. It will be sent to ffmpeg as it is, as custom options.</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">131</context>
</context-group>
<target>; separated values. It will be sent to ffmpeg as it is, as custom options.</target>
</trans-unit>
<trans-unit id="1b239b0422945f36c35b5559b4b0c135922fe299" datatype="html">
<source>It is highly recommended to use hardware accelerated (sharp or gm) lib for thumbnail
generation

View File

@ -588,11 +588,7 @@
<context context-type="sourcefile">app/ui/settings/_abstract/settings-entry/settings-entry.component.html</context>
<context context-type="linenumber">1</context>
</context-group>
<target>
Úgy tűnik, hogy dockerben futtatod az alkalmaást.
Ezt a beállítást nem célszerű dockeren belül módosítani,
ezért biztosan tudd hogy mit csinálsz.
</target>
<target>Úgy tűnik, hogy dockerben futtatod az alkalmaást. Ezt a beállítást nem célszerű dockeren belül módosítani, ezért biztosan tudd hogy mit csinálsz.</target>
</trans-unit>
<trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">
<source>Disabled</source>
@ -832,7 +828,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">113</context>
<context context-type="linenumber">143</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/photo/photo.settings.component.html</context>
@ -889,7 +885,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">117</context>
<context context-type="linenumber">147</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/photo/photo.settings.component.html</context>
@ -1181,6 +1177,54 @@
</context-group>
<target>A konvertált videó bit rátája ennyi lesz. (Felfelé nem lesz skálázva)</target>
</trans-unit>
<trans-unit id="148d5d78e94f20a20c3ad3b01d704a3497a8c761" datatype="html">
<source>CRF</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">112</context>
</context-group>
<target>CRF</target>
</trans-unit>
<trans-unit id="9849326199a31248798c5acffde967fd35a7fb68" datatype="html">
<source>The range of the Constant Rate Factor (CRF) scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible.</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">113</context>
</context-group>
<target>Constant Rate Factor (CRF) 0-51 között mozog, ahol 0 veszteségmentes, 23 az alapértelemzett és 51 a legrosszabb minőség.</target>
</trans-unit>
<trans-unit id="962533863b61fce4a1ac5a852936185f58039695" datatype="html">
<source>Preset</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">121</context>
</context-group>
<target>Preset</target>
</trans-unit>
<trans-unit id="b990e080e67c16cef76ca1f879e659de50ce1c36" datatype="html">
<source>A preset is a collection of options that will provide a certain encoding speed to compression ratio. A slower preset will provide better compression (compression is quality per filesize).</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">122</context>
</context-group>
<target>Preset egy előre elkészített beállítási csoport, ami egy adott tömörítési minőséget biztosít. Lasabb preset-ek jobb tömörítési minőséget biztosítanak.</target>
</trans-unit>
<trans-unit id="25ce84764ffa614804d96c740bec339fe91f4a25" datatype="html">
<source>Custom Options</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">130</context>
</context-group>
<target>Egyéb beállítások</target>
</trans-unit>
<trans-unit id="fde4937739b841cf4a7566913ea3787c745a0c83" datatype="html">
<source>; separated values. It will be sent to ffmpeg as it is, as custom options.</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">131</context>
</context-group>
<target>;-al elválaszott értékek. Egy az egyben kerülnek átadásra az ffmpeg-nek.</target>
</trans-unit>
<trans-unit id="1b239b0422945f36c35b5559b4b0c135922fe299" datatype="html">
<source>It is highly recommended to use hardware accelerated (sharp or gm) lib for thumbnail
generation

View File

@ -588,11 +588,7 @@
<context context-type="sourcefile">app/ui/settings/_abstract/settings-entry/settings-entry.component.html</context>
<context context-type="linenumber">1</context>
</context-group>
<target>
It seems that you are running the application in a Docker container.
This setting should not be changed in docker.
Make sure, that you know what you are doing.
</target>
<target>It seems that you are running the application in a Docker container. This setting should not be changed in docker. Make sure, that you know what you are doing.</target>
</trans-unit>
<trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">
<source>Disabled</source>
@ -832,7 +828,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">113</context>
<context context-type="linenumber">143</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/photo/photo.settings.component.html</context>
@ -889,7 +885,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">117</context>
<context context-type="linenumber">147</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/photo/photo.settings.component.html</context>
@ -1181,6 +1177,54 @@
</context-group>
<target>Target bit rate of the output video will be scaled down this this. This should be less than the upload rate of your home server.</target>
</trans-unit>
<trans-unit id="148d5d78e94f20a20c3ad3b01d704a3497a8c761" datatype="html">
<source>CRF</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">112</context>
</context-group>
<target>CRF</target>
</trans-unit>
<trans-unit id="9849326199a31248798c5acffde967fd35a7fb68" datatype="html">
<source>The range of the Constant Rate Factor (CRF) scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible.</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">113</context>
</context-group>
<target>The range of the Constant Rate Factor (CRF) scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible.</target>
</trans-unit>
<trans-unit id="962533863b61fce4a1ac5a852936185f58039695" datatype="html">
<source>Preset</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">121</context>
</context-group>
<target>Preset</target>
</trans-unit>
<trans-unit id="b990e080e67c16cef76ca1f879e659de50ce1c36" datatype="html">
<source>A preset is a collection of options that will provide a certain encoding speed to compression ratio. A slower preset will provide better compression (compression is quality per filesize).</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">122</context>
</context-group>
<target>A preset is a collection of options that will provide a certain encoding speed to compression ratio. A slower preset will provide better compression (compression is quality per filesize).</target>
</trans-unit>
<trans-unit id="25ce84764ffa614804d96c740bec339fe91f4a25" datatype="html">
<source>Custom Options</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">130</context>
</context-group>
<target>Custom Options</target>
</trans-unit>
<trans-unit id="fde4937739b841cf4a7566913ea3787c745a0c83" datatype="html">
<source>; separated values. It will be sent to ffmpeg as it is, as custom options.</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">131</context>
</context-group>
<target>; separated values. It will be sent to ffmpeg as it is, as custom options.</target>
</trans-unit>
<trans-unit id="1b239b0422945f36c35b5559b4b0c135922fe299" datatype="html">
<source>It is highly recommended to use hardware accelerated (sharp or gm) lib for thumbnail
generation

View File

@ -588,11 +588,7 @@
<context context-type="sourcefile">app/ui/settings/_abstract/settings-entry/settings-entry.component.html</context>
<context context-type="linenumber">1</context>
</context-group>
<target>
It seems that you are running the application in a Docker container.
This setting should not be changed in docker.
Make sure, that you know what you are doing.
</target>
<target>It seems that you are running the application in a Docker container. This setting should not be changed in docker. Make sure, that you know what you are doing.</target>
</trans-unit>
<trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">
<source>Disabled</source>
@ -832,7 +828,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">113</context>
<context context-type="linenumber">143</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/photo/photo.settings.component.html</context>
@ -889,7 +885,7 @@
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">117</context>
<context context-type="linenumber">147</context>
</context-group>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/photo/photo.settings.component.html</context>
@ -1181,6 +1177,54 @@
</context-group>
<target>Target bit rate of the output video will be scaled down this this. This should be less than the upload rate of your home server.</target>
</trans-unit>
<trans-unit id="148d5d78e94f20a20c3ad3b01d704a3497a8c761" datatype="html">
<source>CRF</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">112</context>
</context-group>
<target>CRF</target>
</trans-unit>
<trans-unit id="9849326199a31248798c5acffde967fd35a7fb68" datatype="html">
<source>The range of the Constant Rate Factor (CRF) scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible.</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">113</context>
</context-group>
<target>The range of the Constant Rate Factor (CRF) scale is 0–51, where 0 is lossless, 23 is the default, and 51 is worst quality possible.</target>
</trans-unit>
<trans-unit id="962533863b61fce4a1ac5a852936185f58039695" datatype="html">
<source>Preset</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">121</context>
</context-group>
<target>Preset</target>
</trans-unit>
<trans-unit id="b990e080e67c16cef76ca1f879e659de50ce1c36" datatype="html">
<source>A preset is a collection of options that will provide a certain encoding speed to compression ratio. A slower preset will provide better compression (compression is quality per filesize).</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">122</context>
</context-group>
<target>A preset is a collection of options that will provide a certain encoding speed to compression ratio. A slower preset will provide better compression (compression is quality per filesize).</target>
</trans-unit>
<trans-unit id="25ce84764ffa614804d96c740bec339fe91f4a25" datatype="html">
<source>Custom Options</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">130</context>
</context-group>
<target>Custom Options</target>
</trans-unit>
<trans-unit id="fde4937739b841cf4a7566913ea3787c745a0c83" datatype="html">
<source>; separated values. It will be sent to ffmpeg as it is, as custom options.</source>
<context-group purpose="location">
<context context-type="sourcefile">app/ui/settings/video/video.settings.component.html</context>
<context context-type="linenumber">131</context>
</context-group>
<target>; separated values. It will be sent to ffmpeg as it is, as custom options.</target>
</trans-unit>
<trans-unit id="1b239b0422945f36c35b5559b4b0c135922fe299" datatype="html">
<source>It is highly recommended to use hardware accelerated (sharp or gm) lib for thumbnail
generation