Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Playback error when playing mkv files without transcoding on version 10.8.0. Worked on older versions #3690

Closed
kausar007 opened this issue Jun 11, 2022 · 20 comments
Labels
stale No activity for an extended length of time

Comments

@kausar007
Copy link

I am using docker. I get the following error while playing media files that are in mkv containers. MP4 files work fine.

Playback Error
This client isn't compatible with the media and the server isn't sending a compatible media format.

Media info

Container: mkv
Path: /media/path_to_file.mkv
Size: 78 MB


Video
Title: 576p H264 SDR
Codec: H264
AVC: No
Profile: High
Level: 41
Resolution: 704x528
Aspect ratio: 4:3
Interlaced: No
Framerate: 23.976025
Bitrate: 490 kbps
Bit depth: 8 bit
Video range: SDR
Pixel format: yuv420p
Ref frames: 1
NAL: 0


Audio
Title: AAC - Stereo - Default
Codec: AAC
Profile: HE-AAC
Layout: stereo
Channels: 2 ch
Bitrate: 192 kbps
Sample rate: 48000 Hz
Default: Yes
Forced: No
External: No


Subtitle
Title: Undefined - SRT - External
Codec: SRT
Default: No
Forced: No
External: Yes
@luky92
Copy link

luky92 commented Jun 13, 2022

re scan the library you will be fine

@bekon16
Copy link

bekon16 commented Jun 14, 2022

Same for me. Rescan didnt helped me.
I have Debian 11, Jellyfin installed from repo.
All media in mkv container, h264 video and aac for audio - works fine on previous version - 10.7.7.
Now without enabled transcoding can not play movies in web browser.

[2022-06-14 16:21:19.720 +02:00] [WRN] Slow HTTP Response from "http://someaddress.com/Items/914ddbab5429b1ab429e97c3d2f3bea9/Images/Backdrop/0?maxWidth=1920&tag=3fb8ac1d486bec6b9b8a4c5e4493e316&quality=80" to "192.168.1.12" in 0:00:00.7207693 with Status Code 200 [2022-06-14 16:21:21.757 +02:00] [INF] User policy for "someusername". EnablePlaybackRemuxing: False EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: False [2022-06-14 16:21:21.758 +02:00] [INF] StreamBuilder.BuildVideoItem( Profile="Anonymous Profile", Path="/some/path/to/movies/Clean_2022/Clean_2022.mkv", AudioStreamIndex=1, SubtitleStreamIndex=-1 ) => ( PlayMethod=Transcode, TranscodeReason=ContainerNotSupported ) "media:/videos/914ddbab-5429-b1ab-429e-97c3d2f3bea9/stream?MediaSourceId=914ddbab5429b1ab429e97c3d2f3bea9&AudioStreamIndex=1&api_key=<token>&SubtitleMethod=Encode&RequireAvc=false&Tag=b84891d91a0043dce9d5d2f564543b64&TranscodeReasons=ContainerNotSupported" [2022-06-14 16:21:22.191 +02:00] [INF] Playback stopped reported by app "Jellyfin Web" "10.8.0" playing "Clean". Stopped at "0" ms [2022-06-14 16:21:22.839 +02:00] [WRN] Slow HTTP Response from "http://someaddress.com/Sessions/Playing" to "192.168.1.12" in 0:00:00.7486395 with Status Code 204 [2022-06-14 16:21:23.175 +02:00] [WRN] Slow HTTP Response from "http://someaddress.com/Sessions/Playing/Stopped" to "192.168.1.12" in 0:00:00.9861072 with Status Code 204

Any idea how to fixit without reverting backup?

@dmitrylyzo
Copy link
Contributor

AFAIK, MKV playback in browsers requires Remuxing to be enabled because browsers don't support MKV (but WEBM as a subset).

@bekon16
Copy link

bekon16 commented Jun 15, 2022

That's how it looks now:
On version: 10.8 I have to enable "Allow video playback that requires conversion without re-encoding" to play videos.
With this option enabled CPU is consumed - which is obvious.
2
As you can see on attached picture, every time the movie is playing CPU is used.

Same movie on version 10.7.7 can be played in the same browser without any problem - of course option "Allow video playback that requires conversion without re-encoding" is disabled. Enabled is only "Allow media playback".

It would be nice if I could play movies natively like before.

@dmitrylyzo
Copy link
Contributor

If you still have 10.7.7, could you check what method it uses (Playback Info)? Direct playing or Direct streaming.
Allow video playback that requires conversion without re-encoding was ignored (or something like that), iirc. But it could have been before 10.7.x - I am not sure.

Also, what browser? Maybe some can play MKV directly 🤔

@bekon16
Copy link

bekon16 commented Jun 15, 2022

Hi,
I have both of them for test purposes - same virtual machine but one is upgraded and one unupgraded.
For 10.7.7 - Playback Info

Playback Info
Player:
Html Video Player
Play method:
Direct playing
Protocol:
https
Stream type:
Video
Video Info
Player dimensions:
1536x753
Video resolution:
1920x1080
Dropped frames:
0
Corrupted frames:
0
Original Media Info
Container:
webm
Size:
4.1 GiB
Bitrate:
10.5 Mbps
Video codec:
H264 High
Video bitrate:
9.6 Mbps
Video range:
SDR
Color space:
bt709
Color transfer:
bt709
Color primaries:
bt709
Audio codec:
AAC LC
Audio bitrate:
320 kbps
Audio channels:
6
Audio sample rate:
48000 Hz

For 10.8

Playback Info
Player:
Html Video Player
Play method:
Remuxing
Protocol:
https
Stream type:
HLS
Video Info
Player dimensions:
1920x969
Video resolution:
1920x1080
Dropped frames:
0
Corrupted frames:
0
Remuxing Info
Video codec:
H264 (direct)
Audio codec:
AAC (direct)
Original Media Info
Container:
webm
Size:
4.1 GiB
Bitrate:
10.5 Mbps
Video codec:
H264 High
Video bitrate:
9.6 Mbps
Video range:
SDR
Color space:
bt709
Color transfer:
bt709
Color primaries:
bt709
Audio codec:
AAC LC
Audio bitrate:
320 kbps
Audio channels:
6
Audio sample rate:
48000 Hz

Webbrowser - Chrome - Version 102.0.5005.115 (Official Build) (64-bit)

@kausar007
Copy link
Author

re scan the library you will be fine

Rescan did not fix the problem.

@PillowPille
Copy link

I have the same problem, i cant play mkv´s without transcoding!
With 10.7.7 works without any problem

@t3hmrman
Copy link

So it looks like Windows has a problem playing MKV for people who have never installed VLC.

@dmitrylyzo Sorry but can you note where this setting is? I'm running 10.8.3 (and also upgraded to 10.8.5to check) and cannot find the "Transcoding" menu -- the only related setting I see under Settings > Playback is "Prefer fMP4-HLS Media Container".

Is the Settings > Playback > Transcoding menu only on some other version?

I referenced the docs on transcoding and couldn't find the menu -- I'm just trying to do slow CPU transcoding (no devices are passed through).

For now I'm just converting .mkv files to .mp4 inside the container to ensure that they're visible.

@dmitrylyzo
Copy link
Contributor

@t3hmrman it is per user in the Dashboard: Dashboard > Users > user.

As far as I remember, the problem is that browsers (Chrome at least) can only play WebM (a subset of MKV), before 10.8 we had a non-strict condition that passed MKV as is (direct) and it worked (in Chrome), but this MKV support is not documented (by Chrome) and some MKVs (rare?) still don't work (from what I have heard).

In 10.8 the condition became strict and cut off MKV.
So MKV requires remuxing now.

@t3hmrman
Copy link

t3hmrman commented Oct 15, 2022

Hey @dmitrylyzo thanks for taking time out of your day to explain this -- TIL about WebM being a subset of MKV, I guess it's WebMatroska (? wikipedia doesn't confirm).

I will remux to my heart's content! I wonder if a nice sidecar container that watches a directory and does nothing but try and re-mux it would be a good idea.

[EDIT] - Just realized Jellyfin has a plugin system, I'm going to see if I can make one!

[EDIT2] - Turns out transcoding was already enabled, but I think I'll live with just making sure to convert files with ffmpeg beforehand in the mean time.

@dmitrylyzo
Copy link
Contributor

dmitrylyzo commented Oct 15, 2022

Turns out transcoding was already enabled

Actually, it should be remuxing - copy video and audio as is in the supported container (TS, I think). This is much less CPU usage, but still requires some space in the transcoding folder.

EDIT: afair, we are not going to bring this undocumented MKV support back, but some kind of experimental option to customize the device profile (client-side) would be useful.

@t3hmrman
Copy link

t3hmrman commented Oct 15, 2022

Actually, it should be remuxing - copy video and audio as is in the supported container (TS, I think). This is much less CPU usage, but still requires some space in the transcoding folder.

Sorry but again I don't see the word "remux" any where in either Dashboard > Users > User or Dashboard > Playback -- were you just correcting my use of the word "transcode" when I should have said "remux"?

I just want to make sure I'm not somehow missing another option -- Jellyfin does not do remuxing right -- there's no operation to trigger it for a given file (and there won't be unless someone makes a plugin or something)?

EDIT: afair, we are not going to bring this undocumented MKV support back, but some kind of experimental option to customize the device profile (client-side) would be useful.

All good, that's very reasonable -- I could make some changes to documentation if you want this to be a bit more pronounced and make a commit.

I do want to note that .mkv playback does work on Linux -- it was only on Windows that the error was happening. I suspect that a Windows machine with VLC installed would actually be able to play on the Web (after VLC installed required codecs) and/or be able to play from VLC (ex. via the streaming link).

I don't own a Windows machine, so I can't test too easily.

@dmitrylyzo
Copy link
Contributor

In my original post I refer to
IMG_20221015_112235
It should be in Dashboard > Users > user.

I do want to note that .mkv playback does work on Linux -- it was only on Windows that the error was happening. I suspect that a Windows machine with VLC installed would actually be able to play on the Web (after VLC installed required codecs) and/or be able to play from VLC (ex. via the streaming link).

Aha, MKV seems to be enabled for Edge Chromium on Windows (#1660):

if (browser.edgeChromium && browser.windows) {
return true;
}

In this case it should be DirectPlay (if it really supports MKV).

@t3hmrman
Copy link

Thanks for the clarification -- all of those were checked for me:

jellyfin media playback settings

Aha, MKV seems to be enabled for Edge Chromium on Windows (#1660):

This perfectly explains it -- the person who was trying to use my instance is not on Edge Chromium but this makes sense. Thank you for digging through and getting the pointer to the code, looking at it now.

@have-a-boy
Copy link

This is a problem in the Jellyfin WebOS client, which does not seem to be able to reliably detect supported codecs, effectively not just remuxing files that could be directly played before 10.8, but transcoding them instead.

@jellyfin-bot
Copy link
Collaborator

This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.

If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.

This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.

@jellyfin-bot jellyfin-bot added the stale No activity for an extended length of time label May 3, 2023
@Valeriemary
Copy link

Valeriemary commented May 3, 2023 via email

@jellyfin-bot jellyfin-bot removed the stale No activity for an extended length of time label May 4, 2023
@fantom-exe
Copy link

fantom-exe commented May 22, 2023

I also have the same issue on the latest version of Jellyfin. Only devices that don't play MKV files are Roku 4k and Android tablet.

@jellyfin-bot
Copy link
Collaborator

This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.

If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.

This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.

@jellyfin-bot jellyfin-bot added the stale No activity for an extended length of time label Sep 20, 2023
@jellyfin-bot jellyfin-bot closed this as not planned Won't fix, can't repro, duplicate, stale Oct 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale No activity for an extended length of time
Projects
None yet
Development

No branches or pull requests

10 participants