The Clip is cut from whatever stream sits at that index #42
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
mobrule/kurageyomi#42
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What to build
Cut the Clip from the audio stream, not from whatever stream happens to sit at that index.
The failure, from the first real Export. Every Clip failed with ffmpeg exit 234:
-map 0:{index}matched a stream — an unmatched map says so explicitly and this did not — and then-vn -sn -dnremoved it. That only happens when the mapped stream is not audio. The source is an mkv carrying around thirty streams including font attachments, so being one slot out is enough.The comment in
FfmpegExtractionEncoderstates the assumption that broke: "The Capture's index is the stream's position in the whole file, which is what Jellyfin reports and what ffmpeg's0:nmeans." One of those two halves is untrue for this file, and the plugin has no business guessing which.Resolve it server-side against what Jellyfin already knows.
MediaSourceLocatorhasILibraryManagerand the media source in hand, and a media source carries itsMediaStreams with both their index and their type. Look the Capture's index up there, confirm it is an audio stream, and pass the index that actually addresses audio. When the stored index does not name an audio stream — an old Capture, a re-indexed file, a session that reported something else — fall back to the media source's default audio stream rather than failing: a Clip of the wrong language is recoverable and a Capture that never cuts is not.Say what happened when it still fails. The current failure reports ffmpeg's tail, which is 400 characters of font attachments and no mention of which stream was asked for. The reason should name the index that was mapped and what type it turned out to be. This is the fourth failure in this area where the message named a conclusion rather than the fact that ends the search.
Acceptance criteria
failedin the queue succeed on a retry, without being re-minedBlocked by
None - can start immediately.