iOS Experimental Player - Streaming Direct Play but transcoding same video on sync

I turned on the new experimental video player on iOS this morning, running on iPhone X with iOS 12.1.

First thing I tried was to stream a video which would need to be transcoded on the old player, it’s a 1080p video h264 with ASS subtitles and AAC 5.1 audio, in a MKV container.

When streamed it Direct Played, which is awesome. But, then I tried to sync it to the iPhone and it began transcoding.

Here is the XML for the video.
37330.txt (3.6 KB)

I tested also syncing another video with 1080p h264, FLAC audio and SRT subtitles, it too transcoded. Though it was much quicker as it seemed to only transcoded to text based subs instead of burned and also transcoded the audio to AAC.

This is the XML for the second video
46816.txt (4.2 KB)

If anything more is needed to help getting this working, I’ll gladly help. I have been looking forward to this kind of functionality in the iOS app for the longest time.

Maybe something we forgot to point out in the release notes / announcement, sorry. This player, right now, only changes playback, not sync. Sync will follow the same rules and keep transcoding to the same format.

We have to take a deep look at this, it’s not a simple task that might require server work… but it’s in our radar.

I’ll update the announcement post in the beta forum. Thanks for the feedback!

1 Like

I see, thanks for the reply.

It’s a great step forward anyway. Hopefully, we will see sync updated soon as well. I avoid syncing at the moment as I am running on a low power NAS. Was planning on upgrading, as the transcoding is my only problem. But, I’d love to keep using the low power NAS and avoid transcoding.

1 Like

@SgtBobIE if you can’t wait, you can probably tweak the iOS.xml profile that comes with Plex Media Server with the right stuff to allow more video formats to be synced without transcoding.

It’s that “easy” for individual users to enable it. For us is a more complex problem, since depending on how other users use synced files they might prefer transcoding to a more compatible format (for example if they want to Airplay/cast videos to other devices instead of watching it in the device…). Also, depending on the device, some formats can be played or cannot, depending on whether the device supports hardware decoding for a given format, or how powerful the CPU is if software decoding is needed.

Right now there is no way for the apps to tell the server about the capabilities of the current device you’re syncing to. We can do that for playback, but not for sync. For sync there is only that static XML file I mentioned, that is bundled with the server.

TLDR: if you can’t wait, edit the iOS.xml yourself, otherwise we a bit of work to do first and you’ll need to wait :sweat_smile:

2 Likes

That was the best present from Santa Claus for years, a long-awaited function in the official Plex app (without Infuse) :smiley:
Thanks for that!

Direct Play works flawless

2 Likes

I might just look into that. But don’t worry about me, you are doing some great work on the app! I just meant to say that I’m super excited for it to come to sync also. :slight_smile:

2 Likes

What’s the status of the “reworked” mobile sync functionnality ?

It’s been discussed from months, each time with an answer like “It’s in our future plans”. Can we at least have a less vague answer, like “we’re currently developing it”, or “we are in the thinking phase” etc etc…

Direct Play is awesome with the new player, but i travel a ton so syncing for offline viewing is used quite a bit. Right now i use Infuse to sync non supported formats. I can’t wait for the ability to direct sync all these formats without transcoding. please keep this high on your list. :slight_smile:

We’re in none of those phases, sorry. It’s in our heads, but there are other things with higher priority that we need to tackle first, sorry.

That’s a bit of a bummer. It was mentioned in the September “Subtitles and Sunsets” blog post as one of the things that was being focussed on and part of why other things were getting discontinued. In fact the first bullet point that wasn’t about features being discontinued. I hope that some server side fixes are at least coming to help make it more reliable.

any update on mobile sync capability with the enhanced player?

Hi! I tried to edit iOS.xml - no luck, files are still transcoded on sync. Any idea what am I doing wrong?
In iOS.xml I just changed the VideoProfile (under DirectPlayProfiles tag) to something like this:

<VideoProfile container="mkv,mov,mp4,mpegts,mpeg,mpegvideo,avi,flv,ogg" codec="h264,hevc,vp8,vp9...

I finally got it working.
(I’m using plexinc/pms-docker:plexpass container) It turned out plexserver update (see https://github.com/plexinc/pms-docker/blob/master/root/etc/cont-init.d/50-plex-update) was overwriting my iOS.xml file.

The solution is to build the image using the files listed below:

Dockerfile

FROM plexinc/pms-docker:plexpass

COPY iOS.xml /usr/lib/plexmediaserver/Resources/Profiles/iOS.xml.new
COPY 60-plex-new-ios-xml /etc/cont-init.d/60-plex-new-ios-xml

60-plex-new-ios-xml (don’t forget to make this file executable)

#!/usr/bin/with-contenv bash

# If we are debugging, enable trace
if [ "${DEBUG,,}" = "true" ]; then
  set -x
fi

mv /usr/lib/plexmediaserver/Resources/Profiles/iOS.xml.new /usr/lib/plexmediaserver/Resources/Profiles/iOS.xml

iOS.xml (replace VideoProfile tag in original file)

...
<DirectPlayProfiles>
    <VideoProfile container="mkv,mov,mp4,mpegts,mpeg,mpegvideo,avi,flv,ogg" codec="h264,hevc,vp8,vp9,h263,mpeg1video,mpeg2video,mpeg4,vc1" audioCodec="aac,aac_latm,ac3,alac,flac,dca,vorbis,opus,eac3,mp1,mp2,mp3" subtitleCodec="ass,dvb_subtitle,vobsub,eia_608,pgs,microdvd,movtext,ssa,srt" />
...
5 Likes

Thanks for posting this info. Working like a charm for me. :smiley:

I have added the line of code, But when I try to play the video it just spins and spins till it times out. Any ideas?

Thanks, just added your code to my MacMini server and it works like a charm!

PS I used this method and copied the original iOS.xml to the alternate location so it would not get over written with an update.

~/Library/Application Support/Plex Media Server/Profiles/ios.xml

Is there anyway to do this by user?

Some of my shares do not have a Plex Pass and things will not play for them since they can not use the experimental player.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.