Plex for Android 9.16 forces AV1 Direct Play on devices without AV1 hardware support

Server Version#: 1.31.1.6716
Player Version#:9.16.1.38616

Plex for Android 9.16 forces AV1 Direct Play on devices without AV1 hardware support. It happens on my Chromecast with Google TV 4K, Samsung S22(Snapdragon), and Google Pixel 3XL.

Downgrading to Plex for Android 9.15 fixes the issue and AV1 is transcoded as needed.

1 Like

I’m also seeing this issue on Plex on Android TV for my Sony A1E.

I am seeing this issue on Nvidia Shield…all AV1 files now play a black screen so it appears to not even try and do software decoding (not even sure if the shield can handle software av1 decoding)…I believe I have the 2017 Sheild not the newest one.

Same thing with my Chromecast, just a black screen. My s22 is capable of software decoding AV1 so it plays fine.

Also running into this issue on my Nvidia Shield. I can force a conversion, but it get annoying having to do it with every tv show.

Apparently is also crashing my Pixel 5a android phone when trying to play it on that due the direct streaming…

Still not fixed in Android 9.17

How are you forcing it to transcode? The only thing I’ve been able to find is lowering the bandwidth limit, but that’s less than ideal…

After you start the video. Click on the 3 dots and go to playback settings, quality, then select convert automatically.

So they probably broke it in the update to allow direct streaming of AV1 files (coincide with HW transcoding of AV1?) and not a peep from anybody that can actually fix it or to even acknowledge that they have seen this. Don’t get me wrong I would love the concept of direct stream and HW transcode of AV1 but this outcome is far far worse then having basic SW transcoding of AV1 files…

Still not fixed in Plex for Android 9.19.

I have this issue on my Chromecast with GoogleTV too! Was trying to figure out why nothing played then noticed it’s the new update with the new UI. Running 9.19.0.177 not working!

Apparently even using custom client profiles does not even help in forcing transcoding of AV1 files…wondering if somebody from plex can let me know if custom client profiles are still even a thing and why it would still direct stream AV1 with the following profile:

<?xml version="1.0" encoding="utf-8"?>
<Client name="SHIELD Android TV">
  <Identification>
    <Header name="User-Agent" substring="SHIELD Android TV" />
  </Identification>
  <TranscodeTargets>
    <VideoProfile container="mkv" codec="h264" audioCodec="opus" context="streaming" />
    <MusicProfile container="flac" codec="flac" id="StereoMusicTranscodeProfile" />
    <PhotoProfile container="jpeg" />
  </TranscodeTargets>
  <DirectPlayProfiles>
    <VideoProfile container="mkv" codec="hevc,h265,mpeg1video,mpeg2video,h264,mpeg4" audioCodec="eac3,ac3,aac,mp3,mp2,pcm,flac,alac,truehd,dca,opus" subtitleFormat="srt,ass,smi,ssa,subrip,pgs"/>
    <VideoProfile container="mp4" codec="hevc,h265,mpeg1video,mpeg2video,h264,mpeg4" audioCodec="eac3,ac3,aac,mp3,mp2,pcm,flac,alac,truehd,dca,opus" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
    <VideoProfile container="asf" codec="wmv3,wmv3,vc1" audioCodec="wmav2,wmav2,wmapro,wmavoice,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
    <VideoProfile container="avi" codec="h264,msmpeg4v3,mpeg4,mjpeg" audioCodec="mp3,ac3,eac3,dca,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
    <VideoProfile container="mpeg" codec="h264,mpeg1video,mpeg2video" audioCodec="mp2,mp3,ac3,eac3,aac,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
    <VideoProfile container="flv" codec="h264" audioCodec="aac,ac3,eac3,mp3,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
    <VideoProfile container="mpegts" codec="h264,mpeg2video,vc1" audioCodec="mp2,mp3,ac3,eac3,dca,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
    <VideoProfile container="wtv" codec="mpeg2video" audioCodec="ac3,eac3,aac,pcm"/>
    <VideoProfile container="3gpp" codec="h264,mpeg4" audioCodec="aac,he-aac"/>
    <MusicProfile container="mp4" codec="aac" />
    <MusicProfile container="mp3" codec="mp2,mp3" />
    <MusicProfile container="flac" codec="flac" />
    <MusicProfile container="ogg" codec="vorbis" />
    <MusicProfile container="ac3" codec="ac3"/>
    <MusicProfile container="wav" codec="pcm"/>
    <PhotoProfile container="jpeg,gif,bmp,png" />
  </DirectPlayProfiles>
  <ContainerProfiles>
    <VideoContainer name="mp4">
      <Limitations>
        <Match name="part.optimizedForStreaming" value="1" />
      </Limitations>
    </VideoContainer>
  </ContainerProfiles>
  <CodecProfiles>
    <VideoCodec name="*">
      <Limitations>
        <UpperBound name="video.width" value="3840" isRequired="true" />
        <UpperBound name="video.height" value="2160" isRequired="true" />
        <UpperBound name="video.bitDepth" value="10" />
      </Limitations>
    </VideoCodec>
    <VideoCodec name="h264">
      <Limitations>
        <Match name="video.profile" list="baseline|main|high" />
      </Limitations>
    </VideoCodec>
    <VideoAudioCodec name="opus">
      <Limitations>
        <UpperBound name="audio.channels" value="8" />
      </Limitations>
    </VideoAudioCodec>
  </CodecProfiles>
</Client>

Same here.
I have Nvidia SHIELD TV 2019 with latest installed version of Plex from PlayStore and latest version of Plex Server.

When tried to play AV1 video I hear a sound, but with black screen and when check nvidia-smi on my server I dont see transcoding

For test can be used: https://woolyss.com/f/caminandes-1-llama-drama-av1-opus.webm that I found from internet - AV1 video + Opus Audio Codec

Plex for Android 9.20 still doesn’t fix this issue.

I recently switched to an Ubuntu Plex Server and the problem persists so it’s not a Windows issue.

Will a Plex employee please take a look at this issue?

@ChuckPa
@anon18523487
@DaveBinM

We enable AV1 support if your device has capabilities, so its likely your device is reporting AV1 support and the video you are attempting to play is outside of the devices capabilities.

Would you be able to replicate the issue, and then fetch the logs from Plex and we can take a look? Steps for fetching the logs are available here; https://support.plex.tv/articles/201573117-android-android-tv-fire-tv-logs/

@sixones

PlexLogs.txt (68.0 KB)

My Chromecast with GTV 4K only shows a black screen with sound. Plex Dashboard shows the file Direct Playing.

If I manually lower the quality and force a transcode, the file plays normally. Downgrading to Plex for Android 9.15 will also automatically transcode the file to play normally. As others in this thread have mentioned, it also affects the Shield and other Android devices.

The same file has no problem Direct Playing on my Chromecast with GTV HD which does have AV1 hardware support.

It seems that starting from Plex for Android 9.16, you guys enabled AV1 Direct Play on all Android devices, not just the ones with AV1 Hardware support.

I appreciate people looking into this! I have both Chromecast with Google TV devices, the older 4k one (without AV1 decoding support) and the newer HD one (with AV1 decoding support). I followed the instructions for capturing the logs and there’s some clear differences.

For the one with hardware decoding support:

04-19 19:50:26.489  i: [PlaybackManager] Preparing for caminandes-1-llama-drama-av1-opus
04-19 19:50:26.490  i: [DefaultPlaybackManager] Passthrough is enabled.
04-19 19:50:26.499  i: [VideoUtils] MediaCodec found (OMX.amlogic.av1.decoder.awesome2) for video/av01
04-19 19:50:26.500  i: [VideoUtils] MediaCodec found (OMX.amlogic.avc.decoder.awesome2) for video/avc
04-19 19:50:26.501  i: [VideoUtils] MediaCodec found (OMX.amlogic.hevc.decoder.awesome2) for video/hevc
04-19 19:50:26.503  i: [VideoUtils] MediaCodec found (OMX.amlogic.mpeg4.decoder.awesome2) for video/mp4v-es
04-19 19:50:26.505  i: [VideoUtils] MediaCodec found (OMX.amlogic.vp8.decoder.sw) for video/x-vnd.on2.vp8
04-19 19:50:26.506  i: [VideoUtils] MediaCodec found (OMX.amlogic.vp9.decoder.awesome2) for video/x-vnd.on2.vp9
04-19 19:50:26.510  i: [MediaCodecCaps] Support detected: (audio/raw, Max: 8)
04-19 19:50:26.511  i: [MediaCodecCaps] Not support: audio/mpeg-L1
04-19 19:50:26.512  i: [MediaCodecCaps] Not support: audio/mpeg-L2
04-19 19:50:26.512  i: [MediaCodecCaps] Support detected: (audio/mpeg, Max: 2)
04-19 19:50:26.513  i: [MediaCodecCaps] Not support: audio/ac3
04-19 19:50:26.514  i: [MediaCodecCaps] Not support: audio/eac3
04-19 19:50:26.515  i: [MediaCodecCaps] Not support: audio/vnd.dts
04-19 19:50:26.516  i: [MediaCodecCaps] Not support: audio/vnd.dts.hd
04-19 19:50:26.517  i: [MediaCodecCaps] Not support: audio/true-hd
04-19 19:50:26.534  i: [DefaultPlaybackManager] No codecs being downloaded.

(skip many lines)

04-19 19:50:28.173  i: [ExoPlayer][EventLogger] tracks [eventTime=1.46, mediaPos=0.00, window=0, period=0
04-19 19:50:28.174  i: [ExoPlayer][EventLogger]   group [
04-19 19:50:28.175  i: [ExoPlayer][EventLogger]     [X] Track:0, id=0, mimeType=video/av01, codecs=av1, res=854x480, fps=24.0, supported=YES
04-19 19:50:28.178  i: [ExoPlayer][EventLogger]   ]
04-19 19:50:28.179  i: [ExoPlayer][EventLogger]   group [
04-19 19:50:28.180  i: [ExoPlayer][EventLogger]     [X] Track:0, id=1, mimeType=audio/opus, bitrate=0, codecs=opus, channels=2, sample_rate=48000, language=unknown, selectionFlags=[default,forced], supported=YES
04-19 19:50:28.180  i: [ExoPlayer][EventLogger]   ]

And the one without hardware decoding support:

04-19 19:44:43.633  i: [PlaybackManager] Preparing for caminandes-1-llama-drama-av1-opus
04-19 19:44:43.634  i: [DefaultPlaybackManager] Passthrough is enabled.
04-19 19:44:43.646  i: [DefaultPlaybackManager] No codecs being downloaded.

(skip many lines)

04-19 19:44:44.521  i: [ExoPlayer][EventLogger] tracks [eventTime=0.72, mediaPos=0.00, window=0, period=0
04-19 19:44:44.522  i: [ExoPlayer][EventLogger]   group [
04-19 19:44:44.523  i: [ExoPlayer][EventLogger]     [ ] Track:0, id=0, mimeType=video/av01, codecs=av1, res=854x480, fps=24.0, supported=NO_UNSUPPORTED_TYPE
04-19 19:44:44.524  i: [ExoPlayer][EventLogger]   ]
04-19 19:44:44.525  i: [ExoPlayer][EventLogger]   group [
04-19 19:44:44.526  i: [ExoPlayer][EventLogger]     [X] Track:0, id=1, mimeType=audio/opus, bitrate=0, codecs=opus, channels=2, sample_rate=48000, language=unknown, selectionFlags=[default,forced], supported=YES
04-19 19:44:44.527  i: [ExoPlayer][EventLogger]   ]

I’ve seen this behavior on other Android devices, too. Playback works on my Pixel 5a without transcoding, but not my Kindle Fire tablet. I’ve attached the logs for each Chromecast. Happy bug hunting!

chromecast_with_av1.txt (30.0 KB)
chromecast_without_av1.txt (27.1 KB)

logs from nvidia shield (2017?) pro. Black screen when playing AV1 files due to direct stream…

From the looks of it around 14:16:15.934 it is sending directPlay=1&directStream=1 even though around 14:16:15.672 it did not list AV1 as an availible MediaCodec…or at least that what it looks like at a glance…

plex_nvidia_shield_2017_av1_issue_cleansed.txt (53.5 KB)