* Fix image encoding concurrency limit
The current FFmpeg image extractor is configured to use a resource pool size that always equals 2 times the number of CPU cores, which is somewhat excessive. Make the default equal to the core count instead of twice, and respect the `ParallelImageEncodingLimit` option.
* Fix code stype
* Check null value for unit tests
Although the number type is nullable from the type definition of ATL, the lib might still normalize all unknown values to 0 which makes doing null check only not enough. Fallback to ffprobe results when the number is 0 as well.
We are still using `Subnet.Contains` a lot but that does not handle IPv4 mapped to IPv6 addresses at all. It was partially fixed by #12094 in local network checking, but it may not always happen on LAN.
Also make all local network checking to use IsInLocalNetwork method instead of just performing `Subnet.Contains` which is not accurate.
Filter out all link-local addresses for external interface matching.
When writing an image to the disk, we use the completion of the async task as a signal indicating the completion of a write operation. However, this approach may not be entirely accurate, as the operating system can optimize IO operations by writing data to an intermediate cache instead of directly to the disk before completing the operation. This optimization can lead to a data race for our scanner, as subsequent tasks such as blurhash computation may attempt to read a file that has not yet been flushed from the volatile cache. Consequently, the data within the file becomes invalid, causing the blurhash computation task to fail.
Use WriteThrough mode to ensure the data is actual on disk before return to resolve this issue.
`SubtitleFormat`'s `LoadSubtitle()` function is
not thread-safe.
A `SubtitleEditParser` instance's `Parse()`
function can be called from multiple threads at
the same time.
`SubtitleFormat`s are cached in the constructor
of each `SubtitleEditParser`, and the same
instances are used for each possibly parallel
`Parse()` function call, which causes subtitle
parse problems.
This patch modifies the code, so we only cache
the extension -> `SubtitleFormat` type/class
mapping and create a new `SubtitleFormat`
instance in each `Parse()` call, so no
`SubtitleFormat` instance is accessed from
multiple threads.
Fixes#12113
Kudos for everyone investigating the issue there,
most notably @RenV123 for PoC-ing the solution.
Signed-off-by: Attila Szakacs <szakacs.attila96@gmail.com>
Our `GetFileSystemEntries` method will throw when enumerating the file system, but its callers might consider the unhandled exceptions as the whole path is not available. This would cause a single problematic file to fail the enumeration, and could lead to unexpected side effects.
HandleIOException gracefully by marking the files throwing as not exist to let the caller skip that file.
Our custom parameters are slower than the ultrafast preset, but users would expect encoding to be as fast as possible when selecting ultrafast. Only apply those parameters to superfast and slower presets.
We cannot simply use the subnet list to check if the IP is in LAN as it does not handle special cases like IPv4MappedToIPv6 and IPv6 loopback addresses.
Transcoding HDR video without tonemapping results
in an unacceptable viewing experience. Many users
are not even aware of the option and therefore we
should always enable the software tonemapx filter.
Signed-off-by: nyanmisaka <nst7999610810@gmail.com>
In 10.10 clients that can only play the fallback layer like the Samsung TVs will report `DOVIWithHDR10` as supported video range, but the server should not do remux in DoVi as the client can only play the fallback layer. This changes the server to only do DoVi remux when the client can play DoVi videos without a fallback layer.
Previously, local images provided by DynamicImageResponse were never cleaned up until the server was restarted. This issue has become more severe in 10.10, as the default is now set to use the system's native temp folder, which might be a RAM backed tmpfs. This behavior could lead to resource starvation for long-running servers performing multiple library scans.
Metadata plugins prefer the old behavior should do its own backup.
This was not set at least since 10.9 and the transcoding behavior is close to "undefined" and in 10.10 this will not work at all. This will make the returned transcoding url from PlayBackInfo to correctly specify the desired transcoding codec. If the client wants to use the HLS controller directly it should be responsible to provide valid container and codec in the parameters.
Added in .NET 5, this attribute allows for the compiler to recognize
that InitializeLan (and by extension, UpdateSettings) will initialize
the specified fields.
Previously, we predicted whether the subtitle should be burned in with transcode reasons, but that was not accurate because the actual transcoding codec is only determined after the client has requested the stream. This pass through the option to the `DynamicHlsController` to handle the subtitle burn-in during the actual transcoding process. Now the client should be responsible to conditionally load the subtitle when this option is enabled.
Using the first profile's reason is somewhat arbitrary, as many clients' first profile may not be the most compatible one. For instance, browsers often set WebM as the first profile, which doesn’t support common codecs like H.264 and AAC by design. This causes `VideoCodecNotSupported` and `AudioCodecNotSupported` to be returned, even if the browser supports those codecs. Only use those reasons when all profiles indicate that the codec is not supported.
Signed-off-by: gnattu <gnattuoc@me.com>
This applies software tonemapx filter for dolby vision videos that have no compatability fallback.
Due to the complexity of the reshaping process, this is quite CPU-intensive. For real-time transcoding and tonemapping of 4K 60fps content, a CPU with 16 cores of Zen3-level performance is recommended.
Signed-off-by: gnattu <gnattuoc@me.com>
Some options that are too performance-intensive are disabled, while
others are left enabled to trade-off between real-time playback and quality.
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
Currently, when specifying codec profiles, the client can only specify profiles applied to direct containers, with no way to apply a profile specifically to HLS or a specific HLS container. This limitation is not suitable for more complex client codec support scenarios.
To address this, a SubContainer field is added to CodecProfile. The client can now specify the main container as "hls" to apply the profile exclusively to HLS streams. Additionally, the SubContainer field allows the profile to be applied to a specific HLS container.
Currently, this is only used in StreamBuilder for HLS streams. Further changes may be required to extend its usage.
Signed-off-by: gnattu <gnattuoc@me.com>
Set Content-Disposition header to attachment for image endpoints
Original-merge: 9645955629
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
Don't force non-virtual when all episodes in season are isMissing=true
Original-merge: be949af59e
Merged-by: Bond-009 <bond.009@outlook.com>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
* Added Media segment manager
* Added "HasSegments" to MediaSourceInfo when requesting though baseitem
* Fixed ordering of Media Segements
* Added media segment API controller
* Added .ConfigureAwait(false) on media segments manager
* renamed MediaSegmentsController
removed empty route
* Added Model layer for Media Segments
Fixed review comments Media segments
* Updated media segment naming
refactored api and manager usage
* Added mediaSegment type filter
* Fixed codesmell
* Fixed naming and typos
* Added EF Migration
* Added Identity Generation for MediaSegments
Made mediasegment filter optional
* Fixed optional filter parameter
* refactored segment namespace
* Added SegmentProviderId to MediaSegment
* Media segment comment indentation
* Added MediaSegmentManager query notracking
The ATL lib provides a lot of advantages to the TagLib we are currently using.
Notably:
- auto-detect the format of the audio data, even if the file extension has the wrong label, and provides unified API for different file types.
- supports more audio formats than TagLib
- supports lyrics natively
- supports playlists and cuesheets
- srovides relatively simple and controllable way for non-standard fields, enable us to implement compatibility features instead of waiting for lib updates
- is actually maintained
Signed-off-by: gnattu <gnattuoc@me.com>
* Check MaxAudioChannels for directAudioStream candidates
The current stream builder logic does not check the channel limit when determining if the audio stream can be directly used, and this can cause some undesired effects:
- A high channel count surround sound stream might be picked even if a stereo one exists when the user requires stereo audio.
- The user's preferred audio codec might not be respected during the downmix because the requested codec is now forced to be the same as the original source.
Signed-off-by: gnattu <gnattuoc@me.com>
* Fix unit test
Signed-off-by: gnattu <gnattuoc@me.com>
* Set correct transcode reason and target channels for unit test
Signed-off-by: gnattu <gnattuoc@me.com>
* Match old stream selection behavior
Signed-off-by: gnattu <gnattuoc@me.com>
* Fix reason matching
Signed-off-by: gnattu <gnattuoc@me.com>
---------
Signed-off-by: gnattu <gnattuoc@me.com>
* Changed `GetThemeMedia` to support SortBy/Order options
The `GetThemeMedia, `GetThemeVideos` and `GetThemeSongs` functions can optionally sort the results based based on passing an ItemSortBy type and a SortOrder.
This is intended to be used by jellyfin-web in order to allow users to control the order of theme playback.
See PR: https://github.com/jellyfin/jellyfin-web/pull/5714
* Update MediaBrowser.Controller/Entities/BaseItem.cs
Fix the `GetThemeVideos` two argument overload having both parameters defaulted.
For the two argument overload, both parameters are required.
Some Audio codec will have a null CodecTag, check for that to avoid null reference
If the client already requests a specific sample rate, use that instead of our default sample rate for AC-4
Signed-off-by: gnattu <gnattuoc@me.com>
LAME's VBR mode only has advantage over a certain bitrate range. For very low and very high bitrate, use the ABR mode instead.
aac_at's CVBR mode produces very good quality and is not worse than its TVBR mode in blind testing. Use this mode for convenience.
The ffmpeg native aac encoder will have quality regression with its VBR mode. Always use CBR mode for ffmpeg's native aac encoder.
Signed-off-by: gnattu <gnattuoc@me.com>
This would be significantly faster than decoding every frame, but it does have compatibility issues. Not all decoders support this mode, notably the VP9 decoder, CUVID decoders, and QSV decoders.
Some videos with very long key-frame intervals may also perform poorly with this mode, as the image timing could become too inaccurate to reflect the actual frame.
Signed-off-by: gnattu <gnattuoc@me.com>
This fix is mainly so I can mass-add series _and_ movie entries using a
`IMultiItemResolver` without having to resort to complicated logic
using _both_ a `IItemResolver` and a `IMultiItemResolver` by splitting
up what gets added where.
I've also added three new interface methods to the `IDirectoryService`,
one of which is used in the modified
`ResolverHelper.SetInitialItemValues(…)` to get the file system entry
info for the item regardless of which type the file system entry is.
In my local testing so far I haven't found any issues introduced
by this change.
Fix identify over NFO and replace all when NFO saving enabled
Original-merge: bfcc09db8a
Merged-by: joshuaboniface <joshua@boniface.me>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
Do not delete file locations for virtual episodes and seasons
Original-merge: 23b1251393
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
Fix multi-part album folder being detected as artist folder
Original-merge: d602b6dbc5
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
Don't check if admin has access to library when updating
Original-merge: 563033786f
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
Use music metadata from ffprobe when TagLib fails
Original-merge: b8a0cf6a9e
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
Extract media attachment one by one if the filename appears to be a path
Original-merge: 45e8872cc0
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
Return missing episodes for series when no user defined
Original-merge: ae584beaac
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
Mark Audio as RequiresDeserialization and backfill data
Original-merge: e2c909f50f
Merged-by: joshuaboniface <joshua@boniface.me>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
Move NFO series season name parsing to own local provider
Original-merge: a53ea029fa
Merged-by: joshuaboniface <joshua@boniface.me>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
Force more compatible transcoding profile for LiveTV
Original-merge: e7b1162cb3
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
FFmpeg 6.1 and newer can recognize Dolby Atmos and DTS:X.
This change makes it possible to see if a track has one of these technologies
if the used FFmpeg supports it.
Turns out it's the same
`[WRN] [53] Jellyfin.Server.Implementations.Trickplay.TrickplayManager: Media source "17a76092102691425e94624a69247057" not found at "/mnt/USBshare/Movies/Top Gun (1986)/extras/Top Gun_t04.mkv" for item 17a76092-1026-9142-5e94-624a69247057`
Use MediaType instead of ToString and add text/ as disallowed mimetypes
Original-merge: 46c748d888
Merged-by: joshuaboniface <joshua@boniface.me>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
Handle exception for unexpected audio file YEAR tag values
Original-merge: d5dc4435d9
Merged-by: crobibero <cody@robibe.ro>
Backported-by: Joshua M. Boniface <joshua@boniface.me>
Add VP9 as a valid HLS format to enable remuxing. This is useful when audio processing is required, but the VP9 video can be passed as-is to avoid unnecessary video transcoding.
No VP9 encoder is enabled and should not be enabled. AV1 and HEVC should be preferred over VP9 if video transcoding is required.
Signed-off-by: gnattu <gnattuoc@me.com>
- default sort is still Release Date Ascending
- choosing sort by Release Date will change it to sort by Release Date Descending
This is because most people go to collections to browse new movies to watch, and recently released movies should be on top.
Adds a stable publish action which runs on new tags and pushes the spec
to the repository server. Uses all the same logic as Unstable specs but
with the correct paths.
Thanks for taking the time to report an issue. Before submitting a report, please do the following:
1. Please head to our forum or chat rooms and troubleshoot with volunteers if you haven't already. Links can be found here: https://jellyfin.org/contact/
2. Please search the bug tracker for similar issues. If you do find one, please comment there instead of opening a new bug report.
3. If you decide to open a new report, please provide as much detail as possible.
4. Please **ONLY** report **ONE** issue per report. If you are experiencing multiple issues, please open multiple reports.
- type:textarea
id:what-happened
### Thank you for taking the time to report an issue!
Please keep in mind that Jellyfin is a [free and open-source](https://jellyfin.org/docs/general/about) project, made up entirely and exclusively of **volunteers** who donate their free time to the project.
- type:checkboxes
id:before-posting
attributes:
label:Please describe your bug
description:Also tell us, what did you expect to happen?
label:"This issue respects the following points:"
description:All conditions are **required**. Failure to comply with any of these conditions may cause your issue to be closed without comment.
options:
- label:This is a **bug**, not a question or a configuration issue; Please visit our forum or chat rooms first to troubleshoot with volunteers, before creating a report. The links can be found [here](https://jellyfin.org/contact/).
required:true
- label:This issue is **not** already reported on [GitHub](https://github.com/jellyfin/jellyfin/issues?q=is%3Aopen+is%3Aissue) _(I've searched it)_.
required:true
- label:I'm using an up to date version of Jellyfin Server stable, unstable or master; We generally do not support previous older versions. If possible, please update to the latest version before opening an issue.
required:true
- label:I agree to follow Jellyfin's [Code of Conduct](https://jellyfin.org/docs/general/community-standards.html#code-of-conduct).
required:true
- label:This report addresses only a single issue; If you encounter multiple issues, kindly create separate reports for each one.
required:true
- type:markdown
id:preliminary-information
attributes:
value:|
### General preliminary information
Please keep the following in mind when creating this issue:
1. Fill in as much of the template as possible. When you are unsure about the relevancy of a section, do include the information requested in that section. Only leave out information in sections when you are completely sure about it not being relevant.
2. Provide as much detail as possible. Do not assume other people to know what is going on.
3. Keep everything readable and structured. Nobody enjoys reading poorly written reports that are difficult to understand.
4. Keep an eye on your report as long as it is open, your involvement might be requested at a later moment.
5. Keep the title short and descriptive. The title is not the place to write down a full description of the issue.
6. When deciding to leave out information in a field, leave it blank and empty. Avoid writing things such as `n/a` for empty fields.
- type:textarea
id:bug-description
attributes:
label:Description of the bug
description:Please provide a detailed description on the bug you encountered, in a readable and comprehensible way.
placeholder:|
The more information that you are able to provide, the better. Did you do anything before this happened? Did you upgrade or change anything? Any screenshots or logs you can provide will be helpful.
If you are using an old release of Jellyfin, please also explain why.
After upgrading to version x.y.z of Jellyfin, the "login disclaimer" is showing incorrect text. It appears to me that it is appending the server name to the end of the login disclaimer, and showing that to a user. It might be a regression from pull request x. I have tried rebooting my host as well as my container multiple times. I tested this functionality on different clients, and it happens to all the tested clients (client x, y, z), that support the login disclaimer functionality. This makes me believe it is a server side issue.
validations:
required:true
- type:textarea
id:repro-steps
attributes:
label:Reproduction Steps
label:Reproduction steps
description:Reproduction steps should be complete and self-contained. Anyone can reproduce this issue by following these steps. Furthermore, the steps should be clear and easy to follow.
placeholder:|
1. In this environment...
2. With this config...
3. Run '...'
4. See error...
1. Sign in on the Jellyfin web client, with an admin account, using a browser of your choice.
2. Navigate to the dashboard.
3. Select "general".
4. Change the login disclaimer to something like "I am a cool disclaimer!"
5. Save the settings.
6. Sign out.
7. Make sure you are on the sign in screen. Otherwise, navigate to the sign in screen manually.
validations:
required:true
- type:textarea
id:actual-behavior
attributes:
label:What is the current _bug_ behavior?
description:Write down the incorrect behavior that currently happens after following the reproduction steps.
placeholder:|
The login disclaimer on the sign in screen has the server name appended to the text. The text shown is: "I am a cool disclaimer!jellyfinserver".
validations:
required:true
- type:textarea
id:expected-behavior
attributes:
label:What is the expected _correct_ behavior?
description:Write down the correct expected behavior that is supposed to happen after following the reproduction steps.
placeholder:|
The login disclaimer on the sign in screen should only show the configured text. The text that should be shown is: "I am a cool disclaimer!".
validations:
required:true
- type:dropdown
id:version
attributes:
label:Jellyfin Version
description:What version of Jellyfin are you running?
label:Jellyfin Server version
description:What version of Jellyfin are you using?
options:
- 10.8.13
- 10.8.12
- 10.8.11or older (please specify)
- Unstable (master branch)
- 10.9.11+
- Master
- Unstable
- Older*
validations:
required:true
- type:input
id:version-other
id:version-master
attributes:
label:"if other:"
placeholder:Other
label:"Specify commit id"
description:Fill in this field in case the option 'master' is selected. Provide the commit id it was built on.
placeholder:|
610e56baafc3011e1bfa043bdabb567bda0c2ab0
- type:input
id:version-unstable
attributes:
label:"Specify unstable release number"
description:Fill in this field in case the option 'unstable' is selected. Provide the unstable release number.
placeholder:|
2024050906
- type:input
id:version-older
attributes:
label:"Specify version number"
description:Fill in this field in case the option 'older' is selected. Provide the version number.
placeholder:|
x.y.z
- type:input
id:build-version
attributes:
label:"Specify the build version"
description:Please provide the build version that is shown in the dashboard.
validations:
required:true
- type:textarea
id:environment-information
attributes:
label:Environment
description:|
Accurately fill in as much environment details as possible. If a certain environment field is not shown in the template below, but you consider useful information, please include it.
Examples:
- **OS**: [e.g. Debian 11, Windows 10]
- **Linux Kernel**: [e.g. none, 5.15, 6.1, etc.]
@@ -87,21 +160,22 @@ body:
validations:
required:true
- type:markdown
id:general-information-logs
attributes:
value:|
When providing logs, please keep the following things in mind.
1. **DO NOT** use external paste services.
When providing logs, please keep the following things in mind:
1. **DO NOT** use external paste services. If logs are too large to paste into the field, upload them as text files.
2. Please provide complete logs.
- For server logs, include everything you think is important plus *10 lines before and after*
- For server logs, ensure to capture all relevant information, encompassing both the events leading up to and following the occurrence of the issue. Typically, providing 10 *lines preceding and succeeding* the problem should be adequate.
- For ffmpeg logs, please provide the entire file unmodified.
3. Please do not run logs through any translation program. Especially beware if your browser translates pages by default.
3. Please do not run logs through any translation program. We exclusively accept raw, untranslated logs. Particularly exercise caution if your browser automatically translates pages by default.
- Do not forget to censor out personal information such as public IP addresses.
4. Please do not include logs as screenshots, with the only exception being client logs in browsers.
- type:textarea
id:logs
id:jellyfin-logs
attributes:
label:Jellyfin logs
description:Please copy and paste any relevant log output. This can be found in Dashboard > Logs.
placeholder:For playback issues, browser/client and FFmpeg logs may be more useful.
render:shell
validations:
required:true
@@ -109,24 +183,20 @@ body:
id:ffmpeg-logs
attributes:
label:FFmpeg logs
description:Please copy and paste recent FFmpeg log output. This can be found in Dashboard > Logs > FFmpeg*.log.
placeholder:This field is mandatory for debugging hardware transcoding issues. It's important to include the specific codec details. If no FFmpeg logs appear, the file was Direct Played and did not use FFmpeg.
description:Relevant FFmpeg log output. This can be found in Dashboard > Logs > FFmpeg*.log. This field is considered mandatory for transcoding related issues. It's also important to include the specific codec details.
render:shell
- type:textarea
id:browserlogs
id:browser-logs
attributes:
label:Please attach any browser or client logs here
placeholder:Access browser logs by using the F12 to bring up the console. Screenshots are typically easier to read than raw logs. For clients such as Android or iOS, please see our documentation.
label:Client / Browser logs
description:Access browser logs by using the F12 to bring up the console. Screenshots are typically easier to read than raw logs. For clients such as Android or iOS, please see our documentation.
- type:textarea
id:screenshots
attributes:
label:Please attach any screenshots here
placeholder:Images can be pasted directly into the textbox and will be hosted by github.
- type:checkboxes
id:terms
label:Relevant screenshots or videos
description:Attach relevant screenshots or videos related to this report.
- type:textarea
id:additional-information
attributes:
label:Code of Conduct
description:By submitting this issue, you agree to follow our [Code of Conduct](https://jellyfin.org/docs/general/community-standards.html#code-of-conduct)
options:
- label:I agree to follow this project's Code of Conduct
required:true
label:Additional information
description:Any additional information that might be useful to this issue.
="create table if not exists mediastreams (ItemId GUID, StreamIndex INT, StreamType TEXT, Codec TEXT, Language TEXT, ChannelLayout TEXT, Profile TEXT, AspectRatio TEXT, Path TEXT, IsInterlaced BIT, BitRate INT NULL, Channels INT NULL, SampleRate INT NULL, IsDefault BIT, IsForced BIT, IsExternal BIT, Height INT NULL, Width INT NULL, AverageFrameRate FLOAT NULL, RealFrameRate FLOAT NULL, Level FLOAT NULL, PixelFormat TEXT, BitDepth INT NULL, IsAnamorphic BIT NULL, RefFrames INT NULL, CodecTag TEXT NULL, Comment TEXT NULL, NalLengthSize TEXT NULL, IsAvc BIT NULL, Title TEXT NULL, TimeBase TEXT NULL, CodecTimeBase TEXT NULL, ColorPrimaries TEXT NULL, ColorSpace TEXT NULL, ColorTransfer TEXT NULL, DvVersionMajor INT NULL, DvVersionMinor INT NULL, DvProfile INT NULL, DvLevel INT NULL, RpuPresentFlag INT NULL, ElPresentFlag INT NULL, BlPresentFlag INT NULL, DvBlSignalCompatibilityId INT NULL, IsHearingImpaired BIT NULL, PRIMARY KEY (ItemId, StreamIndex))";
="create table if not exists mediastreams (ItemId GUID, StreamIndex INT, StreamType TEXT, Codec TEXT, Language TEXT, ChannelLayout TEXT, Profile TEXT, AspectRatio TEXT, Path TEXT, IsInterlaced BIT, BitRate INT NULL, Channels INT NULL, SampleRate INT NULL, IsDefault BIT, IsForced BIT, IsExternal BIT, Height INT NULL, Width INT NULL, AverageFrameRate FLOAT NULL, RealFrameRate FLOAT NULL, Level FLOAT NULL, PixelFormat TEXT, BitDepth INT NULL, IsAnamorphic BIT NULL, RefFrames INT NULL, CodecTag TEXT NULL, Comment TEXT NULL, NalLengthSize TEXT NULL, IsAvc BIT NULL, Title TEXT NULL, TimeBase TEXT NULL, CodecTimeBase TEXT NULL, ColorPrimaries TEXT NULL, ColorSpace TEXT NULL, ColorTransfer TEXT NULL, DvVersionMajor INT NULL, DvVersionMinor INT NULL, DvProfile INT NULL, DvLevel INT NULL, RpuPresentFlag INT NULL, ElPresentFlag INT NULL, BlPresentFlag INT NULL, DvBlSignalCompatibilityId INT NULL, IsHearingImpaired BIT NULL, Rotation INT NULL, PRIMARY KEY (ItemId, StreamIndex))";
conststringCreateMediaAttachmentsTableCommand
="create table if not exists mediaattachments (ItemId GUID, AttachmentIndex INT, Codec TEXT, CodecTag TEXT NULL, Comment TEXT NULL, Filename TEXT NULL, MIMEType TEXT NULL, PRIMARY KEY (ItemId, AttachmentIndex))";
"TaskOptimizeDatabaseDescription":"Komprimeer databasis en verkort vrye ruimte. As hierdie taak uitgevoer word nadat die media versameling geskandeer is of ander veranderings aangebring is wat databasisaanpassings impliseer, kan dit die prestasie verbeter.",
"TaskKeyframeExtractorDescription":"Extrae Fotogramas Clave de los archivos de vídeo para crear Listas de Reprodución HLS más precisas. Esta tarea puede durar mucho tiempo.",
"TaskKeyframeExtractor":"Extractor de Fotogramas Clave",
"HearingImpaired":"Discapacidad Auditiva"
"HearingImpaired":"Discapacidad Auditiva",
"TaskRefreshTrickplayImages":"Generar imágenes de Trickplay",
"TaskRefreshTrickplayImagesDescription":"Crea vistas previas de reproducción engañosa para videos en bibliotecas habilitadas.",
"TaskAudioNormalization":"Normalización de audio",
"TaskAudioNormalizationDescription":"Escanea archivos en busca de datos de normalización de audio.",
"TaskCleanCollectionsAndPlaylists":"Limpiar colecciones y listas de reproducción",
"TaskCleanCollectionsAndPlaylistsDescription":"Elimina elementos de colecciones y listas de reproducción que ya no existen.",
"TaskDownloadMissingLyrics":"Descargar letra faltante",
"TaskDownloadMissingLyricsDescription":"Descarga letras de canciones",
"TaskExtractMediaSegments":"Escanear Segmentos de Media",
"TaskExtractMediaSegmentsDescription":"Extrae u obtiene segmentos de medio de plugins habilitados para MediaSegment.",
"TaskMoveTrickplayImagesDescription":"Mueve archivos existentes de trickplay de acuerdo a la configuración de la biblioteca.",
"TaskMoveTrickplayImages":"Migrar Ubicación de Imagen de Trickplay"
"FailedLoginAttemptWithUserName":"Intento fallido de inicio de sesión desde {0}",
"FailedLoginAttemptWithUserName":"Intento fallido de inicio de sesión de {0}",
"Favorites":"Favoritos",
"Folders":"Carpetas",
"Genres":"Géneros",
@@ -124,5 +124,17 @@
"TaskKeyframeExtractorDescription":"Extrae los cuadros clave de los archivos de vídeo para crear listas HLS más precisas. Esta tarea puede tardar un buen rato.",
"TaskKeyframeExtractor":"Extractor de Cuadros Clave",
"External":"Externo",
"HearingImpaired":"Discapacidad Auditiva"
"HearingImpaired":"Discapacidad Auditiva",
"TaskRefreshTrickplayImagesDescription":"Crea previsualizaciones para la barra de reproducción en las bibliotecas habilitadas.",
"TaskRefreshTrickplayImages":"Generar imágenes de la barra de reproducción",
"TaskAudioNormalization":"Normalización de audio",
"TaskAudioNormalizationDescription":"Analiza los archivos para normalizar el audio.",
"TaskCleanCollectionsAndPlaylists":"Limpieza de colecciones y listas de reproducción",
"TaskCleanCollectionsAndPlaylistsDescription":"Quita elementos que ya no existen de colecciones y listas de reproducción.",
"TaskDownloadMissingLyrics":"descargar letras que faltan",
"TaskDownloadMissingLyricsDescription":"Descargar letras de canciones",
"TaskExtractMediaSegments":"Escaneo de segmentos de medios",
"TaskExtractMediaSegmentsDescription":"Extrae u obtiene segmentos de medios de plugins habilitados para MediaSegment.",
"TaskMoveTrickplayImages":"Migrar la ubicación de la imagen de Trickplay",
"TaskMoveTrickplayImagesDescription":"Mueve archivos de trickplay existentes según la configuración de la biblioteca."
"TaskOptimizeDatabaseDescription":"Compacta la base de datos y libera espacio. Ejecutar esta tarea después de escanear la biblioteca o hacer otros cambios que impliquen modificaciones en la base de datos puede mejorar el rendimiento.",
"TaskKeyframeExtractorDescription":"Extrae Fotogramas Clave de los archivos de vídeo para crear Listas de Reproducción HLS más precisas. Esta tarea puede durar mucho tiempo.",
"TaskAudioNormalization":"Normalización de audio",
"TaskAudioNormalizationDescription":"Escanear archivos para la normalización de data.",
"TaskCleanCollectionsAndPlaylists":"Limpiar colecciones y listas de reproducción",
"TaskCleanCollectionsAndPlaylistsDescription":"Remover elementos de colecciones y listas de reproducción que no existen.",
"TvShows":"Series de TV",
"UserStartedPlayingItemWithValues":"{0} está reproduciendo {1} en {2}",
"TaskRefreshChannels":"Actualizar canales",
"Photos":"Fotos",
"HeaderFavoriteShows":"Programas favoritos",
"TaskCleanActivityLog":"Limpiar registro de actividades",
"UserPasswordChangedWithName":"Se ha cambiado la contraseña para el usuario {0}",
"System":"Sistema",
"User":"Usuario",
"Forced":"Forzado",
"PluginInstalledWithName":"{0} ha sido instalado",
"HeaderFavoriteAlbums":"Álbumes favoritos",
"TaskUpdatePlugins":"Actualizar Plugins",
"Latest":"Recientes",
"UserStoppedPlayingItemWithValues":"{0} ha terminado de reproducir {1} en {2}",
"Songs":"Canciones",
"NotificationOptionPluginError":"Falla de plugin",
"ScheduledTaskStartedWithName":"{0} iniciado",
"TasksApplicationCategory":"Aplicación",
"UserDeletedWithName":"El usuario {0} ha sido eliminado",
"TaskRefreshChapterImages":"Extraer imágenes de los capítulos",
"TaskUpdatePluginsDescription":"Descarga e instala actualizaciones para plugins que están configurados para actualizarse automáticamente.",
"TaskRefreshPeopleDescription":"Actualiza metadatos de actores y directores en tu biblioteca de medios.",
"TaskKeyframeExtractorDescription":"Eraldab videofailidest võtmekaadreid, et luua täpsemaid HLS-i esitusloendeid. See ülesanne võib kesta pikka aega.",
"FailedLoginAttemptWithUserName":"{0} से लॉगिन असफल हुआ",
"FailedLoginAttemptWithUserName":"{0} से संप्रवेश असफल हुआ",
"DeviceOnlineWithName":"{0} कनेक्ट हो गया है",
"DeviceOfflineWithName":"{0} डिस्कनेक्ट हो गया है",
"Default":"प्राथमिक",
@@ -125,5 +125,7 @@
"TaskDownloadMissingSubtitlesDescription":"मेटाडेटा कॉन्फ़िगरेशन के आधार पर लापता उपशीर्षक के लिए इंटरनेट खोजता है।",
"TaskKeyframeExtractorDescription":"अधिक सटीक एचएलएस प्लेलिस्ट बनाने के लिए वीडियो फ़ाइलों से मुख्य-फ़्रेम निकालता है। यह कार्य लंबे समय तक चल सकता है।",
"TaskRefreshTrickplayImages":"ट्रिकप्लै चित्रों को सृजन करे",
"TaskRefreshTrickplayImagesDescription":"नियत संग्रहों में चलचित्रों का ट्रीकप्लै दर्शनों को सृजन करे."
"TaskRefreshTrickplayImagesDescription":"नियत संग्रहों में चलचित्रों का ट्रीकप्लै दर्शनों को सृजन करे.",
"TaskAudioNormalization":"श्रव्य सामान्यीकरण",
"TaskAudioNormalizationDescription":"श्रव्य सामान्यीकरण के लिए फाइलें अन्वेषण करें"
"FailedLoginAttemptWithUserName":"Neuspjeli pokušaj prijave od {0}",
"FailedLoginAttemptWithUserName":"Neuspješan pokušaj prijave od {0}",
"Favorites":"Favoriti",
"Folders":"Mape",
"Genres":"Žanrovi",
@@ -126,5 +126,15 @@
"TaskOptimizeDatabaseDescription":"Sažima bazu podataka i uklanja prazan prostor. Pokretanje ovog zadatka, može poboljšati performanse nakon provođenja indeksiranja biblioteke ili provođenja drugih promjena koje utječu na bazu podataka.",
"TaskOptimizeDatabaseDescription":"Tömöríti az adatbázist és csonkolja a szabad helyet. A feladat futtatása a könyvtár beolvasása után, vagy egyéb, adatbázis-módosítást igénylő változtatások végrehajtása javíthatja a teljesítményt.",
"TaskOptimizeDatabaseDescription":"Tömöríti az adatbázist és csonkolja a szabad helyet. A feladat futtatása a médiatár beolvasása, vagy egyéb adatbázis-módosítást igénylő változtatás végrehajtása után, javíthatja a teljesítményt.",
"TaskKeyframeExtractorDescription":"Kibontja a kulcsképkockákat a videófájlokból, hogy pontosabb HLS lejátszási listákat hozzon létre. Ez a feladat hosszú ideig tarthat.",
"ServerNameNeedsToBeRestarted":"{0} deve essere riavviato",
"Shows":"Serie TV",
"Songs":"Canzoni",
"Songs":"Brani",
"StartupEmbyServerIsLoading":"Jellyfin server si sta avviando. Per favore riprova più tardi.",
"SubtitleDownloadFailureForItem":"Impossibile scaricare i sottotitoli per {0}",
"SubtitleDownloadFailureFromForItem":"Impossibile scaricare i sottotitoli da {0} per {1}",
@@ -83,52 +83,56 @@
"UserDeletedWithName":"L'utente {0} è stato rimosso",
"UserDownloadingItemWithValues":"{0} sta scaricando {1}",
"UserLockedOutWithName":"L'utente {0} è stato bloccato",
"UserOfflineFromDevice":"{0} si è disconnesso su {1}",
"UserOfflineFromDevice":"{0} si è disconnesso da {1}",
"UserOnlineFromDevice":"{0} è online su {1}",
"UserPasswordChangedWithName":"La password è stata cambiata per l'utente {0}",
"UserPolicyUpdatedWithName":"La policy dell'utente è stata aggiornata per {0}",
"UserStartedPlayingItemWithValues":"{0} ha avviato la riproduzione di \"{1}\" su {2}",
"UserStartedPlayingItemWithValues":"{0} ha avviato la riproduzione di {1} su {2}",
"UserStoppedPlayingItemWithValues":"{0} ha interrotto la riproduzione di {1} su {2}",
"ValueHasBeenAddedToLibrary":"{0} è stato aggiunto alla tua libreria multimediale",
"ValueSpecialEpisodeName":"Speciale - {0}",
"VersionNumber":"Versione {0}",
"TaskRefreshChannelsDescription":"Aggiorna le informazioni dei canali Internet.",
"TaskRefreshChannelsDescription":"Aggiorna le informazioni dei canali internet.",
"TaskDownloadMissingSubtitlesDescription":"Cerca su internet i sottotitoli mancanti basandosi sulle configurazioni dei metadati.",
"TaskDownloadMissingSubtitles":"Scarica i sottotitoli mancanti",
"TaskRefreshChannels":"Aggiorna i canali",
"TaskCleanTranscodeDescription":"Cancella i file di transcode più vecchi di un giorno.",
"TaskCleanTranscode":"Svuota la cartella del transcoding",
"TaskUpdatePluginsDescription":"Scarica e installa gli aggiornamenti per i plugin che sono stati configurati per essere aggiornati contemporaneamente.",
"TaskUpdatePlugins":"Aggiorna i Plugin",
"TaskRefreshPeopleDescription":"Aggiorna i metadati per gli attori e registi nella tua libreria multimediale.",
"TaskRefreshPeople":"Aggiornamento Persone",
"TaskRefreshChannels":"Aggiorna canali",
"TaskCleanTranscodeDescription":"Cancella i file di transcodifica più vecchi di un giorno.",
"TaskCleanTranscode":"Svuota la cartella della transcodifica",
"TaskUpdatePluginsDescription":"Scarica e installa gli aggiornamenti per i plugin configurati per l'aggiornamento automatico.",
"TaskUpdatePlugins":"Aggiorna i plugin",
"TaskRefreshPeopleDescription":"Aggiorna i metadati degli attori e registi nella tua libreria.",
"TaskRefreshPeople":"Aggiorna Persone",
"TaskCleanLogsDescription":"Rimuovi i file di log più vecchi di {0} giorni.",
"TaskCleanLogs":"Pulisci la cartella dei log",
"TaskRefreshLibraryDescription":"Analizza la tua libreria multimediale per nuovi file e rinnova i metadati.",
"TaskRefreshLibrary":"Scan Librerie",
"TaskRefreshChapterImagesDescription":"Crea le thumbnail per i video che hanno capitoli.",
"TaskRefreshLibraryDescription":"Scansiona la libreria alla ricerca di nuovi file e aggiorna i metadati.",
"TaskRefreshLibrary":"Scansione della libreria",
"TaskRefreshChapterImagesDescription":"Crea le miniature per i video che hanno capitoli.",
"TaskCleanCacheDescription":"Cancella i file di cache non più necessari al sistema.",
"TaskCleanCache":"Pulisci la directory della cache",
"TaskCleanCache":"Pulisci la cartella della cache",
"TasksChannelsCategory":"Canali su Internet",
"TasksApplicationCategory":"Applicazione",
"TasksLibraryCategory":"Libreria",
"TasksMaintenanceCategory":"Manutenzione",
"TaskCleanActivityLog":"Attività di Registro Completate",
"TaskCleanActivityLogDescription":"Elimina gli inserimenti nel registro delle attività più vecchie dell’età configurata.",
"TaskCleanActivityLogDescription":"Elimina le voci del registro delle attività più vecchie dell’età configurata.",
"Undefined":"Non Definito",
"Forced":"Forzato",
"Default":"Predefinito",
"TaskOptimizeDatabaseDescription":"Compatta Database e tronca spazi liberi. Eseguire questa azione dopo la scansione o dopo aver fatto altri cambiamenti inerenti il database potrebbe aumentarne la performance.",
"TaskOptimizeDatabase":"Ottimizza Database",
"TaskOptimizeDatabaseDescription":"Compatta database e tronca spazi liberi. Eseguire questa azione dopo la scansione o dopo aver fatto altre modifiche inerenti il database potrebbe aumentarne le prestazioni.",
"TaskOptimizeDatabase":"Ottimizza database",
"TaskKeyframeExtractor":"Estrattore di Keyframe",
"TaskKeyframeExtractorDescription":"Estrae i keyframe dai video per creare migliori playlist HLS. Questa procedura potrebbe richiedere molto tempo.",
"TaskOptimizeDatabaseDescription":"Y hwra kesstrotha ha berrhe efander rydh. Martesen y hwra gwellhe gwryth mar kwre'ta an oberen ma wosa ty dhe arhwilas an lyverva, po neb chanj aral neb a brof chanjyansow selvanylyon.",
"TaskKeyframeExtractorDescription":"Ekstraktē atslēgkadrus no video failiem lai izveidotu precīzākus HLS atskaņošanas sarakstus. Šis process var būt ilgs.",
"TaskKeyframeExtractorDescription":"കൂടുതൽ കൃത്യമായ HLS പ്ലേലിസ്റ്റുകൾ സൃഷ്ടിക്കുന്നതിന് വീഡിയോ ഫയലുകളിൽ നിന്ന് കീഫ്രെയിമുകൾ എക്സ്ട്രാക്റ്റ് ചെയ്യുന്നു. ഈ പ്രവർത്തനം പൂർത്തിയാവാൻ കുറച്ചധികം സമയം എടുത്തേക്കാം.",
"CameraImageUploadedFrom":"Uma nova imagem de câmara foi enviada a partir de {0}",
"Channels":"Canais",
"ChapterNameValue":"Capítulo {0}",
"Collections":"Colecções",
"Collections":"Coleções",
"DeviceOfflineWithName":"{0} desligou-se",
"DeviceOnlineWithName":"{0} ligou-se",
"FailedLoginAttemptWithUserName":"Tentativa de login falhada a partir de {0}",
@@ -27,8 +27,8 @@
"HeaderRecordingGroups":"Grupos de Gravação",
"HomeVideos":"Vídeos Caseiros",
"Inherit":"Herdar",
"ItemAddedWithName":"{0} foi adicionado à biblioteca",
"ItemRemovedWithName":"{0} foi removido da biblioteca",
"ItemAddedWithName":"{0} foi adicionado à mediateca",
"ItemRemovedWithName":"{0} foi removido da mediateca",
"LabelIpAddressValue":"Endereço IP: {0}",
"LabelRunningTimeValue":"Duração: {0}",
"Latest":"Mais Recente",
@@ -89,37 +89,37 @@
"UserPolicyUpdatedWithName":"Política de utilizador alterada para {0}",
"UserStartedPlayingItemWithValues":"{0} está a reproduzir {1} em {2}",
"UserStoppedPlayingItemWithValues":"{0} terminou a reprodução de {1} em {2}",
"ValueHasBeenAddedToLibrary":"{0} foi adicionado à sua biblioteca multimédia",
"ValueHasBeenAddedToLibrary":"{0} foi adicionado à sua mediateca",
"ValueSpecialEpisodeName":"Especial - {0}",
"VersionNumber":"Versão {0}",
"TaskDownloadMissingSubtitlesDescription":"Procurar na internet por legendas em falta baseado na configuração de metadados.",
"TaskDownloadMissingSubtitles":"Fazer download de legendas em falta",
"TaskDownloadMissingSubtitles":"Transferir legendas em falta",
"TaskRefreshChannelsDescription":"Atualizar informação sobre canais da Internet.",
"TaskRefreshChannels":"Atualizar Canais",
"TaskCleanTranscodeDescription":"Apagar ficheiros de transcode com mais de um dia.",
"TaskCleanTranscode":"Limpar a Diretoria de Transcode",
"TaskUpdatePluginsDescription":"Faz o download e instala updates para os plugins que estão configurados para atualizar automaticamente.",
"TaskUpdatePlugins":"Atualizar Plugins",
"TaskRefreshPeopleDescription":"Atualizar metadados para atores e diretores na biblioteca.",
"TaskRefreshPeopleDescription":"Atualizar metadados para elenco e equipa técnica da tua mediateca.",
"TaskRefreshPeople":"Atualizar Pessoas",
"TaskCleanLogsDescription":"Apagar ficheiros de log que têm mais de {0} dias.",
"TaskCleanLogs":"Limpar a Diretoria de Logs",
"TaskRefreshLibraryDescription":"Analisar a biblioteca de música para novos ficheiros e atualizar os metadados.",
"TaskRefreshLibrary":"Analisar Biblioteca de Música",
"TaskRefreshLibraryDescription":"Analisar a mediateca para novos ficheiros e atualizar os metadados.",
"TaskRefreshLibrary":"Analisar mediateca",
"TaskRefreshChapterImagesDescription":"Criar thumbnails para os vídeos que têm capítulos.",
"TaskRefreshChapterImages":"Extrair Imagens dos Capítulos",
"TaskCleanCacheDescription":"Apagar ficheiros em cache que já não são necessários.",
"TaskCleanCache":"Limpar Cache",
"TasksChannelsCategory":"Canais da Internet",
"TasksApplicationCategory":"Aplicação",
"TasksLibraryCategory":"Biblioteca",
"TasksLibraryCategory":"Mediateca",
"TasksMaintenanceCategory":"Manutenção",
"TaskCleanActivityLogDescription":"Apaga as entradas do registo de atividade anteriores à data configurada.",
"TaskCleanActivityLog":"Limpar registo de atividade",
"Undefined":"Indefinido",
"Forced":"Forçado",
"Default":"Padrão",
"TaskOptimizeDatabaseDescription":"Base de dados compacta e corta espaço livre. A execução desta tarefa depois de digitalizar a biblioteca ou de fazer outras alterações que impliquem modificações na base de dados pode melhorar o desempenho.",
"TaskOptimizeDatabaseDescription":"Otimiza e liberta espaço livre na base de dados. A execução desta tarefa depois de analisar a mediateca ou efetuar outras alterações que impliquem modificações na base de dados pode melhorar o desempenho.",
"TaskOptimizeDatabase":"Otimizar base de dados",
"TaskKeyframeExtractorDescription":"Extrai quadros-chave de ficheiros de video para criar listas de reprodução HLS mais precisas. Esta tarefa pode demorar algum tempo.",
"TaskKeyframeExtractor":"Extrator de Quadros-chave",
@@ -130,5 +130,11 @@
"TaskCleanCollectionsAndPlaylistsDescription":"Remove itens de coleções e listas de reprodução que já não existem.",
"TaskCleanCollectionsAndPlaylists":"Limpar coleções e listas de reprodução",
"TaskAudioNormalizationDescription":"Analisa os ficheiros para obter dados de normalização de áudio.",
"TaskAudioNormalization":"Normalização de áudio"
"TaskAudioNormalization":"Normalização de áudio",
"TaskExtractMediaSegments":"Analisar segmentos de multimédia",
"TaskDownloadMissingLyrics":"Transferir letra em falta",
"TaskMoveTrickplayImages":"Migrar a localização da imagem do Trickplay",
"TaskDownloadMissingLyricsDescription":"Transferir letra para músicas",
"TaskExtractMediaSegmentsDescription":"Extrai ou obtém segmentos de multimédia a partir de plugins com suporte para MediaSegment.",
"TaskMoveTrickplayImagesDescription":"Move os ficheiros trickplay existentes de acordo com as definições da mediateca."
"TaskCleanLogsDescription":"Deletar arquivos de log que existe a mais de {0} dias.",
"TaskCleanLogs":"Limpar diretório de logs",
"TaskRefreshLibrary":"Escanear biblioteca de mídias",
"TaskRefreshLibrary":"Analisar mediateca",
"TaskRefreshChapterImagesDescription":"Cria miniaturas para vídeos que têm capítulos.",
"TaskCleanCacheDescription":"Apaga ficheiros em cache que já não são usados pelo sistema.",
"TasksChannelsCategory":"Canais de Internet",
"TaskRefreshChapterImages":"Extrair Imagens do Capítulo",
"TaskDownloadMissingSubtitlesDescription":"Pesquisa na Internet as legendas em falta com base na configuração de metadados.",
"TaskDownloadMissingSubtitles":"Download das legendas em falta",
"TaskDownloadMissingSubtitles":"Transferir legendas em falta",
"TaskRefreshChannelsDescription":"Atualiza as informações do canal da Internet.",
"TaskCleanTranscodeDescription":"Apagar os ficheiros com mais de um dia, de Transcode.",
"TaskCleanTranscode":"Limpar o diretório de Transcode",
"TaskUpdatePluginsDescription":"Baixa e instala as atualizações para plug-ins configurados para atualização automática.",
"TaskRefreshPeopleDescription":"Atualiza os metadados para atores e diretores na tua biblioteca de media.",
"TaskRefreshPeopleDescription":"Atualizar metadados para elenco e equipa técnica da tua mediateca.",
"TaskRefreshPeople":"Atualizar pessoas",
"TaskRefreshLibraryDescription":"Pesquisa sua biblioteca de media por novos arquivos e atualiza os metadados.",
"TaskRefreshLibraryDescription":"Analisar a mediateca para novos ficheiros e atualizar os metadados.",
"TaskCleanActivityLog":"Limpar registro de atividade",
"Undefined":"Indefinido",
"Forced":"Forçado",
"Default":"Predefinição",
"TaskCleanActivityLogDescription":"Apaga itens no registro com idade acima do que é configurado.",
"TaskOptimizeDatabase":"Otimizar base de dados",
"TaskOptimizeDatabaseDescription":"Base de dados compacta e corta espaço livre. A execução desta tarefa depois de digitalizar a biblioteca ou de fazer outras alterações que impliquem modificações na base de dados pode melhorar o desempenho.",
"TaskOptimizeDatabaseDescription":"Otimiza e liberta espaço livre na base de dados. A execução desta tarefa depois de analisar a mediateca ou efetuar outras alterações que impliquem modificações na base de dados pode melhorar o desempenho.",
"External":"Externo",
"HearingImpaired":"Problemas auditivos",
"TaskKeyframeExtractor":"Extrator de quadro-chave",
@@ -129,5 +129,11 @@
"TaskCleanCollectionsAndPlaylistsDescription":"Remove itens de coleções e listas de reprodução que já não existem.",
"TaskCleanCollectionsAndPlaylists":"Limpar coleções e listas de reprodução",
"TaskAudioNormalizationDescription":"Analisa os ficheiros para obter dados de normalização de áudio.",
"TaskAudioNormalization":"Normalização de áudio"
"TaskAudioNormalization":"Normalização de áudio",
"TaskDownloadMissingLyrics":"Transferir letra em falta",
"TaskDownloadMissingLyricsDescription":"Transferir letra para músicas",
"TaskMoveTrickplayImagesDescription":"Move os ficheiros trickplay existentes de acordo com as definições da mediateca.",
"TaskExtractMediaSegments":"Analisar segmentos de multimédia",
"TaskExtractMediaSegmentsDescription":"Extrai ou obtém segmentos de multimédia a partir de plugins com suporte para MediaSegment.",
"TaskMoveTrickplayImages":"Migrar a localização da imagem do Trickplay"
"DeviceOfflineWithName":"{0} har avbrutit uppkopplingen",
"DeviceOfflineWithName":"{0} har kopplat ned",
"DeviceOnlineWithName":"{0} är ansluten",
"FailedLoginAttemptWithUserName":"Misslyckat inloggningsförsök från {0}",
"Favorites":"Favoriter",
"Folders":"Mappar",
"Genres":"Genrer",
"HeaderAlbumArtists":"Albumartister",
"HeaderContinueWatching":"Fortsätt titta på",
"HeaderContinueWatching":"Fortsätt titta",
"HeaderFavoriteAlbums":"Favoritalbum",
"HeaderFavoriteArtists":"Favoritartister",
"HeaderFavoriteEpisodes":"Favoritavsnitt",
@@ -121,11 +121,20 @@
"Default":"Standard",
"TaskOptimizeDatabase":"Optimera databasen",
"TaskOptimizeDatabaseDescription":"Komprimerar databasen och trunkerar ledigt utrymme. Prestandan kan förbättras genom att köra denna aktivitet efter att du har skannat biblioteket eller gjort andra förändringar som indikerar att databasen har modifierats.",
"TaskKeyframeExtractorDescription":"Exporterar nyckelbildrutor från videofiler för att skapa mer exakta HLS-spellistor. Denna rutin kan ta lång tid.",
"TaskKeyframeExtractorDescription":"Exporterar nyckelbildrutor från videofiler för att skapa mer exakta HLS-spellistor. Denna körning kan ta lång tid.",
"TaskKeyframeExtractor":"Extraktor för nyckelbildrutor",
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.