Skip to content

Instantly share code, notes, and snippets.

@Waester
Last active May 19, 2025 21:38
Show Gist options
  • Save Waester/544b648cba78a2c45b1f430d82f1dc8f to your computer and use it in GitHub Desktop.
Save Waester/544b648cba78a2c45b1f430d82f1dc8f to your computer and use it in GitHub Desktop.
#!/usr/bin/python3
import sys
import os
import re
args = sys.argv
layout = {
"stereo": "2",
"5.1": "6"
}
for i in range(len(args)):
if args[i] == "-filter_complex" and ":ochl=" in args[i+1]:
fc = re.search("^\[([^\]]+)\].*:ochl='([^']+)'.*:osr=([0-9]+)", args[i+1])
if fc.group(2) in layout:
args.pop(i)
args.pop(i)
for ii in range(i, len(args)):
if args[ii] == "-map":
args[ii+1] = fc.group(1)
break
for ii in range(i, len(args)):
if "-codec:" in args[ii]:
stream = re.search("-codec:(.+)", args[ii]).group(1)
args.insert(ii+2, f"-ac:{stream}")
args.insert(ii+3, layout[fc.group(2)])
args.insert(ii+4, f"-ar:{stream}")
args.insert(ii+5, fc.group(3))
args.insert(ii+6, f"-filter:{stream}")
args.insert(ii+7, "acontrast=100")
break
break
os.execv("/usr/lib/plexmediaserver/PlexTranscoder", args)
[Service]
ExecStartPost=+/var/lib/plexmediaserver/pre-hook.py
#!/usr/bin/python3
import os
if not os.path.islink("/usr/lib/plexmediaserver/Plex Transcoder"):
os.replace("/usr/lib/plexmediaserver/Plex Transcoder", "/usr/lib/plexmediaserver/PlexTranscoder")
os.symlink("/var/lib/plexmediaserver/hook.py", "/usr/lib/plexmediaserver/Plex Transcoder")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment