This is actually two bugs in one.
- PMS and/or Plex Transcoder are broken when it comes to the Mobile Sync feature. When selecting the “Original” quality for sync, it doesn’t work and the following ends up in the log:
Aug 26, 2016 17:42:14.085 [0xe74ff400] DEBUG - Job running: FFMPEG_EXTERNAL_LIBS=’/home/plex/Library/Application\ Support/Plex\ Media\ Server/Codecs/ecd8c57-1099-linux-annapurna-arm7/’ XDG_CACHE_HOME=’/home/plex/Library/Application Support/Plex Media Server/Cache/’ XDG_DATA_HOME=’/usr/lib/plexmediaserver/Resources/’ X_PLEX_TOKEN=‘xxxxxxxxxxxxxxxxxxxx’ ‘/usr/lib/plexmediaserver/Resources/Plex Transcoder’ ‘-codec:#0x01’ ‘h264’ ‘-i’ ‘/zfs/media/Animated/Series/The Raccoons/Season 01/The Raccoons - s01e01 - Surprise Attack.mp4’ ‘-filter_complex’ ‘[0:#0x01]scale=w=min(720,iw):h=min(576,ih):force_original_aspect_ratio=decrease[0]’ ‘-map’ ‘[0]’ ‘-codec:0’ ‘libx264’ ‘-crf:0’ ‘16’ ‘-pix_fmt:0’ ‘yuv420p’ ‘-maxrate:0’ ‘4303k’ ‘-bufsize:0’ ‘8606k’ ‘-r:0’ ‘25’ ‘-preset:0’ ‘veryslow’ ‘-x264opts:0’ ‘subme=1:me_range=4:rc_lookahead=10:me=hex:8x8dct=0:partitions=none’ ‘-map’ ‘0:#0x02’ ‘-metadata:s:1’ ‘language=eng’ ‘-codec:1’ ‘copy’ ‘-copypriorss:1’ ‘0’ ‘-f’ ‘mp4’ ‘-map_metadata’ ‘-1’ ‘-map_chapters’ ‘-1’ ‘-movflags’ ‘+faststart’ ‘/home/plex/Library/Application Support/Plex Media Server/Cache/Transcode/Sync+/11031375/2b/4460.mp4.temp’ ‘-y’ ‘-nostats’ ‘-loglevel’ ‘quiet’ ‘-loglevel_plex’ ‘error’ ‘-progressurl’ ‘http://127.0.0.1:32400/video/:/transcode/session/10a74a45-69b1-4900-8f50-2d63a341535e/progress’
Aug 26, 2016 17:42:14.088 [0xe74ff400] VERBOSE - Starting child process with pid 3431
Aug 26, 2016 17:42:14.088 [0xe74ff400] DEBUG - Started session successfully: 10a74a45-69b1-4900-8f50-2d63a341535e
Aug 26, 2016 17:42:14.101 [0xe6177400] ERROR - [Transcoder] Unrecognized option ‘crf:0’.
Aug 26, 2016 17:42:14.103 [0xed177400] ? - [Transcoder] Error splitting the argument list: Option not found
Aug 26, 2016 17:42:14.103 [0xefa7e400] VERBOSE - JobManager: child process with PID 3431
Aug 26, 2016 17:42:14.104 [0xefa7e400] ERROR - JobManager: child process returned: 1 (Operation not permitted)
Either PMS is sending a broken option to PT which make it choke (‘crf:0’) or PT itself is broken by not accepting that option.
- It is trying to transcode - which it shouldn’t be, since the target device supports the media in the source format just fine (DirectPlay works). So there is a mis-detection in play where PMS erroneously insist on transcoding media that is DirectPlay-able even though the “Original” quality is selected. Even if DirectPlay in the settings is set to “Forced”, it still does it.
As far as I can tell, on very low resolution and bit rate videos, sync works (320x240) because it doesn’t decide it needs to transcode, but for anything bigger (e.g. 480p DVD extracts) it erroneously decides to transcode. This is quite clearly broken behaviour, tested on 5 different Android devices (Nexus 4, Nexus 5X, Nexus 9, Moto G, LG G-Pad 7), and at the very least transcoding and detection should be forcibly disabled for mobile sync when DirectPlay on the device is set to “Forced” in the settings.
The version of binaries I am using are for the QNAP X31+ (ARM).