So far every movie I’ve tried with TRUEHD audio has failed, 5 for 5.
I think I’m misunderstanding.
Is this a TrueHD decode
-OR-
Is this an EAC3 encode
problem?
You’ve not run out of inotify user_watches, have you?
Audio track: English (TRUEHD 7.1)
If I play this on the roku with the latest version the transcoder crashes.
If I play this on the roku with the previous minor version it transcodes audio to EAC3 and plays successfully.
I can try to increase it if you think that could cause this, here are the current values:
sysctl --all | grep inotify
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1002703
user.max_inotify_instances = 1024
user.max_inotify_watches = 1002703
Never seen that result in a floating point exception before but there’s a first time for everything.
We’ve not seen this type of failure either. This is why we’re scratching heads.
It’s acting like either bad media or a TrueHD decode problem.
We’ve beat the snot out of EAC3 decode and encode in a special forum build.
This is why I’m trying to isolate. Was something lost between then and now or is this something new ?
I’m guessing the difference is they are trying to play an EAC3 audio stream, where I’m trying to play a TRUEHD audio stream that is being transcoded to EAC3?
I’m not trying to read too much into the specifics you’re the expert. Let me know how else I can help out.
What would really help me, which I’m trying to recreate here, is a full FFMPEG invocation command script, writing output to a file, which replicates it.
So far, I’ve replicated with your file but not with other TrueHD → EAC3
All I need is the base framework in a shell script to recreate then I can give it to Chris to run in the debugger ( LLDB )
Kinda looks like this. (I’ve got more work to do in order to test other (arbitrary) video files)
root@plex:~# cat runfpe.sh
#!/bin/bash
# Chuck incus
export PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR="/var/lib/plexmediaserver/Library/Application Support"
export EAE_ROOT=/tmp/pms-c7d2de92-b957-4812-927c-ce5919f4498c/EasyAudioEncoder
export FFMPEG_EXTERNAL_LIBS='/var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Codecs/1c96867-c7c51eae1050ee8a09ae8dc1-linux-x86_64/'
#setup
mkdir -p "$EAE_ROOT"
"/usr/lib/plexmediaserver/Plex Transcoder" -codec:0 h264 -codec:1 truehd_eae -eae_prefix:1 dfbd7676-272c-42a7-97a2-6630eefe3db3-7309_ -ss 16 -noaccurate_seek -analyzeduration 20000000 -probesize 20000000 -i "/glock/media/testfiles/EAC3-FPE-Snippet.mkv" -map 0:0 -metadata:s:0 language=eng -codec:0 copy -filter_complex "[0:1] aresample=async=1:ochl='5.1(side)':rematrix_maxval=0.000000dB:osr=48000[0]" -map "[0]" -metadata:s:1 language=eng -codec:1 eac3_eae -eae_prefix:1 dfbd7676-272c-42a7-97a2-6630eefe3db3-7309_ -b:1 774k -break_non_keyframes 1 -segment_format mpegts -f ssegment -individual_header_trailer 0 -segment_time 1 -segment_start_number 16 -segment_copyts 1 -segment_time_delta 0.0625 -segment_list "http://127.0.0.1:32400/video/:/transcode/session/dfbd7676-272c-42a7-97a2-6630eefe3db3-7309/9842156f-9649-46fc-99c9-2d5dc2ae9c4f/manifest?X-Plex-Http-Pipeline=infinite" -segment_list_type csv -segment_list_size 5 -segment_list_separate_stream_times 1 -segment_list_unfinished 1 -max_delay 5000000 -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 "media-%05d.ts" -start_at_zero -copyts -y -nostats -loglevel quiet -loglevel_plex error
If you can help me a bit, I’d greatly appreciate it. I’m overloaded and trying to catch up from being out
There is a confirmed problem with PMS 1.41.7.x transcoding TrueHD to EAC3.
I’ve traded messages with Chuck & others at Plex. They’re aware and working on a fix.
The workaround is to fall back to 1.41.6 or earlier versions.
Yes I know thanks @FordGuy61. I reported this while it was still in beta and am trying to help debug it with Chuck.
The problem appears to be in libavcodec.so from 1.41.7, if I replace just that one .so with the version in 1.41.6 TRUEHD trancodes correctly.
@ChuckPa do you still need a test script or do you guys have enough to go on now?
I see a number of others have reported this now that it is out of beta.
If you have the script, which I’ll give to Chris, that would be nice.
I know he can do it but he’s also got a lot on his plate so anything helps.
One of the Ninjas was able to repro.
The only challenge is to repro with the transcoder running in the debugger (lldb) to find the offending line of code & stack trace.
Not much but it takes the command you had takes an input file as the first argument and sends stdout&stderr to testfpe-UUID.log
#!/bin/bash
input_file=$1
if [[ -z $input_file ]]
then
echo "You must specify an input filename"
exit 1
fi
output_file="runfpe-$(uuidgen).log"
# Chuck incus
export PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR="/var/lib/plexmediaserver/Library/Application Support"
export EAE_ROOT=/tmp/pms-c7d2de92-b957-4812-927c-ce5919f4498c/EasyAudioEncoder
export FFMPEG_EXTERNAL_LIBS="$PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR/Plex\ Media\ Server/Codecs/1c96867-c7c51eae1050ee8a09ae8dc1-linux-x86_64"
#setup
mkdir -p "$EAE_ROOT"
"/usr/lib/plexmediaserver/Plex Transcoder" -codec:0 h264 -codec:1 truehd_eae -eae_prefix:1 dfbd7676-272c-42a7-97a2-6630eefe3db3-7309_ -ss 16 -noaccurate_seek -analyzeduration 20000000 -probesize 20000000 -i $input_file -map 0:0 -metadata:s:0 language=eng -codec:0 copy -filter_complex "[0:1] aresample=async=1:ochl='5.1(side)':rematrix_maxval=0.000000dB:osr=48000[0]" -map "[0]" -metadata:s:1 language=eng -codec:1 eac3_eae -eae_prefix:1 dfbd7676-272c-42a7-97a2-6630eefe3db3-7309_ -b:1 774k -break_non_keyframes 1 -segment_format mpegts -f ssegment -individual_header_trailer 0 -segment_time 1 -segment_start_number 16 -segment_copyts 1 -segment_time_delta 0.0625 -segment_list "http://127.0.0.1:32400/video/:/transcode/session/dfbd7676-272c-42a7-97a2-6630eefe3db3-7309/9842156f-9649-46fc-99c9-2d5dc2ae9c4f/manifest?X-Plex-Http-Pipeline=infinite" -segment_list_type csv -segment_list_size 5 -segment_list_separate_stream_times 1 -segment_list_unfinished 1 -max_delay 5000000 -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 "media-%05d.ts" -start_at_zero -copyts -y -nostats -loglevel quiet -loglevel_plex error >$output_file 2>&1
root@nas:/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Logs# lldb "/usr/lib/plexmediaserver/Plex Transcoder"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'lldb.embedded_interpreter'
(lldb) target create "/usr/lib/plexmediaserver/Plex Transcoder"
Current executable set to '/usr/lib/plexmediaserver/Plex Transcoder' (x86_64).
(lldb) set env EAE_ROOT /tmp/pms-be830b3c-0952-4ab0-a679-b4de0823a2a9/EasyAudioEncoder
invalid command 'settings env'.
(lldb) env EAE_ROOT=/tmp/pms-be830b3c-0952-4ab0-a679-b4de0823a2a9/EasyAudioEncoder
(lldb) env FFMPEG_EXTERNAL_LIBS='/var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Codecs/1c96867-c7c51eae1050ee8a09ae8dc1-linux-x86_64/'
(lldb) env X_PLEX_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
(lldb) run -codec:0 h264 -codec:1 truehd_eae -eae_prefix:1 3e1e8f63-aec3-4212-86d9-1d490c10b96d-428_ -noaccurate_seek -analyzeduration 20000000 -probesize 20000000 -i "/export/tv/Landman/Season 01/s01e01.mkv" -map 0:0 -metadata:s:0 language=eng -codec:0 copy -filter_complex "[0:1] aresample=async=1:ochl='5.1(side)':rematrix_maxval=0.000000dB:osr=48000[0]" -map "[0]" -metadata:s:1 language=eng -codec:1 eac3_eae -eae_prefix:1 3e1e8f63-aec3-4212-86d9-1d490c10b96d-428_ -b:1 774k -break_non_keyframes 1 -segment_format mpegts -f ssegment -individual_header_trailer 0 -segment_time 1 -segment_start_number 0 -segment_copyts 1 -segment_time_delta 0.0625 -segment_list "http://127.0.0.1:32400/video/:/transcode/session/3e1e8f63-aec3-4212-86d9-1d490c10b96d-428/371724f4-fa78-48ee-84ec-6f5c5ef97807/manifest?X-Plex-Http-Pipeline=infinite" -segment_list_type csv -segment_list_size 5 -segment_list_separate_stream_times 1 -segment_list_unfinished 1 -max_delay 5000000 -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 "media-%05d.ts" -start_at_zero -copyts -vsync cfr -y -nostats -loglevel quiet -loglevel_plex error -progressurl http://127.0.0.1:32400/video/:/transcode/session/3e1e8f63-aec3-4212-86d9-1d490c10b96d-428/371724f4-fa78-48ee-84ec-6f5c5ef97807/progress
Process 1071353 launched: '/usr/lib/plexmediaserver/Plex Transcoder' (x86_64)
Process 1071353 stopped
* thread #1, name = 'Plex Transcoder', stop reason = signal SIGFPE: integer divide by zero
frame #0: 0x00007ffff6f93912 libavcodec.so.59`___lldb_unnamed_symbol2858 + 658
libavcodec.so.59`___lldb_unnamed_symbol2858:
-> 0x7ffff6f93912 <+658>: divl %edi
0x7ffff6f93914 <+660>: movl %eax, %r15d
0x7ffff6f93917 <+663>: leal -0x1(%rsi), %eax
0x7ffff6f9391a <+666>: cmpq %rax, %r14
(lldb) bt
* thread #1, name = 'Plex Transcoder', stop reason = signal SIGFPE: integer divide by zero
* frame #0: 0x00007ffff6f93912 libavcodec.so.59`___lldb_unnamed_symbol2858 + 658
frame #1: 0x00007ffff6f924ae libavcodec.so.59`___lldb_unnamed_symbol2854 + 414
frame #2: 0x00007ffff6f97a1f libavcodec.so.59`___lldb_unnamed_symbol2867 + 127
frame #3: 0x00007ffff6f97960 libavcodec.so.59`avcodec_send_frame + 592
frame #4: 0x00007ffff7ff574d Plex Transcoder`___lldb_unnamed_symbol962 + 1149
frame #5: 0x00007ffff7fee48a Plex Transcoder`___lldb_unnamed_symbol950 + 14506
frame #6: 0x00007ffff7fea3d7 Plex Transcoder`main + 583
(lldb) register read --all
General Purpose Registers:
rax = 0x0000000000009000
rbx = 0x00007ffff771a168
rcx = 0x0000000000000000
rdx = 0x0000000000000000
rdi = 0x0000000000000000
rsi = 0x0000000000000014
rbp = 0x0000000000000000
rsp = 0x00007fffffff8b10
r8 = 0x0000000000000000
r9 = 0x00007ffff20870d0
r10 = 0x0000000000000000
r11 = 0x0000000000000000
r12 = 0x00007ffff771a100
r13 = 0x00007ffff7e43500
r14 = 0x0000000000000000
r15 = 0x00007ffff771a100
rip = 0x00007ffff6f93912 libavcodec.so.59`___lldb_unnamed_symbol2858 + 658
rflags = 0x0000000000010246
cs = 0x0000000000000033
fs = 0x0000000000000000
gs = 0x0000000000000000
ss = 0x000000000000002b
ds = 0x0000000000000000
es = 0x0000000000000000
eax = 0x00009000
ebx = 0xf771a168
ecx = 0x00000000
edx = 0x00000000
edi = 0x00000000
esi = 0x00000014
ebp = 0x00000000
esp = 0xffff8b10
r8d = 0x00000000
r9d = 0xf20870d0
r10d = 0x00000000
r11d = 0x00000000
r12d = 0xf771a100
r13d = 0xf7e43500
r14d = 0x00000000
r15d = 0xf771a100
ax = 0x9000
bx = 0xa168
cx = 0x0000
dx = 0x0000
di = 0x0000
si = 0x0014
bp = 0x0000
sp = 0x8b10
r8w = 0x0000
r9w = 0x70d0
r10w = 0x0000
r11w = 0x0000
r12w = 0xa100
r13w = 0x3500
r14w = 0x0000
r15w = 0xa100
ah = 0x90
bh = 0xa1
ch = 0x00
dh = 0x00
al = 0x00
bl = 0x68
cl = 0x00
dl = 0x00
dil = 0x00
sil = 0x14
bpl = 0x00
spl = 0x10
r8l = 0x00
r9l = 0xd0
r10l = 0x00
r11l = 0x00
r12l = 0x00
r13l = 0x00
r14l = 0x00
r15l = 0x00
Floating Point Registers:
fctrl = 0x037f
fstat = 0x0020
ftag = 0xffff
fop = 0x0000
fiseg = 0x00000000
fioff = 0x00000000
fip = 0x0000000000000000
foseg = 0x00000000
fooff = 0x00000000
fdp = 0x0000000000000000
mxcsr = 0x00001fa0
mxcsrmask = 0x0002ffff
st0 = {0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0xff 0xff}
st1 = {0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0xff 0xff}
st2 = {0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0xff 0xff}
st3 = {0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0xff 0xff}
st4 = {0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0xff 0xff}
st5 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80 0xff 0xbf}
st6 = {0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x80 0x3f 0xc0}
st7 = {0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x80 0x3f 0xc0}
mm0 = 0x8080808080808080
mm1 = 0x8080808080808080
mm2 = 0x1010101010101010
mm3 = 0x1010101010101010
mm4 = 0x1010101010101010
mm5 = 0x8000000000000000
mm6 = 0x8000000000000002
mm7 = 0x8000000000000001
xmm0 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
xmm1 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
xmm2 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
xmm3 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
xmm4 = {0x00 0x00 0x00 0x30 0x00 0x00 0x00 0x30 0x00 0x00 0x00 0x30 0x00 0x00 0x00 0x30}
xmm5 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
xmm6 = {0x71 0x74 0x30 0x68 0x00 0x00 0x00 0x00 0xa2 0xbf 0xd0 0x19 0x00 0x00 0x00 0x00}
xmm7 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
xmm8 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x01 0x00 0x00 0x00}
xmm9 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
xmm10 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
xmm11 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
xmm12 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
xmm13 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
xmm14 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
xmm15 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
Advanced Vector Extensions:
ymm0 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
ymm1 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
ymm2 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
ymm3 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
ymm4 = {0x00 0x00 0x00 0x30 0x00 0x00 0x00 0x30 0x00 0x00 0x00 0x30 0x00 0x00 0x00 0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
ymm5 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
ymm6 = {0x71 0x74 0x30 0x68 0x00 0x00 0x00 0x00 0xa2 0xbf 0xd0 0x19 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
ymm7 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
ymm8 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
ymm9 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
ymm10 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
ymm11 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
ymm12 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
ymm13 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
ymm14 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
ymm15 = {0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00}
I’ll leave this debugger open so let me know if there is anything else you want me to check
I got a message from Chris. He has figured out why it’s happening.
He didn’t say anything more in his one-line message so I hope that means he’s close to the solution.
If you’d leave this here (I do realize this is a US holiday weekend upcoming).
Of course, happy to help I’ll be here.
Will there be a post on this thread when there is a release that fixes this issue?
I will try both:
-
Get an engineering build which solves the issue so it can be confirmed in real life before Chris releases it
-
Let everyone know when it’s headed to a formal PMS release build (and version)
I might have missed it above, but I wanted to note that I am seeing this behavior on other 7.1 audio tracks as well, such as AAC or HE-AAC 7.1. It only happens on the Roku.
I’m just supplying this as a data point, just in case.
New beta release to fix the problem with transcoding to EAC3: Plex Media Server - #677 by chris_decker08
- (Transcoding) Encoding to Dolby audio codecs could cause the Transcoder to crash. (PM-3561)
Confirmed 1.41.7.9823-59f304c16 fixes the issue ![]()
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.
