Jellyfin Forum
SOLVED: Playing .webm on Google TV (Sony) - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: SOLVED: Playing .webm on Google TV (Sony) (/t-solved-playing-webm-on-google-tv-sony)



Playing .webm on Google TV (Sony) - Kotor1984 - 2023-11-10

I was using the Jellyfin app on my Sony TV running Google Android. When playing movie with webm file extension, Jellyfin app cannot play it, always error.

Is this not supported on Google TV? The TV model is Sony X95L (2023).

If I use Jellyfin app on my Android phone, and stream it to TV via Chromecast, it works.

So, I am wondering if there's any way to fix this issue.


RE: Playing .webm on Google TV (Sony) - TheDreadPirate - 2023-11-10

Can you share your logs with us? And what codec is the video using? webm is is just the container.


RE: Playing .webm on Google TV (Sony) - Kotor1984 - 2023-11-11

I think the problem might be the AV01 codec. I changed to MP4, same error.

https://pastebin.com/bKuGhgRB

If I choose VP9+MP4, no error. I tried different video with AV01, always error.

AVC1+MP4, no error.

Quote:Edit (thedreadpirate): please don't talk about how you acquired media here.

If I use Jellyfin app on my Android phone, stream to Chromecast to the same TV, it can play AV01+MP4/webm successfully.


RE: Playing .webm on Google TV (Sony) - TheDreadPirate - 2023-11-11

Your server is trying to transcode but can't initialize your Intel iGPU. Can you describe your setup? Looks like your OS is Ubuntu 20.04. Any virtualization? What are your hardware specs?


RE: Playing .webm on Google TV (Sony) - Kotor1984 - 2023-11-11

The Jellyfin is installed on Proxmox LXC container. Hardware is Beelink U59 Pro with Intel processor N5105. I thought I got the hardware transcoding works, but now I am not sure anymore. Is there any way to test it?


RE: Playing .webm on Google TV (Sony) - TheDreadPirate - 2023-11-12

Playing HEVC in Chrome or Firefox will trigger a transcode to H264.

Also, what codecs did you select in the Playback dashboard?

https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video#Hardware_decoding_and_encoding

If you selected accelerated DECODING of AV1, your iGPU doesn't support it. Uncheck the box and it will software decode.


RE: Playing .webm on Google TV (Sony) - Kotor1984 - 2023-11-12

The AV1 is not selected in the Transcode settings:

https://ibb.co/CVqC7Fb

Here is "vainfo" command, it can open the driver:

root@jellyfin:~# vainfo

error: can't connect to X server!
libva info: VA-API version 1.7.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_7
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.7 (libva 2.6.0)
vainfo: Driver version: Intel iHD driver for Intel® Gen Graphics - 20.1.1 ()
vainfo: Supported profile and entrypoints
      VAProfileNone                  : VAEntrypointVideoProc
      VAProfileNone                  : VAEntrypointStats
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264Main              : VAEntrypointVLD
      VAProfileH264Main              : VAEntrypointEncSliceLP
      VAProfileH264High              : VAEntrypointVLD
      VAProfileH264High              : VAEntrypointEncSliceLP
      VAProfileJPEGBaseline          : VAEntrypointVLD
      VAProfileJPEGBaseline          : VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileHEVCMain              : VAEntrypointVLD
      VAProfileHEVCMain              : VAEntrypointEncSliceLP
      VAProfileHEVCMain10            : VAEntrypointVLD
      VAProfileHEVCMain10            : VAEntrypointEncSliceLP
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointEncSliceLP
      VAProfileVP9Profile1            : VAEntrypointVLD
      VAProfileVP9Profile1            : VAEntrypointEncSliceLP
      VAProfileVP9Profile2            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointEncSliceLP
      VAProfileVP9Profile3            : VAEntrypointVLD
      VAProfileVP9Profile3            : VAEntrypointEncSliceLP
      VAProfileHEVCMain422_10        : VAEntrypointVLD
      VAProfileHEVCMain444            : VAEntrypointVLD
      VAProfileHEVCMain444            : VAEntrypointEncSliceLP
      VAProfileHEVCMain444_10        : VAEntrypointVLD
      VAProfileHEVCMain444_10        : VAEntrypointEncSliceLP
root@jellyfin:~#

Also this info:

root@jellyfin:~# groups jellyfin

jellyfin : jellyfin video render
root@jellyfin:~#
root@jellyfin:~# ls -l /dev/dri
total 0
drwxr-xr-x 2 root root        80 Oct  3 16:15 by-path
crw-rw---- 1 root video  226,  0 Oct  3 16:15 card0
crw-rw---- 1 root syslog 226, 128 Oct  3 16:15 renderD128
root@jellyfin:~#

I also tested playing HEVC on Edge, got the same error Slightly-frowning-face

[AVHWDeviceContext @ 0x55797eeddc00] No VA display found for any default device.
Device creation failed: -22.
Failed to set value 'vaapi=va:,kernel_driver=i915,driver=iHD' for option 'init_hw_device': Invalid argument
Error parsing global options: Invalid argument


RE: Playing .webm on Google TV (Sony) - Kotor1984 - 2023-11-12

I solved it!

I read this post:
Intel Quick Sync Video not working. : jellyfin (reddit.com)

Then I did this on the Jellyfin LXC:

root@jellyfin: /# chmod -R 777 /dev/dri
root@jellyfin: /# ls -l /dev/dri
total 0
drwxrwxrwx 2 root root        80 Oct  3 16:15 by-path
crwxrwxrwx 1 root video  226,  0 Oct  3 16:15 card0
crwxrwxrwx 1 root syslog 226, 128 Oct  3 16:15 renderD128
root@jellyfin: /#

Then I can play all those videos with AV01 codec on my TV using Jellyfin app, also HEVC from Edge working.

New log playing AV01:
/videos/cdf8fccb-0183-cecc-0cbb-142999d7a164/hls1/main/0.ts{"Protocol":0,"Id - Pastebin.com

New log playing HEVC on Edge:
/videos/90d6baae-85e6-acc3-0f5a-4a1d9e2e77a5/hls1/main/0.ts{"Protocol":0,"Id - Pastebin.com

Those indicated that hardware acceleration transcoding works, right?

So, it was permission issue. That solution does not look nice (chmod 777), but at least it works.

Do you know what should be the correct permissions?


RE: Playing .webm on Google TV (Sony) - TheDreadPirate - 2023-11-12

You should be adding the container user to the group that owns renderD128. For some reason "syslog" in your output. Changing the permissions to 777 will be reset next reboot. But adding your user to "syslog" (usually "render") will survive reboots.


RE: Playing .webm on Google TV (Sony) - Kotor1984 - 2023-11-13

Yes, that's it.

I added this on the LXC configuration:

lxc.hook.pre-start: sh -c "chown 0:44 /dev/dri/renderD128"

That set the correct group during restart of the system:

root@jellyfin:~# ls -l /dev/dri
total 0
drwxrwxrwx 2 root root        80 Oct  3 16:15 by-path
crwxrwxrwx 1 root video 226,  0 Oct  3 16:15 card0
crwxrwxrwx 1 root video 226, 128 Oct  3 16:15 renderD128
root@jellyfin:~#

Issue is fixed :)