fredrikburmester / streamyfin

A Jellyfin client build with Expo
Mozilla Public License 2.0
701 stars 18 forks source link

Only audio and QuickTime Splash Screen instead of video #67

Open fidoriel opened 3 weeks ago

fidoriel commented 3 weeks ago

Describe the bug Sometimes only audio is played. Video Shows only QuickTime symbol. I will investigate server logs to give a more precise error log.

To Reproduce Steps to reproduce the behavior:

  1. Server with disabled transcoding. MKV file with h265.
  2. Play this movie. Only audio plays, video shows QuickTime symbol. Video played in previous version fine.

Smartphone:

fredrikburmester commented 3 weeks ago

This is because the client does not support that file format/client. Since the server has transcoding turned off you can't play the file on the client. This is a limitation of apple/android devices and the default supported codecs.

fidoriel commented 3 weeks ago

That is expected behavior for formats that are not supported out of the box. But imho h265 is supported out of the box on ios. With a previous version of streamyfin the same movie worked fine. Some release last week broke it.

Video

fredrikburmester commented 3 weeks ago

What's the container? Mkv?

fidoriel commented 3 weeks ago

Yes, MKV Container. But it should remux it? Audio works.

fredrikburmester commented 3 weeks ago

I don't know how Jellyfin works but I don't think it can remux if transcoding is turned off on the server. We could maybe build remuxing into the app from mkv to mp4 container (?). If that's possible.

michi7801 commented 3 weeks ago

I'm having the same issue with h265 playback on the iOS app. Except I'm using a mp4 container. I have not tested playback with previous versions of the app though.

It works fine on the official app and h265 is definitely supported on my iPhone 12...

It is also marked as supported by the Jellyfin App and SwiftFin in the docs.

https://jellyfin.org/docs/general/clients/codec-support/

fredrikburmester commented 3 weeks ago

That's interesting! Could you send the information about that file? @michi7801

michi7801 commented 3 weeks ago

Sure thing:

Title: 1080p HEVC SDR Codec: HEVC AVC: No Profile: Main Level: 120 Resolution: 1920x1080 Aspect Ratio: 16:9 Anamorphic: No Interlaced: No Framerate: 25 Bitrate: 1429 kbps Bit Depth: 8 bit Video Range: SDR Video Dynamic Range: SDR Color Space: bt709 Color Transfer: bt709 Primaries: bt709 Pixel Format: yuv420p Reference Frames: 1

fredrikburmester commented 3 weeks ago

That file seems quite small, would you mind sharing it with me? Send me an email and i'll send you an upload link. fredrik.burmester@gmail.com @michi7801

fredrikburmester commented 3 weeks ago

I've looked into this, it seems that iOS devices do not support MPEG-H Part 2/HEVC, not even on my iPhone 15 Pro. This is causing the video playback to fail. A solution for this is to switch to the "Old" profile in the settings, forcing the transcoding from HEVC->H264.

Now, why it works in other apps but not Streamyfin is probably because of the Device Profile we're using, even though we're using the same as the official Jellyfin app...

fidoriel commented 3 weeks ago

hevc/h265 is supported on iOS: https://support.apple.com/en-us/116944 Also safari on iOS seems to support the playback of h265. https://caniuse.com/hevc Correct me if I am wrong, but WebKit is used to render expo?

michi7801 commented 3 weeks ago

@fredrikburmester First of all: Thank you for looking into this issue so quickly.

Your findings made me retest my previous statements about what's working and what's not:

I love the look and feel of StreamyFin but my poor Synology can't handle that for multiple users.

fredrikburmester commented 3 weeks ago

Yeah Swiftfin uses VLC player which supports many more formats/codecs than the default iOS video player.