If you have not already, we suggest setting your Plex username to something else rather than email which is displayed on your posts in forum. You can change the username at https://app.plex.tv/desktop#!/account
Welcome to our forums! Please take a few moments to read through our Community Guidelines (also conveniently linked in the header at the top of each page). There, you'll find guidelines on conduct, tips on getting the help you may be searching for, and more!

[BUG] Chrome exits direct play of .mp4 video with more than one audio track after 2-5 minutes.

CollisioncCollisionc Posts: 84Members, Plex Pass Plex Pass
edited August 7 in Plex Web App

EDIT Found out what happened here - https://forums.plex.tv/discussion/comment/1485134/#Comment_1485134 and here https://forums.plex.tv/discussion/comment/1492233/#Comment_1492233

Symptoms: Video starts, buffers approximately 150~ megabytes of the video until chrome exits the video without warning to the user. Server-side logs show nothing unusual other than "Client disconnected"

I tried for days to figure out what was going on with this. I could get movies/tv shows to play if they were direct streamed/remuxed/transcoded. I tried re-encoding my rip of Resident Evil 20 different ways to see if it was some funky h264 setting. Server side logs are useless as the issue seems to be on the client side.

After a lot of google searches, I tried using chrome://media-internals/ to debug the situation since it seemed to be on the client side.

When the video finishes buffering the initial 150~ megabytes of data, it throws a debug message here:
00:01:38 850 debug FFmpegDemuxer: memory limit exceeded
After this message, the video will continue to play for approximately 40-60 seconds until the buffer runs out and it exits.

After more research, it led me to this bug that was fixed in chrome about 2 years ago, in which chrome set a cap on memory usage with their demuxer: https://bugs.chromium.org/p/chromium/issues/detail?id=343304

I think that Plex is sending too large of a buffer to Chrome when direct play is enabled on a video with multiple audio streams, which overloads chrome's demuxer and causes it to exit. If I direct stream/transcode/direct play (1 audio stream) a video Plex stops adding to the buffer after it has 10-15 seconds of buffer already, but if I direct play a video with multiple audio streams it never stops adding to the buffer until chrome throws the demux error and stops it from adding more.

To test this theory, I took a movie that was having the problem and used ffmpeg to ONLY strip out the extra audio streams, then re-add it to Plex. After doing this, the movie direct played without any issues.

The issue occurs locally and remotely, and I can upload/host a movie for plex devs if needed to test.

«1

Comments

  • CollisioncCollisionc Posts: 84Members, Plex Pass Plex Pass
    edited July 3

    A little extra information:

    If the video has multiple audio streams, but only 1 of them is usable by the client, this will not happen as the demuxer ignores streams that it cannot use.

    From media-internals log on a movie with the first track being AAC 2.0 and the 2nd track being 5.1 DTS.

    00:00:00 255 info FFmpegDemuxer: created video stream, config codec: h264 format: 2 profile: h264 high coded size: [1920,1080] visible rect: [0,0,1920,1080] natural size: [1920,1080] has extra data? true encrypted? false
    00:00:00 255 info FFmpegDemuxer: created audio stream, config codec: aac bytes_per_channel: 4 channel_layout: 3 channels: 2 samples_per_second: 48000 sample_format: 6 bytes_per_frame: 8 seek_preroll: 0ms codec_delay: 0 has extra data? true encrypted? false
    00:00:00 255 error FFmpegDemuxer: failed creating audio stream
    00:00:00 255 info FFmpegDemuxer: skipping invalid or unsupported audio track

    It throws an error, but it never complains about the memory limit being exceeded.

    If I take that same video and use ffmpeg to encode that 5.1 DTS track into an AAC 2.0 with no other changes -

    00:00:03 288 debug FFmpegDemuxer: memory limit exceeded

    Also, the very same videos that do this are also the same ones that generally fail to resume properly.

  • CollisioncCollisionc Posts: 84Members, Plex Pass Plex Pass
    edited July 3

    Searching the forums, what I've found may help explain the problems seen in these threads:

    https://forums.plex.tv/discussion/277015/aac-5-1-movies-stop-playing-after-a-few-minutes-watching-media-in-browser
    https://forums.plex.tv/discussion/276423/random-episode-will-not-play-through-the-web-app
    https://forums.plex.tv/discussion/268300/remote-stream-stops-after-50-sec-on-google-chrome-web-browser

    Unrelated side-note: I found out by accident while trying to troubleshoot this that all browsers other than chrome do not support an audio sampling rate over 48 KHz. It would be nice if plex auto-transcoded audio down to 48 KHz if it detects a browser than cannot play higher sampling rates. The video just doesn't even attempt to play on other browsers.

  • eiridaneiridan Posts: 1Members, Plex Pass Plex Pass

    I've been experiencing the same issue here, I wish I could offer any help. This seems to be a more recent phenomenon for me.

  • CollisioncCollisionc Posts: 84Members, Plex Pass Plex Pass

    I didn't notice it until the last month or so, but I normally use Roku so I can't say for sure if it hasn't been happening before.

  • CollisioncCollisionc Posts: 84Members, Plex Pass Plex Pass

    Don't think it will help, but here are the logs that go along with the chrome logs:

    Jul 14, 2017 18:40:01.298 [17844] DEBUG - handleStreamRead code 335544539: short read
    Jul 14, 2017 18:40:01.298 [17844] WARN - LongPoll: Got error, closing.
    Jul 14, 2017 18:40:01.299 [17844] DEBUG - Failed to stream media, client probably disconnected: 10053 - An established connection was aborted by the software in your host machine
    Jul 14, 2017 18:40:01.300 [17844] DEBUG - Completed: [192.168.2.186:13537] 200 GET /library/parts/1431030/1499092366/file.mp4 (28 live) TLS 5234ms 193675264 bytes (pipelined: 2)
    Jul 14, 2017 18:40:01.301 [17844] DEBUG - WebSocket: client initiated close
    Jul 14, 2017 18:40:01.301 [17844] DEBUG - handleStreamRead code 335544539: short read
    Jul 14, 2017 18:40:01.301 [17844] DEBUG - NotificationStream: Removing because of error

  • OmgImAlexisOmgImAlexis Posts: 122Members, Plex Pass Plex Pass

    Here's some info from my chrome://media-internals page.

    render_id: 4149
    player_id: 12
    pipeline_state: kStopped
    event: WEBMEDIAPLAYER_DESTROYED
    url: REDACTED
    is_downloading_data: true
    total_bytes: -1
    streaming: true
    single_origin: true
    passed_cors_access_check: false
    range_header_supported: false
    info: FFmpegDemuxer: created audio stream, config codec: aac bytes_per_channel: 4 channel_layout: 3 samples_per_second: 48000 sample_format: 6 bytes_per_frame: 8 seek_preroll: 0ms codec_delay: 0 has extra data? true encrypted? false
    audio_channels_count: 2
    audio_codec_name: aac
    audio_sample_format: Float 32-bit planar
    audio_samples_per_second: 48000
    bitrate: 0
    found_audio_stream: true
    found_video_stream: true
    height: 1080
    max_duration: 3354.01
    start_time: 1248.832
    time_base: 1/1000
    video_codec_name: h264
    video_format: PIXEL_FORMAT_YV12
    video_is_encrypted: false
    width: 1920
    audio_dds: false
    audio_decoder: FFmpegAudioDecoder
    video_dds: false
    video_decoder: FFmpegVideoDecoder
    video_buffering_state: BUFFERING_HAVE_ENOUGH
    audio_buffering_state: BUFFERING_HAVE_ENOUGH
    pipeline_buffering_state: BUFFERING_HAVE_ENOUGH
    duration: 3354.01
    error: FFmpegDemuxer: data source error
    debug: FFmpegDemuxer: av_read_frame(): End of file
    pipeline_error: PIPELINE_ERROR_READ
    
    [
      {
        "properties": {
          "render_id": 4149,
          "player_id": 12,
          "pipeline_state": "kStopped",
          "event": "WEBMEDIAPLAYER_DESTROYED",
          "url": "REDACTED",
          "is_downloading_data": true,
          "total_bytes": -1,
          "streaming": true,
          "single_origin": true,
          "passed_cors_access_check": false,
          "range_header_supported": false,
          "info": "FFmpegDemuxer: created audio stream, config codec: aac bytes_per_channel: 4 channel_layout: 3 samples_per_second: 48000 sample_format: 6 bytes_per_frame: 8 seek_preroll: 0ms codec_delay: 0 has extra data? true encrypted? false",
          "audio_channels_count": 2,
          "audio_codec_name": "aac",
          "audio_sample_format": "Float 32-bit planar",
          "audio_samples_per_second": 48000,
          "bitrate": 0,
          "found_audio_stream": true,
          "found_video_stream": true,
          "height": 1080,
          "max_duration": 3354.01,
          "start_time": 1248.832,
          "time_base": "1/1000",
          "video_codec_name": "h264",
          "video_format": "PIXEL_FORMAT_YV12",
          "video_is_encrypted": false,
          "width": 1920,
          "audio_dds": false,
          "audio_decoder": "FFmpegAudioDecoder",
          "video_dds": false,
          "video_decoder": "FFmpegVideoDecoder",
          "video_buffering_state": "BUFFERING_HAVE_ENOUGH",
          "audio_buffering_state": "BUFFERING_HAVE_ENOUGH",
          "pipeline_buffering_state": "BUFFERING_HAVE_ENOUGH",
          "duration": 3354.01,
          "error": "FFmpegDemuxer: data source error",
          "debug": "FFmpegDemuxer: av_read_frame(): End of file",
          "pipeline_error": "PIPELINE_ERROR_READ"
        },
        "events": [
          {
            "time": 0,
            "key": "pipeline_state",
            "value": "kCreated"
          },
          {
            "time": 0.031000137329101562,
            "key": "event",
            "value": "WEBMEDIAPLAYER_CREATED"
          },
          {
            "time": 0.1419999599456787,
            "key": "url",
            "value": "REDACTED"
          },
          {
            "time": 3206.9809999465942,
            "key": "total_bytes",
            "value": -1
          },
          {
            "time": 3206.9980001449585,
            "key": "streaming",
            "value": true
          },
          {
            "time": 3207.0080001354218,
            "key": "single_origin",
            "value": true
          },
          {
            "time": 3207.0190000534058,
            "key": "passed_cors_access_check",
            "value": false
          },
          {
            "time": 3207.0250000953674,
            "key": "range_header_supported",
            "value": false
          },
          {
            "time": 3207.281000137329,
            "key": "pipeline_state",
            "value": "kStarting"
          },
          {
            "time": 3521.983999967575,
            "key": "info",
            "value": "FFmpegDemuxer: created video stream, config codec: h264 format: 2 profile: h264 main coded size: [1920,1080] visible rect: [0,0,1920,1080] natural size: [1920,1080] has extra data? true encrypted? false"
          },
          {
            "time": 3522.055000066757,
            "key": "info",
            "value": "FFmpegDemuxer: created audio stream, config codec: aac bytes_per_channel: 4 channel_layout: 3 samples_per_second: 48000 sample_format: 6 bytes_per_frame: 8 seek_preroll: 0ms codec_delay: 0 has extra data? true encrypted? false"
          },
          {
            "time": 3522.161999940872,
            "key": "audio_channels_count",
            "value": 2
          },
          {
            "time": 3522.161999940872,
            "key": "audio_codec_name",
            "value": "aac"
          },
          {
            "time": 3522.161999940872,
            "key": "audio_sample_format",
            "value": "Float 32-bit planar"
          },
          {
            "time": 3522.161999940872,
            "key": "audio_samples_per_second",
            "value": 48000
          },
          {
            "time": 3522.161999940872,
            "key": "bitrate",
            "value": 0
          },
          {
            "time": 3522.161999940872,
            "key": "found_audio_stream",
            "value": true
          },
          {
            "time": 3522.161999940872,
            "key": "found_video_stream",
            "value": true
          },
          {
            "time": 3522.161999940872,
            "key": "height",
            "value": 1080
          },
          {
            "time": 3522.161999940872,
            "key": "max_duration",
            "value": 3354.01
          },
          {
            "time": 3522.161999940872,
            "key": "start_time",
            "value": 1248.832
          },
          {
            "time": 3522.161999940872,
            "key": "time_base",
            "value": "1/1000"
          },
          {
            "time": 3522.161999940872,
            "key": "video_codec_name",
            "value": "h264"
          },
          {
            "time": 3522.161999940872,
            "key": "video_format",
            "value": "PIXEL_FORMAT_YV12"
          },
          {
            "time": 3522.161999940872,
            "key": "video_is_encrypted",
            "value": false
          },
          {
            "time": 3522.161999940872,
            "key": "width",
            "value": 1920
          },
          {
            "time": 3528.9790000915527,
            "key": "audio_dds",
            "value": false
          },
          {
            "time": 3528.986000061035,
            "key": "audio_decoder",
            "value": "FFmpegAudioDecoder"
          },
          {
            "time": 3530.9900000095367,
            "key": "video_dds",
            "value": false
          },
          {
            "time": 3531,
            "key": "video_decoder",
            "value": "FFmpegVideoDecoder"
          },
          {
            "time": 3531.1289999485016,
            "key": "pipeline_state",
            "value": "kPlaying"
          },
          {
            "time": 3604.667000055313,
            "key": "height",
            "value": 1080
          },
          {
            "time": 3604.667000055313,
            "key": "width",
            "value": 1920
          },
          {
            "time": 3671.861999988556,
            "key": "video_buffering_state",
            "value": "BUFFERING_HAVE_ENOUGH"
          },
          {
            "time": 3672.0569999217987,
            "key": "audio_buffering_state",
            "value": "BUFFERING_HAVE_ENOUGH"
          },
          {
            "time": 3672.1340000629425,
            "key": "pipeline_buffering_state",
            "value": "BUFFERING_HAVE_ENOUGH"
          },
          {
            "time": 3672.292999982834,
            "key": "event",
            "value": "PLAY"
          },
          {
            "time": 3522.135999917984,
            "key": "duration",
            "value": 3354.01
          },
          {
            "time": 8921.68499994278,
            "key": "video_buffering_state",
            "value": "BUFFERING_HAVE_NOTHING"
          },
          {
            "time": 8983.430000066757,
            "key": "video_buffering_state",
            "value": "BUFFERING_HAVE_ENOUGH"
          },
          {
            "time": 146890.32700014114,
            "key": "audio_buffering_state",
            "value": "BUFFERING_HAVE_NOTHING"
          },
          {
            "time": 146890.51399993896,
            "key": "pipeline_buffering_state",
            "value": "BUFFERING_HAVE_NOTHING"
          },
          {
            "time": 146894.60400009155,
            "key": "video_buffering_state",
            "value": "BUFFERING_HAVE_NOTHING"
          },
          {
            "time": 146995.1100001335,
            "key": "video_buffering_state",
            "value": "BUFFERING_HAVE_ENOUGH"
          },
          {
            "time": 146997.62800002098,
            "key": "audio_buffering_state",
            "value": "BUFFERING_HAVE_ENOUGH"
          },
          {
            "time": 147048.68000006676,
            "key": "pipeline_buffering_state",
            "value": "BUFFERING_HAVE_ENOUGH"
          },
          {
            "time": 147958.7460000515,
            "key": "video_buffering_state",
            "value": "BUFFERING_HAVE_NOTHING"
          },
          {
            "time": 149122.81200003624,
            "key": "video_buffering_state",
            "value": "BUFFERING_HAVE_ENOUGH"
          },
          {
            "time": 149511.66799998283,
            "key": "video_buffering_state",
            "value": "BUFFERING_HAVE_NOTHING"
          },
          {
            "time": 149571.73300004005,
            "key": "video_buffering_state",
            "value": "BUFFERING_HAVE_ENOUGH"
          },
          {
            "time": 149890.21799993515,
            "key": "video_buffering_state",
            "value": "BUFFERING_HAVE_NOTHING"
          },
          {
            "time": 150347.2200000286,
            "key": "video_buffering_state",
            "value": "BUFFERING_HAVE_ENOUGH"
          },
          {
            "time": 170639.78999996185,
            "key": "video_buffering_state",
            "value": "BUFFERING_HAVE_NOTHING"
          },
          {
            "time": 170781.83899998665,
            "key": "video_buffering_state",
            "value": "BUFFERING_HAVE_ENOUGH"
          },
          {
            "time": 198191.3299999237,
            "key": "video_buffering_state",
            "value": "BUFFERING_HAVE_NOTHING"
          },
          {
            "time": 198256.08800005913,
            "key": "video_buffering_state",
            "value": "BUFFERING_HAVE_ENOUGH"
          },
          {
            "time": 603352.1460001469,
            "key": "error",
            "value": "FFmpegDemuxer: data source error"
          },
          {
            "time": 603352.3059999943,
            "key": "debug",
            "value": "FFmpegDemuxer: av_read_frame(): End of file"
          },
          {
            "time": 603352.5080001354,
            "key": "pipeline_error",
            "value": "PIPELINE_ERROR_READ"
          },
          {
            "time": 603352.7179999352,
            "key": "pipeline_state",
            "value": "kStopping"
          },
          {
            "time": 603361.7910001278,
            "key": "pipeline_state",
            "value": "kStopped"
          },
          {
            "time": 603362.0360000134,
            "key": "event",
            "value": "PAUSE"
          },
          {
            "time": 606031.509000063,
            "key": "event",
            "value": "WEBMEDIAPLAYER_DESTROYED"
          }
        ]
      }
    ]
    

    Chrome console shows ERR_INCOMPLETE_CHUNKED_ENCODING as soon as the playback stops.

    All I can see in my plex logs is Connection to IP_REDACTED closed by remote host.

  • OmgImAlexisOmgImAlexis Posts: 122Members, Plex Pass Plex Pass

    None of my files have more than 1 audio stream so I don't think it's causes by that at least for me.
    Here's the XML from a file I tested this with. Plays for 1 - 5 minutes before crashing.

    <?xml version="1.0" encoding="UTF-8"?>
    <MediaContainer size="1" allowSync="1" identifier="com.plexapp.plugins.library" librarySectionID="2" librarySectionTitle="TV Shows" librarySectionUUID="8a6e79b4-1156-47a9-aa80-738c3708d492" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1498656408">
        <Video ratingKey="40783" key="/library/metadata/40783" parentRatingKey="40778" grandparentRatingKey="40777" guid="com.plexapp.agents.thetvdb://317953/1/5?lang=en" librarySectionID="2" librarySectionKey="/library/sections/2" type="episode" title="Under Leaf Pluck Lotus" grandparentKey="/library/metadata/40777" parentKey="/library/metadata/40778" grandparentTitle="Marvel&amp;#39;s Iron Fist" parentTitle="Season 1" contentRating="TV-MA" summary="An insidious new drug hits New York. Danny recruits Colleen for the fight, and Claire shows that credit cards can have many uses." index="5" parentIndex="1" rating="8.0" viewOffset="1848120" lastViewedAt="1500132098" year="2017" thumb="/library/metadata/40783/thumb/1490278562" art="/library/metadata/40777/art/1490278563" parentThumb="/library/metadata/40778/thumb/1490278563" grandparentThumb="/library/metadata/40777/thumb/1490278563" grandparentArt="/library/metadata/40777/art/1490278563" duration="3354005" originallyAvailableAt="2017-03-17" addedAt="1490095060" updatedAt="1490278562">
            <Media videoResolution="1080" id="64001" duration="3354005" bitrate="2575" width="1920" height="1080" aspectRatio="1.78" audioChannels="2" audioCodec="aac" videoCodec="hevc" container="mkv" videoFrameRate="24p" audioProfile="lc" videoProfile="main">
                <Part accessible="1" exists="1" id="75058" key="/library/parts/75058/1490094414/file.mkv" duration="3354005" file="/mnt/tvshows/Marvel&amp;#39;s Iron Fist/Marvel&amp;#39;s Iron Fist - S01E05 - Under Leaf Pluck Lotus 1080p HDTV.mkv" size="1079753395" audioProfile="lc" container="mkv" videoProfile="main">
                    <Stream id="164681" streamType="1" default="1" codec="hevc" index="0" bitrate="2575" language="English" languageCode="eng" bitDepth="8" chromaSubsampling="4:2:0" colorRange="tv" frameRate="23.976" height="1080" level="120" profile="main" refFrames="1" width="1920" />
                    <Stream id="164682" streamType="2" selected="1" default="1" codec="aac" index="1" channels="2" bitrate="640" language="English" languageCode="eng" audioChannelLayout="stereo" profile="lc" samplingRate="48000" />
                </Part>
            </Media>
            <Director id="34" filter="director=34" tag="Uta Briesewitz" />
            <Writer id="46864" filter="writer=46864" tag="Cristine Chambers" />
            <Extras size="0" />
        </Video>
    </MediaContainer>
    
  • javitujavitu Posts: 21Members ✭✭
    edited July 17

    Hello guys,

    I've started to optimice al my media to universal mobile @ 1080p and same happend with all my series!!!! after 2-3 of playback it jumps to the next episode.

    Its a common issue so i hope it get fix soon.

    If you needs logs from me just let me know.

  • javitujavitu Posts: 21Members ✭✭
    edited July 17

    ok more information,

    I've tested with 3 series.

    Two with dual audio crashed at 2-3 minutes from the beginning.

    The other one with 1 audio keeps working well.

       "time": 0.08100000023841858,
            "key": "url",
            "value": "https://192-168-1-99.62611eca77ce4812a2d25f3071177238.plex.direct:32400/library/parts/73958/1500179660/file.mp4?X-Plex-Session-Identifier=o6naxwqydugujgacpiiioh0y&X-Plex-Product=Plex%20Web&X-Plex-Version=3.11.0&X-Plex-Client-Identifier=ac10a772-e9c0-4d17-af19-13cf675d35ff&X-Plex-Platform=Chrome&X-Plex-Platform-Version=59.0&X-Plex-Device=Windows&X-Plex-Device-Name=Plex%20Web%20%28Chrome%29&X-Plex-Device-Screen-Resolution=1920x901%2C1920x1080&X-Plex-Token=____redacted______&Accept-Language=es"
          },
          {
            "time": 14.807000000029802,
            "key": "total_bytes",
            "value": 1760244350
          },
          {
            "time": 14.811000000685453,
            "key": "streaming",
            "value": false
          },
          {
            "time": 14.811999998986721,
            "key": "single_origin",
            "value": true
          },
          {
            "time": 14.814999997615814,
            "key": "passed_cors_access_check",
            "value": false
          },
          {
            "time": 14.815999999642372,
            "key": "range_header_supported",
            "value": true
          },
          {
            "time": 14.846000000834465,
            "key": "pipeline_state",
            "value": "kStarting"
          },
          {
            "time": 176.05799999833107,
            "key": "info",
            "value": "FFmpegDemuxer: created video stream, config codec: h264 format: 2 profile: h264 high coded size: [1920,1080] visible rect: [0,0,1920,1080] natural size: [1920,1080] has extra data? true encrypted? false"
          },
          {
            "time": 176.09400000050664,
            "key": "info",
            "value": "FFmpegDemuxer: created audio stream, config codec: aac bytes_per_channel: 4 channel_layout: 3 samples_per_second: 48000 sample_format: 6 bytes_per_frame: 8 seek_preroll: 0ms codec_delay: 0 has extra data? true encrypted? false"
          },
          {
            "time": 176.1140000000596,
            "key": "info",
            "value": "FFmpegDemuxer: created audio stream, config codec: aac bytes_per_channel: 4 channel_layout: 3 samples_per_second: 48000 sample_format: 6 bytes_per_frame: 8 seek_preroll: 0ms codec_delay: 0 has extra data? true encrypted? false"
          },
          {
            "time": 176.13399999961257,
            "key": "audio_channels_count",
            "value": 2
          },
          {
            "time": 176.13399999961257,
            "key": "audio_channels_count_track2",
            "value": 2
          },
          {
            "time": 176.13399999961257,
            "key": "audio_codec_name",
            "value": "aac"
          },
          {
            "time": 176.13399999961257,
            "key": "audio_codec_name_track2",
            "value": "aac"
          },
          {
            "time": 176.13399999961257,
            "key": "audio_sample_format",
            "value": "Float 32-bit planar"
          },
          {
            "time": 176.13399999961257,
            "key": "audio_sample_format_track2",
            "value": "Float 32-bit planar"
          },
          {
            "time": 176.13399999961257,
            "key": "audio_samples_per_second",
            "value": 48000
          },
          {
            "time": 176.13399999961257,
            "key": "audio_samples_per_second_track2",
            "value": 48000
          },
          {
            "time": 176.13399999961257,
            "key": "bitrate",
            "value": 5340291
          },
          {
            "time": 176.13399999961257,
            "key": "found_audio_stream",
            "value": true
          },
          {
            "time": 176.13399999961257,
            "key": "found_video_stream",
            "value": true
          },
          {
            "time": 176.13399999961257,
            "key": "height",
            "value": 1080
          },
          {
            "time": 176.13399999961257,
            "key": "max_duration",
            "value": 2636.926
          },
          {
            "time": 176.13399999961257,
            "key": "start_time",
            "value": 0
          },
          {
            "time": 176.13399999961257,
            "key": "time_base",
            "value": "1/16000"
          },
          {
            "time": 176.13399999961257,
            "key": "video_codec_name",
            "value": "h264"
          },
          {
            "time": 176.13399999961257,
            "key": "video_format",
            "value": "PIXEL_FORMAT_YV12"
          },
          {
            "time": 176.13399999961257,
            "key": "video_is_encrypted",
            "value": false
          },
          {
            "time": 176.13399999961257,
            "key": "width",
            "value": 1920
          },
          {
            "time": 177.39999999850988,
            "key": "audio_dds",
            "value": false
          },
          {
            "time": 177.40300000086427,
            "key": "audio_decoder",
            "value": "FFmpegAudioDecoder"
          },
          {
            "time": 190.8859999999404,
            "key": "video_dds",
            "value": false
          },
          {
            "time": 190.8889999985695,
            "key": "video_decoder",
            "value": "GpuVideoDecoder"
          },
          {
            "time": 190.91400000080466,
            "key": "pipeline_state",
            "value": "kPlaying"
          },
          {
            "time": 191.4399999976158,
            "key": "audio_buffering_state",
            "value": "BUFFERING_HAVE_ENOUGH"
          },
          {
            "time": 211.5109999999404,
            "key": "height",
            "value": 1080
          },
          {
            "time": 211.5109999999404,
            "key": "width",
            "value": 1920
          },
          {
            "time": 213.10700000077486,
            "key": "video_buffering_state",
            "value": "BUFFERING_HAVE_ENOUGH"
          },
          {
            "time": 213.12199999764562,
            "key": "pipeline_buffering_state",
            "value": "BUFFERING_HAVE_ENOUGH"
          },
          {
            "time": 213.2120000012219,
            "key": "event",
            "value": "PLAY"
          },
          {
            "time": 176.12900000065565,
            "key": "duration",
            "value": 2636.926
          },
          {
            "time": 7846.820000000298,
            "key": "debug",
            "value": "FFmpegDemuxer: memory limit exceeded"
          },
          {
            "time": 188603.7340000011,
            "key": "event",
            "value": "ENDED"
          },
          {
            "time": 188603.7650000006,
            "key": "event",
            "value": "PAUSE"
          },
          {
            "time": 196631.18999999762,
            "key": "pipeline_state",
            "value": "kStopping"
          },
          {
            "time": 196632.78500000015,
            "key": "pipeline_state",
            "value": "kStopped"
          },
          {
            "time": 196632.91099999845,
            "key": "event",
            "value": "WEBMEDIAPLAYER_DESTROYED"
    

    [moderator edit: X-Plex-Token removed from URL.
    Never, ever post your X-Plex-Token! You might as well post your password.]

  • OmgImAlexisOmgImAlexis Posts: 122Members, Plex Pass Plex Pass

    If a mod can remove the x-plex-token can they also let us know if this is being looked into. This basically makes the web player unusable for me and that's the main way I watch Plex.

    I know devs are busy but I just purchased a lifetime pass after paying for it monthly for the last few years and without this being fixed I've basically paid for a product I can't use. :disappointed:

  • javitujavitu Posts: 21Members ✭✭

    @OmgImAlexis said:
    If a mod can remove the x-plex-token can they also let us know if this is being looked into. This basically makes the web player unusable for me and that's the main way I watch Plex.

    I know devs are busy but I just purchased a lifetime pass after paying for it monthly for the last few years and without this being fixed I've basically paid for a product I can't use. :disappointed:

    right.. you can use firefox or opera, this problem just happend with chrome.

  • CollisioncCollisionc Posts: 84Members, Plex Pass Plex Pass

    Yeah, it's not a complete show stopper since you can use firefox/opera, it's just slightly annoying having to re-explain it to each person in my family that they have to uncheck direct play or use a different browser. :)

  • NK757NK757 Posts: 24Members, Plex Pass Plex Pass
    edited July 24

    This is effecting the chromecast also when you use aac audio it stops playing and just jumps to the next episode. You can just change the audio stream to ac3 and it plays.

  • CollisioncCollisionc Posts: 84Members, Plex Pass Plex Pass
    edited July 26

    As an update, I figured out the root cause of my issue, which ended up fixing a LOT of problems. Unfortunately I now have to fix all my media, but at least it's an easy fix.

    Basically, it comes down to not having the files web optimized. This site explains web optimizatoin better than I can - https://rigor.com/blog/2016/01/optimizing-mp4-video-for-fast-streaming

    Symptoms: Media with multiple audio streams would either crash and burn 1-5 minutes in (Local or Remote streaming), or would stutter-buffer after 20-30 seconds. The stutter-buffering only happened remotely, and what I mean by that is that it would buffer every second for a few seconds then seem fine, even when streaming a 1 megabit file over a fiber pipe.

    Direct streaming/transcoding "fixed" the issue because plex auto-web optimizes the file.

    I run all my media thru my fork of sickbeard's mp4 automator, which I've modified heavily to support advanced nvenc encoding flags, dxva2/cuvid video decoding and recently I've added in auto-burning of forced subtitles so that alien languages from star wars/GOT/etc would just always show up without any user interaction.

    6 months ago I got cute and decided to just use ffmpeg's command to web optimize a file instead of qtfaststart, but due to a mental error made it so that only files that went thru nvenc would be web optimized. Everything else that was swapped from .mkv to .mp4 or had an audio stream tweaked didn't get web optimized, and I only used nvenc when the video bitrate was over 20 megabit for space consideration.

    I also went through and made minor audio changes to my entire library in the last month, which meant that 90% of my media wasn't web optimized anymore.

    Ultimately I was the cause of the issue, but I do think that Plex could handle my stupidity better as I'm sure there are plenty of people out there trying to direct play non-web optimized and wondering why they are having issues. Especially because those issues can be very inconsistent and there are some clients (chrome) that do not tolerate it and others (Roku) that don't seem to give a crap if the file is web optimized. Simply disabling direct play for all media that isn't web optimized would fix the problem and wouldn't increase cpu load by much since it would just direct stream.

    I also noticed that Plex's detection for "web optimized" is wrong sometimes. One of the reasons I didn't figure this out sooner was due to a tv show episode that showed up as "web optimized" when plex detected it, but actually wasn't. When I re-ran the file through ffmpeg like this:

    ffmpeg -i filename.mp4 -c:v copy -c:a copy -c:s copy -movflags faststart newfilename.mp4

    The file played without a hitch.

  • NK757NK757 Posts: 24Members, Plex Pass Plex Pass
    edited August 4

    Have you fixed the issue in your script collison? Just tested it and it appear to still jump to the next episode.

  • CollisioncCollisionc Posts: 84Members, Plex Pass Plex Pass

    Sent you some PMs, need to test some things.

  • RyanDungeyMXRyanDungeyMX Posts: 25Members, Plex Pass Plex Pass

    Just wanna jump in here and say that i am experiencing the same issue, i have double checked and my files are correctly web optimized.

    Forcing me off chrome now :(

  • CollisioncCollisionc Posts: 84Members, Plex Pass Plex Pass

    @RyanDungeyMX said:
    Just wanna jump in here and say that i am experiencing the same issue, i have double checked and my files are correctly web optimized.

    Forcing me off chrome now :(

    Try re-running those files through ffmpeg with this command:

    ffmpeg -i filename.mp4 -c:v copy -c:a copy -c:s copy -movflags faststart newfilename.mp4

    Some of my files showed up as web optimized but actually weren't, re-running them through that fixed it.

  • RyanDungeyMXRyanDungeyMX Posts: 25Members, Plex Pass Plex Pass

    @Collisionc said:

    @RyanDungeyMX said:
    Just wanna jump in here and say that i am experiencing the same issue, i have double checked and my files are correctly web optimized.

    Forcing me off chrome now :(

    Try re-running those files through ffmpeg with this command:

    ffmpeg -i filename.mp4 -c:v copy -c:a copy -c:s copy -movflags faststart newfilename.mp4

    Some of my files showed up as web optimized but actually weren't, re-running them through that fixed it.

    I did run them through your command, i removed the -c:s though, whats that for?

  • asjmcguireplexasjmcguireplex Posts: 61Members, Plex Pass Plex Pass

    I'd assume - -c:v is video, -c:a is audio and -c:s is subtitles?

«1
Sign In or Register to comment.