Windows x86 fix here. Step by step instructions to generate your own Windows x86 fix here.
“TranscodeSession: timed out waiting to find duration for live session”
It looked like the -probesize in the call to ‘Plex Transcoder’ was being sent as 4x the default of ffmpeg. Probesize pre-loads the stream/file a certain amount to get information about the stream, size, codec, tracks, etc before processing it. I created a python shim to bump that value down to keep PMS from timing out. Strangely, there were other arguments being passed that ‘Plex Transcoder’ didn’t like, so I removed those too. YMMV
You’ll have to rename ‘Plex Transcoder’ to ‘plex_transcoder’ and create ‘Plex Transcoder’ with this python code, executable.
#!/usr/bin/python
import sys
from sys import argv
import subprocess
# Tell this shim where the 'real' Plex Transcoder is
#cmd = '/Applications/Plex Media Server.app/Contents/MacOS/plex_transcoder' # for mac
cmd = '/usr/lib/plexmediaserver/plex_transcoder' # for linux/ubuntu
# Get all arguments passed to what it thinks is the original 'Plex Transcoder'
cmdargs = sys.argv
# Remove the first argument (the script/program name itself)
cmdargs.pop(0)
# Initialize the argument counter
cmdindex=0
# Loop through all arguments and modify them as needed
# - remove arguments that when passed to the original 'Plex Transcoder' error it out.
for cmdarg in cmdargs:
# lower the '-probesize' so that it keeps us under the timeout limit of PMS
if cmdarg == "-probesize":
cmdargs[cmdindex+1]="9000000" # was 20000000
# remove offending arguments
if cmdarg == "-x264opts:0" or cmdarg == "-crf:0" or cmdarg == "-preset:0":
cmdargs[cmdindex]=""
# escape single quotes in arguments
cmdargs[cmdindex]=str(cmdarg).replace("'", "\\'")
# bump up the counter for the next loop
cmdindex += 1
target = [cmd] + cmdargs
subprocess.call(target)