plexinc / plex-media-player

Next generation Plex Desktop/Embedded Client
GNU General Public License v2.0
1.16k stars 170 forks source link

Playback doesn't start in Plex Web for some content (TS H264 EAC3 files) #1020

Open StephaneM60 opened 3 years ago

StephaneM60 commented 3 years ago

Test environment

PMS Version: 1.22.2.4282 PMP Version: 4.54.5 Platform : Windows 10 + Microsoft Edge

Steps to reproduce

  1. Use the Web Player to play a TS file with H264 and EAC3 audio stream.

Current behavior

  1. The playback fail to start

Expected behavior

  1. The playback should start and in my opinion the video should be transcoded, as If I disallow direct streaming or force a conversion playback starts.

This is what has been decided by the Plex Web Player for the content I try to watch : "message": "[MDE] Analyzing playability", "message": "[MDE] Finished analysis of: 1080 (mpegts, h264, eac3, 40, high) {\n \"canPlay\": true,\n \"canDirectPlay\": false,\n \"canDirectStreamVideo\": true,\n \"canDirectStreamAudio\": false,\n \"bitrate\": 4350,\n \"videoResolution\": 1080\n}", "time": "2021-04-09T15:13:20.805Z" "message": "[PDE] Player decision: {\n \"playerType\": \"html\",\n \"protocol\": \"dash\",\n \"canDirectPlay\": false\n}",

And it seems to me that the transcoder is working (I can see a session started and files being produced but the Web Player doesn't start the playback.

Plex Transcoder Statistics.log Plex Web Logs.txt

mseeley commented 3 years ago

Since there's no error logged in the Plex Web logs then it's mostly likely something about the video stream.

Best input I can provide is to try and identify what about the video/audio streams is the problem.

Other folks in our forums may have additional ideas.

StephaneM60 commented 3 years ago

I'll try to remux to MP4 to see if the content can be played. If I disable direct stream (in the plex web debug settings) the video does playback as it should

What I find strange is that the same content (same source / same data) does play when viewed through a Live TV Session. The logs are quite the same except for this

"message": "[MDE] Direct play failed; option is disabled", "message": "[MDE] Cannot direct play: allowDirectPlay",

and this

add-limitation(scope=videoCodec&scopeName=*&type=upperBound&name=video.frameRate&value=60&replace=true)

I attached the debug log when viewing such content through Live TV.

I'm not personally affected by the issue, I only noticed it and find it strange that plyaback wasn't starting for such content, so it could lead people using Plex for the first time that it doesn't work (for someone that do have some content like this, that is recorded content on DVB-T TV)

Log LiveTV.txt

StephaneM60 commented 3 years ago

Remuxing to MP4 doesn't change the behavior : playback fails. Logs attached, The same decision is made : direct play for video / transcode for audio. Log MP4 Mux.txt

mseeley commented 3 years ago

If I disable direct stream (in the plex web debug settings) the video does playback as it should

Nice 👍.

What I find strange is that the same content (same source / same data) does play when viewed through a Live TV Session.

This is quite strange. At the risk of being redundant, so playing the same stream via a Live TV session is okay but the recorded sessions do not play? That is super curious.

Does remuxing the streams into an MP4 direct play correctly?

My mistake here, the MP4 needs transcoded audio.

A few log messages back from [MDE] Finished analysis shows [MDE] Cannot direct play for the AC3 stream. MDE is an initialism for Media Decision Engine.

If this file still doesn't direct play then it's a bad video stream. If it does direct play then would you mind sharing a clip of the TS file that reproduces the problem?

StephaneM60 commented 3 years ago

The same stream, well not exactly of course, though : I set something to record. If I start a viewing session on the same channel in the live tv epg (clicking watch now), playback starts fine. Then I stop the playback, go to the library and select the recording being recorded, click to watch it and playback never starts.

Are you sure H264 video are supposed to direct play in web browser ?

You will find a small sample here : https://1drv.ms/u/s!Ao8aKlFObh6AgZz2Uj7TSWf_tTXbJrw?e=JfsNQB (this is a zipped file of a TS recording of 5 mn made by Plex)

mseeley commented 3 years ago

Are you sure H264 video are supposed to direct play in web browser ?

Yep, we're good there.

You will find a small sample here

Thanks, that's super helpful. I'm unsure what to make of the results I'm seeing using Chrome and PMS 1.22.1.4228-724c56e62.

All browsers are streaming the same format from Plex Media Server. Debugging from Plex Web I can see the video is being buffering yet Chrome never instructs our code that it's ready to begin playback or that an error was encountered.

Is it all recordings from some channels or all channels that experience the behavior? If it's some channels, will you please explain more which channels in particular?

  1. ffmpeg -i La\ p\'tite\ librairie\ -\ 2020-04-15\ 00\ 00\ 00\ -\ Episode\ 04-15.ts -c:v copy -c:a aac pmp-issue-1020.mp4
  2. ffmpeg -i La\ p\'tite\ librairie\ -\ 2020-04-15\ 00\ 00\ 00\ -\ Episode\ 04-15.ts -c:v copy -c:a aac pmp-issue-1020.ts
StephaneM60 commented 3 years ago

With FireFox (85.0.2) it does work with only the audio transcoded (as far as I can see in the logs and in the dashboard). One thing that may be used is when I try to playback in Edge, the playback won't start : but nothing sows up in the dashboard (but a transcode session exists and will terminate after a timeout). As a workaround it maybe possible to assume that whatever the plex server use to reflect a playback in the dashboard, when missing right after a transcode session, is that something went wrong and either force the player to error out or force it to full transcode...

Otherwise, yes it's all recordings with H264 (French channels / English channels), recordings with MPEG2 plays fine (Though I do not record all channels of course).

If playback is fine on Firefox but fails on Edge on the same computer, it means that something is wrong in the playback engine in Edge / Chromium (either in Plex code or chromium code) ?