Closed SlothCroissant closed 6 years ago
I've read (and can confirm on at least one system) that this is related to the way Plex handles HLS for these devices. The best workaround I've seen is modifying the iOS.xml (or tvOS.xml) profile to comment out the following lines:
<!-- Allow Direct Play of HLS content -->
<!-- <VideoProfile protocol="hls" container="mpegts" codec="h264" audioCodec="aac" /> -->
The location of your profiles will vary depending on which OS you are running Plex from. See this article for data folder locations, and this link for source/credit to the workaround above.
I can confirm this works for my iPhone 6. Logs from before and after commenting that out:
Before:
2017-09-26 21:56:33,302 (7ff4f5d3b700) : DEBUG (runtime:717) - Handling request GET /video/lazyman/:/function/PlayStream.m3u8?function_args=Y2VyZWFsMQoxCmRpY3QKMQpzMzEwCmh0dHA6Ly9obHNsaXZlLWFrYy5tZWQyLm1lZC5uaGwuY29tL2hkbnRzPWV4cD0xNTA2NTAxNzcyfmFjbD0vKn5pZD1uaGxHYXRld2F5SWQ6NzI5NDQxNH5kYXRhPTUyODgzODAzfmhtYWM9MzAzMDRkNDRkYzNiNjUxZTU4ODY4NTIxMTMyZTEyZGNhZWRkMzI3NTM3NGZmMjEwNzYzMjEzNTI4MzU4NDFiZS8yYTdlNDk5ZDk2NDkyNGJjMDQ0YzliNWUzNGM1MjU0My9sczA0L25obC8yMDE3LzA5LzI2L05ITF9HQU1FX1ZJREVPX0NHWVdQR19NMl9IT01FXzIwMTcwOTI2XzE1MDYxODk5NzUzODkvMzUwMEsvMzUwMF9jb21wbGV0ZS10cmltbWVkLm0zdThzMwp1cmxyMAo_&indirect=1&mediaInfo=%7B%22audio_channels%22%3A%202%2C%20%22protocol%22%3A%20%22hls%22%2C%20%22optimized_for_streaming%22%3A%20true%2C%20%22video_frame_rate%22%3A%2030%2C%20%22duration%22%3A%20null%2C%20%22height%22%3A%20720%2C%20%22width%22%3A%201280%2C%20%22container%22%3A%20%22mpegts%22%2C%20%22audio_codec%22%3A%20%22aac%22%2C%20%22aspect_ratio%22%3A%20null%2C%20%22video_codec%22%3A%20%22h264%22%2C%20%22video_resolution%22%3A%20%22720%22%2C%20%22bitrate%22%3A%20null%7D
2017-09-26 21:56:33,304 (7ff4f5d3b700) : DEBUG (runtime:814) - Found route matching /video/lazyman/:/function/PlayStream.m3u8
2017-09-26 21:56:33,304 (7ff4f5d3b700) : DEBUG (runtime:125) - Calling function 'PlayStream.m3u8'
2017-09-26 21:56:33,304 (7ff4f5d3b700) : INFO (__init__:292) - --> Final stream url: http://hlslive-akc.med2.med.nhl.com/hdnts=exp=1506501772~acl=/*~id=nhlGatewayId:7294414~data=52883803~hmac=30304d44dc3b651e58868521132e12dcaedd3275374ff21076321352835841be/2a7e499d964924bc044c9b5e34c52543/ls04/nhl/2017/09/26/NHL_GAME_VIDEO_CGYWPG_M2_HOME_20170926_1506189975389/3500K/3500_complete-trimmed.m3u8
2017-09-26 21:56:33,311 (7ff4f5d3b700) : DEBUG (runtime:88) - Sending packed state data (108 bytes)
2017-09-26 21:56:33,311 (7ff4f5d3b700) : DEBUG (runtime:924) - Response: [200] MediaContainer, 1449 bytes
After:
2017-09-26 21:59:21,439 (7f6e9ffff700) : DEBUG (runtime:717) - Handling request GET /video/lazyman/:/function/PlayStrea
m.m3u8?function_args=Y2VyZWFsMQoxCmRpY3QKMQpzMzEwCmh0dHA6Ly9obHNsaXZlLWFrYy5tZWQyLm1lZC5uaGwuY29tL2hkbnRzPWV4cD0xNTA2NTA
xNzcyfmFjbD0vKn5pZD1uaGxHYXRld2F5SWQ6NzI5NDQxNH5kYXRhPTUyODgzODAzfmhtYWM9MzAzMDRkNDRkYzNiNjUxZTU4ODY4NTIxMTMyZTEyZGNhZWR
kMzI3NTM3NGZmMjEwNzYzMjEzNTI4MzU4NDFiZS8yYTdlNDk5ZDk2NDkyNGJjMDQ0YzliNWUzNGM1MjU0My9sczA0L25obC8yMDE3LzA5LzI2L05ITF9HQU1
FX1ZJREVPX0NHWVdQR19NMl9IT01FXzIwMTcwOTI2XzE1MDYxODk5NzUzODkvMzUwMEsvMzUwMF9jb21wbGV0ZS10cmltbWVkLm0zdThzMwp1cmxyMAo_&in
direct=1&mediaInfo=%7B%22audio_channels%22%3A%202%2C%20%22protocol%22%3A%20%22hls%22%2C%20%22optimized_for_streaming%22%
3A%20true%2C%20%22video_frame_rate%22%3A%2030%2C%20%22duration%22%3A%20null%2C%20%22height%22%3A%20720%2C%20%22width%22%
3A%201280%2C%20%22container%22%3A%20%22mpegts%22%2C%20%22audio_codec%22%3A%20%22aac%22%2C%20%22aspect_ratio%22%3A%20null
%2C%20%22video_codec%22%3A%20%22h264%22%2C%20%22video_resolution%22%3A%20%22720%22%2C%20%22bitrate%22%3A%20null%7D
2017-09-26 21:59:21,441 (7f6e9ffff700) : DEBUG (runtime:814) - Found route matching /video/lazyman/:/function/PlayStrea
m.m3u8
2017-09-26 21:59:21,441 (7f6e9ffff700) : DEBUG (runtime:125) - Calling function 'PlayStream.m3u8'
2017-09-26 21:59:21,441 (7f6e9ffff700) : INFO (__init__:292) - --> Final stream url: http://hlslive-akc.med2.med.nhl.com/hdnts=exp=1506501772~acl=/*~id=nhlGatewayId:7294414~data=52883803~hmac=30304d44dc3b651e58868521132e12dcaedd3275374ff21076321352835841be/2a7e499d964924bc044c9b5e34c52543/ls04/nhl/2017/09/26/NHL_GAME_VIDEO_CGYWPG_M2_HOME_20170926_1506189975389/3500K/3500_complete-trimmed.m3u8
2017-09-26 21:59:21,444 (7f6e9ffff700) : DEBUG (runtime:88) - Sending packed state data (108 bytes)
2017-09-26 21:59:21,444 (7f6e9ffff700) : DEBUG (runtime:924) - Response: [200] MediaContainer, 1449 bytes
2017-09-26 21:59:21,563 (7f6e9ffff700) : DEBUG (runtime:717) - Handling request GET /video/lazyman/:/function/StreamMetadata?function_args=Y2VyZWFsMQoxCmRpY3QKNApzMTAKMjAxNy0wOS0yNXM0CmRhdGVpMjAxNzAxMDA2NQpzNgpnYW1laWRzOAo1Mjg4MzgwM3M3Cm1lZGlhSWRzMwpuaGxzNQpzcG9ydHIwCg__&includeBandwidths=1
2017-09-26 21:59:21,564 (7f6e9ffff700) : DEBUG (runtime:814) - Found route matching /video/lazyman/:/function/StreamMetadata
2017-09-26 21:59:21,564 (7f6e9ffff700) : DEBUG (runtime:125) - Calling function 'StreamMetadata'
2017-09-26 21:59:21,565 (7f6e9ffff700) : WARNING (runtime:1065) - Generating a callback path for a function with no route: <function StreamMetadata at 0x7f6ecf05a320>
2017-09-26 21:59:21,570 (7f6e9ffff700) : DEBUG (runtime:88) - Sending packed state data (108 bytes)
2017-09-26 21:59:21,571 (7f6e9ffff700) : DEBUG (runtime:924) - Response: [200] MediaContainer, 9818 bytes```
Would anyone want to send a PR with a suggestion for information about this workaround for the README or similar?
Submitted #22 . Contains more detail on the iOS workaround as well as splitting up the different install methods (now that this bundle is on the UAS by default).
Pr with workaround merged, closing.
Lazyman.bundle version: Commit ad5596c83824e40eee5fdbb1e50c6f88eb02390e (latest at this time) Plex Version: 1.8.4.4249
When playing via iOS app, playback stops immediately. Here are the logs (censored some of the urls & args):
Thoughts? Isn't the biggest issue as it can stream to my Chromecast just fine at this point.