forked from faush01/StrmExtract
-
Notifications
You must be signed in to change notification settings - Fork 48
已知问题 (Known Issue)
sjtuross edited this page Jan 8, 2025
·
11 revisions
- 通过Emby即非本插件刷新元数据,会导致Strm已有的视频信息丢失,片头片尾标记失效。这属于Emby的已知问题或设计如此,以下帖子均反馈过此问题。
如果扫库后已有视频信息丢失,建议关闭元数据保存启用插件的独占模式可避免媒体信息,视频截图以及片头片尾标记丢失。NFO
选项。
- https://emby.media/community/index.php?/topic/110725-manually-backup-and-restore-media-info-for-strm-files/
- https://emby.media/community/index.php?/topic/110525-plugin-chapter-editor-chapterapi/page/3/#comment-1166591
-
所有魔改功能暂不支持
ARM
平台,等待上游魔改平台支持 https://github.com/MonoMod/MonoMod/issues/90 -
魔改可能在某些定制的
Linux
系统上失败,比如群晖套件版,以下是错误日志,Docker版无此问题。因群晖系统限制,每次重启后须运行sudo mount -o remount,exec /tmp
后插件的魔改功能才能启用,具体看 https://github.com/sjtuross/StrmAssistant/issues/6 和 https://imnks.com/11166.html 尝试解决。
2024-09-12 23:56:04.908 Debug Strm Assistant: Patch FFmpeg ResourcePool Failed by Harmony
2024-09-12 23:56:04.908 Debug Strm Assistant: /tmp/mm-exhelper.so.WV5XqM.so: cannot open shared object file: No such file or directory
2024-09-12 23:56:04.908 Debug Strm Assistant: at HarmonyLib.PatchFunctions.UpdateWrapper(MethodBase original, PatchInfo patchInfo)
at HarmonyLib.PatchProcessor.Patch()
at HarmonyLib.Harmony.Patch(MethodBase original, HarmonyMethod prefix, HarmonyMethod postfix, HarmonyMethod transpiler, HarmonyMethod finalizer)
at StrmAssistant.EnableImageCapture.PatchResourcePool()
-
某些封装不规范,或者编码特殊,或者损坏的视频,Emby的ffprobe无法提取媒体信息,这会导致计划任务重复处理。
-
在某些CPU平台运行时,线程数过高会导致Emby重启。开发时偶遇以下异常,可能有关。从
Stack Trace
来看,异常是由InfuseSync
插件导致的。经网友确认卸载InfuseSync
之后问题消失。估计InfuseSync
插件的代码存在线程安全的问题。自从Infuse支持直连模式后,其实这个插件没什么用了。另外一种可能是内存太小,有网友在1GB内存系统中遇到此问题,增加到2GB问题消失。
System.AccessViolationException
HResult=0x80004003
Message=Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Source=<Cannot evaluate the exception source>
StackTrace:
<Cannot evaluate the exception stack trace>
[Managed to Native Transition]
> EmbyServer.dll!SQLitePCLEx.SQLite3Provider_sqlite3.SQLitePCLEx.ISQLite3Provider.sqlite3_prepare_v2(SQLitePCLEx.sqlite3 db, System.ReadOnlySpan<byte> sql, out System.IntPtr stm, out System.ReadOnlySpan<byte> tail) Line 689 C#
SQLitePCLRawEx.core.dll!SQLitePCLEx.raw.sqlite3_prepare_v2(SQLitePCLEx.sqlite3 db, System.ReadOnlySpan<byte> sql, out SQLitePCLEx.sqlite3_stmt stmt, out System.ReadOnlySpan<byte> tail) Unknown
SQLitePCLRawEx.core.dll!SQLitePCLEx.raw.sqlite3_prepare_v2(SQLitePCLEx.sqlite3 db, string sql, out SQLitePCLEx.sqlite3_stmt stmt, out System.ReadOnlySpan<byte> sp_tail) Unknown
SQLitePCL.pretty.dll!SQLitePCL.pretty.SQLiteDatabaseConnection.PrepareStatement(string sql, out System.ReadOnlySpan<byte> tail) Unknown
SQLitePCL.pretty.dll!SQLitePCL.pretty.DatabaseConnection.PrepareStatement(SQLitePCL.pretty.IDatabaseConnection This, string sql) Unknown
InfuseSync!InfuseSync.Storage.Db.HasCheckpoints() Unknown
InfuseSync!InfuseSync.EntryPoints.LibrarySyncManager.ItemUpdated(object sender, MediaBrowser.Controller.Library.ItemChangeEventArgs e) Unknown
Emby.Server.Implementations.dll!Emby.Server.Implementations.Library.LibraryManager.UpdateItems(System.Collections.Generic.List<MediaBrowser.Controller.Entities.BaseItem> items, MediaBrowser.Controller.Entities.BaseItem parent, MediaBrowser.Controller.Library.ItemUpdateType updateReason, bool setDateLastSaved, bool saveMetadata, MediaBrowser.Controller.Providers.MetadataRefreshOptions metadataRefreshOptions, System.Threading.CancellationToken cancellationToken) Unknown
Emby.Server.Implementations.dll!Emby.Server.Implementations.Library.LibraryManager.UpdateItem(MediaBrowser.Controller.Entities.BaseItem item, MediaBrowser.Controller.Entities.BaseItem parent, MediaBrowser.Controller.Library.ItemUpdateType updateReason, MediaBrowser.Controller.Providers.MetadataRefreshOptions metadataRefreshOptions) Unknown
MediaBrowser.Controller.dll!MediaBrowser.Controller.Entities.BaseItem.UpdateToRepository(MediaBrowser.Controller.Library.ItemUpdateType updateReason, MediaBrowser.Controller.Entities.BaseItem parent, MediaBrowser.Controller.Providers.MetadataRefreshOptions metadataRefreshOptions) Unknown
MediaBrowser.Controller.dll!MediaBrowser.Controller.Entities.BaseItem.UpdateToRepository(MediaBrowser.Controller.Library.ItemUpdateType updateReason, MediaBrowser.Controller.Providers.MetadataRefreshOptions metadataRefreshOptions) Unknown
Emby.Providers.dll!Emby.Providers.Manager.MetadataService<MediaBrowser.Controller.Entities.TV.Episode, MediaBrowser.Controller.Providers.EpisodeInfo>.SaveItem(MediaBrowser.Controller.Providers.MetadataResult<MediaBrowser.Controller.Entities.TV.Episode> result, bool isFirstRefresh, MediaBrowser.Model.Configuration.LibraryOptions libraryOptions, MediaBrowser.Controller.Library.ItemUpdateType reason, MediaBrowser.Controller.Providers.IDirectoryService directoryService, MediaBrowser.Controller.Providers.MetadataRefreshOptions metadataRefreshOptions, System.Threading.CancellationToken cancellationToken) Unknown
Emby.Providers.dll!Emby.Providers.Manager.MetadataService<MediaBrowser.Controller.Entities.TV.Episode, MediaBrowser.Controller.Providers.EpisodeInfo>.RefreshMetadata(MediaBrowser.Controller.Entities.BaseItem item, MediaBrowser.Controller.Providers.MetadataRefreshOptions refreshOptions, MediaBrowser.Controller.Entities.BaseItem[] collectionFolders, MediaBrowser.Model.Configuration.LibraryOptions libraryOptions, System.Threading.CancellationToken cancellationToken) Unknown
[Resuming Async Method]
System.Private.CoreLib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<MediaBrowser.Controller.Library.ItemUpdateType>.AsyncStateMachineBox<Emby.Providers.Manager.MetadataService<MediaBrowser.Controller.Entities.TV.Episode, MediaBrowser.Controller.Providers.EpisodeInfo>.<RefreshMetadata>d__10>.MoveNext(System.Threading.Thread threadPoolThread) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.TaskAwaiter.OutputWaitEtwEvents.AnonymousMethod__12_0(System.Action innerContinuation, System.Threading.Tasks.Task innerTask) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.ContinuationWrapper.Invoke() Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action action, bool allowInlining) Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.Task.RunContinuations(object continuationObject) Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.Task.FinishContinuations() Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.Task<System.__Canon>.TrySetResult(System.__Canon result) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.__Canon>.SetExistingTaskResult(System.Threading.Tasks.Task<System.__Canon> task, System.__Canon result) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<Emby.Providers.Manager.RefreshResult>.SetResult(Emby.Providers.Manager.RefreshResult result) Unknown
[Completed] Emby.Providers.dll!Emby.Providers.Manager.MetadataService<MediaBrowser.Controller.Entities.TV.Episode, MediaBrowser.Controller.Providers.EpisodeInfo>.RefreshWithProviders(MediaBrowser.Controller.Providers.MetadataResult<MediaBrowser.Controller.Entities.TV.Episode> metadata, MediaBrowser.Controller.Providers.EpisodeInfo id, MediaBrowser.Controller.Providers.MetadataRefreshMode metadataRefreshMode, bool replaceAllMetadata, MediaBrowser.Controller.Providers.MetadataRefreshOptions options, MediaBrowser.Controller.Entities.BaseItem[] collectionFolders, MediaBrowser.Model.Configuration.LibraryOptions libraryOptions, System.Collections.Generic.List<MediaBrowser.Controller.Providers.IMetadataProvider> providers, Emby.Providers.Manager.ItemImageProvider imageService, System.Threading.CancellationToken cancellationToken) Unknown
System.Private.CoreLib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<Emby.Providers.Manager.RefreshResult>.AsyncStateMachineBox<Emby.Providers.Manager.MetadataService<MediaBrowser.Controller.Entities.TV.Episode, MediaBrowser.Controller.Providers.EpisodeInfo>.<RefreshWithProviders>d__42>.MoveNext(System.Threading.Thread threadPoolThread) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.TaskAwaiter.OutputWaitEtwEvents.AnonymousMethod__12_0(System.Action innerContinuation, System.Threading.Tasks.Task innerTask) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.ContinuationWrapper.Invoke() Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action action, bool allowInlining) Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.Task.RunContinuations(object continuationObject) Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.Task.FinishContinuations() Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.Task<System.__Canon>.TrySetResult(System.__Canon result) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.__Canon>.SetExistingTaskResult(System.Threading.Tasks.Task<System.__Canon> task, System.__Canon result) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<Emby.Providers.Manager.RefreshResult>.SetResult(Emby.Providers.Manager.RefreshResult result) Unknown
[Completed] Emby.Providers.dll!Emby.Providers.Manager.MetadataService<MediaBrowser.Controller.Entities.TV.Episode, MediaBrowser.Controller.Providers.EpisodeInfo>.ExecuteRemoteProviders(MediaBrowser.Controller.Providers.MetadataResult<MediaBrowser.Controller.Entities.TV.Episode> temp, MediaBrowser.Model.Configuration.LibraryOptions libraryOptions, string logName, MediaBrowser.Controller.Providers.EpisodeInfo id, MediaBrowser.Controller.Providers.IRemoteMetadataProvider<MediaBrowser.Controller.Entities.TV.Episode, MediaBrowser.Controller.Providers.EpisodeInfo>[] providers, MediaBrowser.Controller.Providers.MetadataRefreshOptions options, System.Threading.CancellationToken cancellationToken) Unknown
System.Private.CoreLib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<Emby.Providers.Manager.RefreshResult>.AsyncStateMachineBox<Emby.Providers.Manager.MetadataService<MediaBrowser.Controller.Entities.TV.Episode, MediaBrowser.Controller.Providers.EpisodeInfo>.<ExecuteRemoteProviders>d__45>.MoveNext(System.Threading.Thread threadPoolThread) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.TaskAwaiter.OutputWaitEtwEvents.AnonymousMethod__12_0(System.Action innerContinuation, System.Threading.Tasks.Task innerTask) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.ContinuationWrapper.Invoke() Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action action, bool allowInlining) Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.Task.RunContinuations(object continuationObject) Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.Task.FinishContinuations() Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.Task<System.__Canon>.TrySetResult(System.__Canon result) Unknown
MovieDb!MovieDb.MovieDbEpisodeProvider.GetMetadata(MediaBrowser.Controller.Providers.RemoteMetadataFetchOptions<MediaBrowser.Controller.Providers.EpisodeInfo> options, System.Threading.CancellationToken cancellationToken) Unknown
[Resuming Async Method]
System.Private.CoreLib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<MediaBrowser.Controller.Providers.MetadataResult<MediaBrowser.Controller.Entities.TV.Episode>>.AsyncStateMachineBox<MovieDb.MovieDbEpisodeProvider.<GetMetadata>d__4>.MoveNext(System.Threading.Thread threadPoolThread) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.TaskAwaiter.OutputWaitEtwEvents.AnonymousMethod__12_0(System.Action innerContinuation, System.Threading.Tasks.Task innerTask) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.ContinuationWrapper.Invoke() Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action action, bool allowInlining) Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.Task.RunContinuations(object continuationObject) Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.Task.FinishContinuations() Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.Task<System.__Canon>.TrySetResult(System.__Canon result) Unknown
MovieDb!MovieDb.MovieDbProviderBase.GetEpisodeInfo(string tmdbId, int seasonNumber, int episodeNumber, string language, MediaBrowser.Controller.Providers.IDirectoryService directoryService, System.Threading.CancellationToken cancellationToken) Unknown
[Resuming Async Method]
System.Private.CoreLib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<MovieDb.MovieDbProviderBase.RootObject>.AsyncStateMachineBox<MovieDb.MovieDbProviderBase.<GetEpisodeInfo>d__21>.MoveNext(System.Threading.Thread threadPoolThread) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.TaskAwaiter.OutputWaitEtwEvents.AnonymousMethod__12_0(System.Action innerContinuation, System.Threading.Tasks.Task innerTask) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.ContinuationWrapper.Invoke() Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action action, bool allowInlining) Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.Task.RunContinuations(object continuationObject) Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.Task.FinishContinuations() Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.Task<System.__Canon>.TrySetResult(System.__Canon result) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<System.__Canon>.SetExistingTaskResult(System.Threading.Tasks.Task<System.__Canon> task, System.__Canon result) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<MovieDb.MovieDbProviderBase.RootObject>.SetResult(MovieDb.MovieDbProviderBase.RootObject result) Unknown
[Completed] Emby.Server.Implementations.dll!Emby.Common.Implementations.Serialization.JsonSerializer.DeserializeFromFileAsync<MovieDb.MovieDbProviderBase.RootObject>(string file) Unknown
System.Private.CoreLib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder<MovieDb.MovieDbProviderBase.RootObject>.AsyncStateMachineBox<Emby.Common.Implementations.Serialization.JsonSerializer.<DeserializeFromFileAsync>d__9<MovieDb.MovieDbProviderBase.RootObject>>.MoveNext(System.Threading.Thread threadPoolThread) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.TaskAwaiter.OutputWaitEtwEvents.AnonymousMethod__12_0(System.Action innerContinuation, System.Threading.Tasks.Task innerTask) Unknown
System.Private.CoreLib.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.ContinuationWrapper.Invoke() Unknown
System.Private.CoreLib.dll!System.Threading.Tasks.AwaitTaskContinuation.System.Threading.IThreadPoolWorkItem.Execute() Unknown
System.Private.CoreLib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch() Unknown
System.Private.CoreLib.dll!System.Threading.PortableThreadPool.WorkerThread.WorkerThreadStart() Unknown
System.Private.CoreLib.dll!System.Threading.Thread.StartCallback() Unknown
[Async Call Stack]
[Async] MediaBrowser.Controller.dll!MediaBrowser.Controller.Entities.BaseItem.RefreshMetadata(MediaBrowser.Controller.Providers.MetadataRefreshOptions options, MediaBrowser.Controller.Entities.BaseItem[] collectionFolders, MediaBrowser.Model.Configuration.LibraryOptions libraryOptions, System.Threading.CancellationToken cancellationToken) Unknown
[Async] StrmAssistant!StrmAssistant.QueueManager.MediaInfoExtract_ProcessItemQueueAsync.AnonymousMethod__1() Unknown
[Async] StrmAssistant!StrmAssistant.QueueManager.MediaInfoExtract_ProcessTaskQueueAsync.AnonymousMethod__0() Unknown
[Async] System.Private.CoreLib.dll!System.Threading.Tasks.Task.Run Unknown
- 高效媒体信息提取API,可避免提取媒体信息的同时重复请求元数据。请不要开启以下这个媒体库的高级选项(默认就是不选的)。当Emby没能获取到最新元数据时,作为最后的备选,提取了内嵌视频轨道的标题,即如图
A @ Wiki
。