I have installed the recent version (1.0.3) of Plex Media Server on my linux box. Most of the functionality works well, except for transcoding. When a movie is to be transcoded, it doesn't play so I enabled debug logging and looked into the logs.
Here is the interesting part:
Aug 12, 2016 21:22:08.632 [0x7f11bfffd700] DEBUG - Job running: FFMPEG_EXTERNAL_LIBS='/var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Codecs/ecd8c57-1099-linux-ubuntu-x86_64/' XDG_CACHE_HOME='/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Cache/' XDG_DATA_HOME='/usr/lib/plexmediaserver/Resources/' X_PLEX_TOKEN='xxxxxxxxxxxxxxxxxxxxaserver/Resources/Plex Transcoder' '-codec:#0x01' 'mpeg4' '-i' '/mnt/movies/children/dzieci.avi' '-filter_complex' '[0:#0x01]scale=w=min(720\,iw):h=min(432\,ih):force_original_aspect_ratio=decrease[0]' '-map' '[0]' '-codec:0' '' '-qscale:0' '9' '-maxrate:0' '2524k' '-bufsize:0' '5048k' '-r:0' '25' '-vsync' '0' '-x264opts' 'bframes=3:cabac=1' '-async' '1' '-map' '0:#0x02' '-metadata:s:1' 'language=pol' '-codec:1' 'copy' '-copypriorss:1' '0' '-f' 'matroska' '-map_metadata' '-1' '-map_chapters' '-1' '-' '-y' '-nostats' '-loglevel' 'quiet' '-loglevel_plex' 'error' '-progressurl' 'http://127.0.0.1:32400/video/:/transcode/session/7454028f2cbafae953c0b3aca360635928d96968/progress'
Aug 12, 2016 21:22:08.634 [0x7f11bfffd700] VERBOSE - Starting child process with pid 30463
Aug 12, 2016 21:22:08.642 [0x7f11be7fa700] ERROR - [Transcoder] Unrecognized option 'x264opts'.
Aug 12, 2016 21:22:08.643 [0x7f11ca7ff700] ? - [Transcoder] Error splitting the argument list: Option not found
Aug 12, 2016 21:22:08.644 [0x7f11bfffd700] ERROR - Failed to start session successfully.
as it seems, the ffmpeg bundled with the Plex Server is not built with x264 support:
plex:~$ /usr/lib/plexmediaserver/Resources/Plex\ Transcoder
ffmpeg version git-2016-07-12-ecd8c57 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.8.2 (GCC)
configuration: --libdir=/data/jenkins/pms-deps-universal-v2/BUILD_TAG/linux-ubuntu-x86_64/output/pms-depends-linux-ubuntu-x86_64-release-c0dbc55/lib --prefix=/data/jenkins/pms-deps-universal-v2/BUILD_TAG/linux-ubuntu-x86_64/output/pms-depends-linux-ubuntu-x86_64-release-c0dbc55 --disable-bzlib --disable-ffplay --disable-ffserver --disable-ffprobe --disable-avdevice --disable-schannel --disable-vda --disable-debug --disable-doc --disable-shared --pkg-config-flags=--static --arch=x86_64 --enable-muxers --enable-gpl --enable-version3 --enable-gnutls --disable-encoders --disable-decoders --disable-hwaccels --enable-libass --enable-librtmp --disable-devices --disable-lzma --disable-iconv --disable-protocol=concat --enable-libzvbi --enable-libvorbis --enable-libopus --external-decoder=h264 --enable-decoder=png --enable-decoder=apng --enable-decoder=bmp --enable-decoder=mjpeg --enable-decoder=thp --enable-decoder=gif --enable-decoder=dirac --enable-decoder=ffv1 --enable-decoder=ffvhuff --enable-decoder=huffyuv --enable-decoder=rawvideo --enable-decoder=zero12v --enable-decoder=ayuv --enable-decoder=r210 --enable-decoder=v210 --enable-decoder=v210x --enable-decoder=v308 --enable-decoder=v408 --enable-decoder=v410 --enable-decoder=y41p --enable-decoder=yuv4 --enable-decoder=ansi --enable-decoder=alac --enable-decoder=flac --enable-decoder=vorbis --enable-decoder=opus --enable-decoder=pcm_f32be --enable-decoder=pcm_f32le --enable-decoder=pcm_f64be --enable-decoder=pcm_f64le --enable-decoder=pcm_lxf --enable-decoder=pcm_s16be --enable-decoder=pcm_s16be_planar --enable-decoder=pcm_s16le --enable-decoder=pcm_s16le_planar --enable-decoder=pcm_s24be --enable-decoder=pcm_s24le --enable-decoder=pcm_s24le_planar --enable-decoder=pcm_s32be --enable-decoder=pcm_s32le --enable-decoder=pcm_s32le_planar --enable-decoder=pcm_s8 --enable-decoder=pcm_s8_planar --enable-decoder=pcm_u16be --enable-decoder=pcm_u16le --enable-decoder=pcm_u24be --enable-decoder=pcm_u24le --enable-decoder=pcm_u32be --enable-decoder=pcm_u32le --enable-decoder=pcm_u8 --enable-decoder=pcm_alaw --enable-decoder=pcm_mulaw --enable-decoder=ass --enable-decoder=dvbsub --enable-decoder=dvdsub --enable-decoder=ccaption --enable-decoder=pgssub --enable-decoder=jacosub --enable-decoder=microdvd --enable-decoder=movtext --enable-decoder=mpl2 --enable-decoder=pjs --enable-decoder=realtext --enable-decoder=sami --enable-decoder=ssa --enable-decoder=stl --enable-decoder=subrip --enable-decoder=subviewer --enable-decoder=text --enable-decoder=vplayer --enable-decoder=webvtt --enable-decoder=xsub --enable-decoder=libzvbi_teletext --enable-encoder=flac --enable-encoder=alac --enable-encoder=libvorbis --enable-encoder=libopus --enable-encoder=mjpeg --enable-encoder=wrapped_avframe --enable-encoder=ass --enable-encoder=dvbsub --enable-encoder=dvdsub --enable-encoder=movtext --enable-encoder=ssa --enable-encoder=subrip --enable-encoder=text --enable-encoder=webvtt --enable-encoder=xsub --enable-encoder=pcm_f32be --enable-encoder=pcm_f32le --enable-encoder=pcm_f64be --enable-encoder=pcm_f64le --enable-encoder=pcm_s8 --enable-encoder=pcm_s8_planar --enable-encoder=pcm_s16be --enable-encoder=pcm_s16be_planar --enable-encoder=pcm_s16le --enable-encoder=pcm_s16le_planar --enable-encoder=pcm_s24be --enable-encoder=pcm_s24le --enable-encoder=pcm_s24le_planar --enable-encoder=pcm_s32be --enable-encoder=pcm_s32le --enable-encoder=pcm_s32le_planar --enable-encoder=pcm_u8 --enable-encoder=pcm_u16be --enable-encoder=pcm_u16le --enable-encoder=pcm_u24be --enable-encoder=pcm_u24le --enable-encoder=pcm_u32be --enable-encoder=pcm_u32le --cc='ccache gcc' --extra-ldflags=-L/data/jenkins/pms-deps-universal-v2/BUILD_TAG/linux-ubuntu-x86_64/output/pms-depends-linux-ubuntu-x86_64-release-c0dbc55/lib --extra-libs='-lgcrypt -lgpg-error -ldl'
libavutil 55. 24.100 / 55. 24.100
libavcodec 57. 41.102 / 57. 41.102
libavformat 57. 37.100 / 57. 37.100
libavfilter 6. 45.100 / 6. 45.100
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
I tried replacing the ffmpeg with a 'stock', statically linked ffmpeg from http://johnvansickle.com/ffmpeg/
I got another error stating the transcoding failed to start.
so I su-ed to plex and tried to run the command for transcoding manually. With the original Plex Transcoder I still got the same error about x264opts (apparently no libx264 support), but with the 'stock' ffmpeg I got another error:
Unknown encoder ''
if you look into the log entry above, you will notice a part of the command: '-codec:0' '' '-qscale:0'
apparently, Plex Server does not set correctly the desired encoder (libx264 ?). When I changed '' to 'libx264' ffmpeg (stock/replaced) started the transcoding.
So there are two issues I have encountered:
1) the bundled Plex Transcoder is an ffmpeg with no support for x264 ?
2) Plex Media Server does not set correctly the desired video encoder when executing transcode
Am I doing something obviously wrong? Can anyone help me with these issues?