lilyinstarlight / overlay

overlay of new useful packages and fixes for some problems in main repo packages
26 stars 11 forks source link

Plex Transcoder 2016-12 #34

Closed comio closed 7 years ago

comio commented 7 years ago

Hi Foster,

this is not an issue... I'm just asking your opinion.

Plex has released the last PMS 1.4 with the plex-ffmpeg sources. I noticed that is almsot a ffmpeg 3.2 with code from plex and some patches cherrypicked from ffmepg dev mailing list (ie MediaFoundation support).

In your opinion, can we add a package plex-ffmpeg in order to build the transcoder and add a USE to pms ebuild in order to depend on it?

I tried to build using a little-modified ffmpeg ebuild with success.

BTW, calling "Plex Transcoder" (that is a ffmpeg executable renamed) I have the following build flags (plex guys are enabling only some econder/decoder... instead to enable all available):

configuration: --libdir=/data/jenkins/pms-deps-universal-v2/BUILD_TAG/linux-ubuntu-x86_64/output/pms-depends-linux-ubuntu-x86_64-release-73eb983/lib --prefix=/data/jenkins/pms-deps-universal-v2/BUILD_TAG/linux-ubuntu-x86_64/output/pms-depends-linux-ubuntu-x86_64-release-73eb983 --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-decoder=vc1_qsv --enable-decoder=h264_qsv --enable-decoder=mpeg2_qsv --enable-decoder=hevc_qsv --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 --enable-encoder=h264_qsv --enable-encoder=mpeg2_qsv --enable-encoder=hevc_qsv --enable-encoder=h264_vaapi --enable-encoder=hevc_vaapi --enable-encoder=h264_nvenc --cc='ccache gcc' --enable-libmfx --extra-ldflags=-L/data/jenkins/pms-deps-universal-v2/BUILD_TAG/linux-ubuntu-x86_64/output/pms-depends-linux-ubuntu-x86_64-release-73eb983/lib --extra-libs='-lgcrypt -lgpg-error -ldl'

ciao

luigi

comio commented 7 years ago

Just a note. At this stage we need to manually install the intel media server studio and libmfx (see luzero blog) in order to enable quick sync codecs.

ciao

luigi

lilyinstarlight commented 7 years ago

How do you intend to have PMS depend on a system executable? Do you plan to have the plex-ffmpeg package install the other version as '/usr/bin/plex-ffmpeg' and then have the plex-media-server package do a ln -s /usr/bin/plex-ffmpeg /opt/plexmediaserver/Plex\ Transcoder when it is installed?

Side note: I haven't looked at the 1.4.0 package yet.

comio commented 7 years ago

The binary 1.4.0 package works fine and it uses vaapi to transcode.

Of course the pure QuickSync (aka Intel MediaSDK) is not supported. I tried to install the Intel MediaSDK Essential and I created a wrapper script to remap LD_LIBRARY_PATH and PATH in order to load Intel binaries first (all installed into /opt) and vainfo crashes :D funny

A this point I will concentrate to have a vaapi-enabled plex-ffmpeg release.

ciao

luigi

Il giorno mar 27 dic 2016 alle ore 18:53 Foster McLane < notifications@github.com> ha scritto:

How do you intend to have PMS depend on a system executable? Do you plan to have the plex-ffmpeg package install the other version as '/usr/bin/plex-ffmpeg' and then have the plex-media-server package do a ln -s /usr/bin/plex-ffmpeg /opt/plexmediaserver/Plex\ Transcoder when it is installed?

Side note: I haven't looked at the 1.4.0 package yet.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/fkmclane/overlay/issues/34#issuecomment-269359445, or mute the thread https://github.com/notifications/unsubscribe-auth/AAQ8U6u5c9Pk9TRVCI4mfkboetzTBncHks5rMVCLgaJpZM4LWMiH .

-- Luigi Mantellini