wnielson / Plex-Remote-Transcoder

A distributed transcoding backend for Plex
MIT License
640 stars 59 forks source link

Playback fails after upgrade to plex 1.4.1 #52

Open speedminion87 opened 7 years ago

speedminion87 commented 7 years ago

Good Day to you all, and may I once again thank all of those involved in this project. Truly an amazing feature which should be part of plex by default. Anyways, I'm hoping someone can shed some light on the latest issue when they have a moment,

I have had the remote transcode working perfectly up to version 1.3.4.3285. After an upgrade to the latest 1.4.1.xxx release there seems to be something very slightly amiss. I go through the usual steps of upgrade by, removing plex_transcode, upgrade plex, re-run prt install etc, I then restart plex for good measure. When I try to play a file on my iphone for example, I can see it appear in Now Playing, and i can see that prt has started the transcode job on the remote server, but nothing actually plays. Under Now playing it just says Buffering (this is over wifi where it worked moments before the upgrade) and just stays like that indefinitely until I press stop and it ends the transcode job, no errors to be seen.

I then rolled back to 1.3.4, followed the above steps and everything works great again, tried the upgrade once more, and again back to the buffering and no play.

So to summarise, after the 1.4.1 upgrade and re-install of prt...it seems to begin the transcode fine, but never seems to start playing, and according to plex its Buffering.

I hope this can be tested and fixed easily for now I have rolled again back to 1.3.4 and all is well again.

Thanks for all your support in this project SpeedMinion.

wnielson commented 7 years ago

@dhruvb14 reported issues upgrading as well (with version 1.3.4.3285) (#51). I haven't had enough time to run through the upgrade process yet. I hope to have some time this week to try to diagnose the problem. For now, sit tight and don't upgrade until we have a fix!

liviynz commented 7 years ago

I can confirm this issue, it's a weird one that only seems to fail in my tests on remote nodes, I'll have to try and pin it down. They've made some large changes around GPU & DVR support although from my initial observations I suspect there's some variables changed/added as it gets all the way through to the decoder on the remote nodes then just doesn't run.

Awarua- commented 7 years ago

I'm having no problems with the current version, running on Plex 1.4.2.3400

speedminion87 commented 7 years ago

Hi, Have tried today with 1.4.2.3400 and get the exact same symptoms, it appears to transcode, but according to plex its Buffering and never begins playing although transcode continues. A permissions thing perhaps..? Fingers crossed someone can see what strange thing is happening here too. Thanks again all looking forward to the solution.

UsbBitMinter commented 7 years ago

Im having the same issues as above. Any pointers? The transcoding starts and there are no errors I can find, but the client just keeps saying buffering.

zachbunyard commented 7 years ago

I'm running into this issue as well on 1.4.4.3495. Is this still being investigated?

wnielson commented 7 years ago

I have some time today to investigate. Stand by...

wnielson commented 7 years ago

@zfreak782 @UsbBitMinter @speedminion87 @Awarua-

I was able to get this working on fresh install of 1.5.0.3501-3b8374a5c. Fortunately the fix is very easy. All I had to do was ensure that the slaves are allowed to connect to the master without auth. To do this, go to the server settings via your browser, navigate to the 'Network' tab (make sure "Show Advanced" is on). Scroll down to "List of IP addresses and networks that are allowed without auth". In that box, put in your slave addresses or network.

For future reference, this is how I debugged this. On the master host open prt.conf and set the level parameter to DEBUG in logging > handlers > file_handler. With this setting enabled, you'll get verbose debug output from prt and ffmpeg. Now, on the slave that is supposed to be doing the transcoding, follow the log file: tail -f /tmp/prt.log. At the same time, follow the Plex Media Server.log file on the master. Cross referencing these files while trying to play a file is the best way to try to figure out what it wrong.

ChoosenEye commented 7 years ago

@wnielson not working for me. it's always trying to connect to localhost. maybe the new Plex Transcoder (1.5.0) forbidden external/other IPs?

2017-03-20 08:27:51,617 - prt - INFO - Launching transcode_local: ['/usr/lib/plexmediaserver/plex_transcoder', '-codec:0', 'mpeg4', '-ss', '668.893982', '-i', '/XXXXXXXXXXXXXXXXX', '-filter_complex', '[0:0]scale=w=min(512\\,iw):h=min(384\\,ih):force_original_aspect_ratio=decrease,format=pix_fmts=yuv420p|nv12[0]', '-map', '[0]', '-codec:0', 'libx264', '-crf:0', '16', '-maxrate:0', '1515k', '-bufsize:0', '3030k', '-r:0', '25', '-preset:0', 'veryfast', '-x264opts:0', 'subme=2:me_range=4:rc_lookahead=10:me=dia:no_chroma_me:8x8dct=0:partitions=none', '-map', '0:#0x01', '-codec:1', 'copy', '-copypriorss:1', '0', '-f', 'segment', '-segment_format', 'matroska', '-segment_format_options', 'live=1', '-segment_time', '1', '-segment_header_filename', 'header', '-segment_start_number', '0', '-segment_list', 'http://XXXXXXXXX:32400/video/:/transcode/session/XXXXXXXXX/seglist', '-segment_list_type', 'csv', '-segment_list_size', '2147483647', '-avoid_negative_ts', 'disabled', '-map_metadata', '-1', '-map_chapters', '-1', 'chunk-%05d', '-start_at_zero', '-copyts', '-y', '-nostats', '-loglevel', 'verbose', '-loglevel_plex', 'verbose', '-progressurl', 'http://XXXXXXXX:32400/video/:/transcode/session/XXXXXXXX/progress']

2017-03-20 08:27:51,649 - prt - DEBUG - Rescanning for external libs: '/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/'
2017-03-20 08:27:51,657 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/libaac_decoder.so
2017-03-20 08:27:51,686 - prt - DEBUG - Incompatible library versions.
2017-03-20 08:27:51,687 - prt - DEBUG - Failed to initialize library.
2017-03-20 08:27:51,692 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/liblibx264_encoder.so
2017-03-20 08:27:51,706 - prt - DEBUG - Incompatible library versions.
2017-03-20 08:27:51,707 - prt - DEBUG - Failed to initialize library.
2017-03-20 08:27:51,716 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/libdca_decoder.so
2017-03-20 08:27:51,727 - prt - DEBUG - Incompatible library versions.
2017-03-20 08:27:51,728 - prt - DEBUG - Failed to initialize library.
2017-03-20 08:27:51,730 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/libvc1_decoder.so
2017-03-20 08:27:51,739 - prt - DEBUG - Incompatible library versions.
2017-03-20 08:27:51,739 - prt - DEBUG - Failed to initialize library.
2017-03-20 08:27:51,744 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/libmp3_decoder.so
2017-03-20 08:27:51,750 - prt - DEBUG - Incompatible library versions.
2017-03-20 08:27:51,750 - prt - DEBUG - Failed to initialize library.
2017-03-20 08:27:51,755 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/libh264_decoder.so
2017-03-20 08:27:51,769 - prt - DEBUG - Incompatible library versions.
2017-03-20 08:27:51,770 - prt - DEBUG - Failed to initialize library.
2017-03-20 08:27:51,773 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/libeac3_decoder.so
2017-03-20 08:27:51,780 - prt - DEBUG - Incompatible library versions.
2017-03-20 08:27:51,781 - prt - DEBUG - Failed to initialize library.
2017-03-20 08:27:51,787 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/libmpeg4_decoder.so
2017-03-20 08:27:51,806 - prt - DEBUG - Incompatible library versions.
2017-03-20 08:27:51,806 - prt - DEBUG - Failed to initialize library.
2017-03-20 08:27:51,815 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/libtruehd_decoder.so
2017-03-20 08:27:51,822 - prt - DEBUG - Incompatible library versions.
2017-03-20 08:27:51,823 - prt - DEBUG - Failed to initialize library.
2017-03-20 08:27:51,826 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/libhevc_decoder.so
2017-03-20 08:27:51,841 - prt - DEBUG - Incompatible library versions.
2017-03-20 08:27:51,841 - prt - DEBUG - Failed to initialize library.
2017-03-20 08:27:51,844 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/libac3_encoder.so
2017-03-20 08:27:51,849 - prt - DEBUG - Incompatible library versions.
2017-03-20 08:27:51,849 - prt - DEBUG - Failed to initialize library.
2017-03-20 08:27:51,852 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/libmpeg2video_decoder.so
2017-03-20 08:27:51,860 - prt - DEBUG - Incompatible library versions.
2017-03-20 08:27:51,860 - prt - DEBUG - Failed to initialize library.
2017-03-20 08:27:51,864 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/libmsmpeg4v3_decoder.so
2017-03-20 08:27:51,873 - prt - DEBUG - Incompatible library versions.
2017-03-20 08:27:51,873 - prt - DEBUG - Failed to initialize library.
2017-03-20 08:27:51,878 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/libaac_encoder.so
2017-03-20 08:27:51,883 - prt - DEBUG - Incompatible library versions.
2017-03-20 08:27:51,883 - prt - DEBUG - Failed to initialize library.
2017-03-20 08:27:51,887 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/libac3_decoder.so
2017-03-20 08:27:51,895 - prt - DEBUG - Incompatible library versions.
2017-03-20 08:27:51,895 - prt - DEBUG - Failed to initialize library.
2017-03-20 08:27:51,906 - prt - DEBUG - ffmpeg version git-2016-11-11-4b2f00a Copyright (c) 2000-2016 the FFmpeg developers
2017-03-20 08:27:51,906 - prt - DEBUG -   built with gcc 4.8.2 (GCC)
2017-03-20 08:27:51,907 - prt - DEBUG -   configuration: --libdir=/data/jenkins/pms-deps-universal-v2/BUILD_TAG/linux-ubuntu-x86_64/output/pms-depends-linux-ubuntu-x86_64-release-b6abb09/lib --prefix=/data/jenkins/pms-deps-universal-v2/BUILD_TAG/linux-ubuntu-x86_64/output/pms-depends-linux-ubuntu-x86_64-release-b6abb09 --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-b6abb09/lib --extra-libs='-lgcrypt -lgpg-error -ldl'
2017-03-20 08:27:51,908 - prt - DEBUG -   libavutil      55. 24.100 / 55. 24.100
2017-03-20 08:27:51,908 - prt - DEBUG -   libavcodec     57. 41.102 / 57. 41.102
2017-03-20 08:27:51,908 - prt - DEBUG -   libavformat    57. 37.100 / 57. 37.100
2017-03-20 08:27:51,908 - prt - DEBUG -   libavfilter     6. 45.100 /  6. 45.100
2017-03-20 08:27:51,908 - prt - DEBUG -   libswscale      4.  1.100 /  4.  1.100
2017-03-20 08:27:51,908 - prt - DEBUG -   libswresample   2.  0.101 /  2.  0.101
2017-03-20 08:27:51,908 - prt - DEBUG -   libpostproc    54.  0.100 / 54.  0.100
2017-03-20 08:27:51,909 - prt - DEBUG - Rescanning for external libs: '/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/'
2017-03-20 08:27:51,933 - prt - DEBUG -     Last message repeated 21 times
2017-03-20 08:27:51,933 - prt - DEBUG - Unrecognized option 'crf:0'.
2017-03-20 08:27:51,933 - prt - DEBUG - [tcp @ 0x2a4b8e0] Connection to tcp://127.0.0.1:32400 failed: Connection refused
2017-03-20 08:27:51,933 - prt - DEBUG - Error splitting the argument list: Option not found
2017-03-20 08:27:51,934 - prt - DEBUG - [tcp @ 0x2a49ec0] Connection to tcp://127.0.0.1:32400 failed: Connection refused
zachbunyard commented 7 years ago

@wnielson Yes! That fixed the issue for me. Thank you for the speedy response! However, I noticed some serious distortions in video and timing being off in the audio. In some movies, the stream would get distorted for a second and then just stop, though I can still see the transcoder pumping into the transcode directory. I have yet to be able to try the debugging steps you outlined though. I will report back with my findings when I have the chance.

wnielson commented 7 years ago

@ChoosenEye

You're getting an Incompatible library versions error. You should be seeing something like instead:

2017-03-19 19:06:07,002 - prt - DEBUG - Rescanning for external libs: '/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/'
2017-03-19 19:06:07,004 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/liblibx264_encoder.so
2017-03-19 19:06:07,006 - prt - DEBUG - Loading external lib /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/7f7c2d3-1195-linux-ubuntu-x86_64/libh264_decoder.so
2017-03-19 19:06:07,009 - prt - DEBUG - ffmpeg version git-2017-03-14-7f7c2d3 Copyright (c) 2000-2016 the FFmpeg developers

Your ffmpeg looks old--you're on git-2016-11-11-4b2f00a but the new version is git-2017-03-14-7f7c2d3. I think you need to remove plex_transcoder and then reinstall PRT:

sudo rm -f /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Codecs/*/*.so
sudo rm -f /usr/lib/plexmediaserver/plex_transcoder
sudo dpkg -i /location/of/new/package/plexmediaserver.deb
sudo prt overwrite
wnielson commented 7 years ago

@zfreak782 I haven't noticed distortion. If this persists, please post your logs.

zachbunyard commented 7 years ago

@wnielson Sorry for the delay! Life gets busy. Using the debug instructions you provided, I selected a movie to watch and captured the logs. I'm seeing a large number of connection refused errors in the prt.log. It looks like it's trying to connect through the Plex port (32400). How should I proceed?

wnielson commented 7 years ago

@zfreak782 I removed your attachment because it contains tokens and strings that shouldn't be shared. I fixed the connection refused issues that you were seeing in the version that I created today. I'm not sure that'll fix the issues you're seeing, but you should take a look and see if that helps. I don't see anything else in your logs that would explain the distortion you are seeing.

zachbunyard commented 7 years ago

Thank you! I was unaware this information was present...

Perhaps I should clarify on distortion. The video plays for a second and then freezes on a very distorted looking image and then the picture goes away, showing me a giant play button in the middle. With smaller video files (250-700MB) the video will intermittently come back, but the audio is not always in sync. I have yet to see it intermittently come back with a large video file though (10GB+).

I will test the version you mentioned this weekend and report back

zachbunyard commented 7 years ago

@wnielson When trying to run sudo python setup.py install with the new version, I got the following error: `... Installed /usr/local/lib/python2.7/dist-packages/prt-0.4.3-py2.7.egg Processing dependencies for prt==0.4.3 Searching for psutil Reading https://pypi.python.org/simple/psutil/ Best match: psutil 5.2.1 Downloading https://pypi.python.org/packages/b8/47/c85fbcd23f40892db6ecc88782beb6ee66d22008c2f9821d777cb1984240/psutil-5.2.1.tar.gz#md5=ed731bcbb5737486a60807a1dc6183eb Processing psutil-5.2.1.tar.gz Writing /tmp/easy_install-fVHws3/psutil-5.2.1/setup.cfg Running psutil-5.2.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-fVHws3/psutil-5.2.1/egg-dist-tmp-qzkvxH warning: manifest_maker: MANIFEST.in, line 14: 'recursive-include' expects

...

warning: no previously-included files matching '' found under directory 'docs/_build' warning: no previously-included files matching '' found under directory '.ci' psutil/_psutil_linux.c:12:20: fatal error: Python.h: No such file or directory

include

                ^

compilation terminated. error: Setup script exited with error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1 `

I'm unfamiliar with python and am unsure if this is on my end or not. Please advise.

Something I noticed is that if the slave I enter in the .prt.conf is the same server as the master, it transcodes without issue. If I'm thinking about this correctly, I want to say that the transcoder communicates back with Plex over localhost IP 127.0.0.1. That being said, I would think this somehow needs to change, or be forwarded to the master. Perhaps I'm way off though. Or perhaps the change you made intended to do something like this?

wnielson commented 7 years ago

The newest version requires psutil, which needs to be compiled, or installed via a package manager. Try running:

sudo apt-get install python-psutil

If you enter the master as a transcode target, everything works because you aren't really using prt--that is, you aren't transcoding via another machine.

zachbunyard commented 7 years ago

@wnielson That fixed the connection refused issues. It appears that all the NFS communicaiton is just too much for my Raspberry Pi 3's to handle. I can confirm that NFS works fine with a unidirectional connection (IE, only reading from NFS media library) but when you add another connection and/or have it write, the performance degrades significantly. I believe this to be the case due to the fact that that playback performance seems to depend heavily on bitrate. The movie file in which I had most difficulty had a bitrate of ~15000kbps. I had significantly fewer issues (though not smooth playback) with a file around ~1400 kbps. I appreciate the time you've dedicated to helping me out. If you feel my conclusion is incorrect for whatever reason, please let me know as I would really like to use PRT if possible.

dhruvb14 commented 7 years ago

So Pi3 has 10/100 Ethernet so 150000 Kbps will never work as the max throughput is 7-8 Mbps which is 50% short of your requirements. Take a look at replacing file server with ASUS's Pi equivalent which has gigabit.

wnielson commented 7 years ago

@zfreak782 You're conclusions seem reasonable to me. The Pi is a pretty limited device, so I'm not surprised that you are experiencing some issues pushing large amounts of data around while also taxing the CPU with a heavy encoding task. That said, it would be pretty cool if we could reliably use a Pi as a transcoding slave, so if you continue testing and can find a configuration that works keep us posted!

speedminion87 commented 7 years ago

Running with latest git download on plex 1.5.2, works just fine. But cant skip/seek just launches multiple plex_transcode sessions on remote host so this one could be closed unless others are still having problems?

zachbunyard commented 7 years ago

@dhruvb14 My issue isn't with the file server Pi but with the transcode slave Pis. I can pump in a 15,000kbps video without issue, it's pumping it back out to the transcode directory that the IO limit is reached.

@wnielson In all my testing, I've never been able to reliably video transcode. However, audio transcode works like a dream. I wanted to have a cluster of Pis talking to the PMS master Pi that would transcode the audio for me and direct play the video. I've read somewhere that, while not full gigabit, the pi3 has seen substantial speed increases with a USB gigabit adapter. May pick one up and see if that provides the bandwidth I need. As this is not the best place to post findings, where should I follow up in the event that I do try the usb ethernet adapter?

The only way I can see the Pi being a viable option for transcoding is if we had a way to distribute a single transcode jobs across multiple Pis. That may be way out of desired scope for PRT, but I would be seriously interested in a project that could provide such functionality.

hughker commented 7 years ago

@zfreak782 I'm interested in your findings too; perhaps you could start a new issue related to Pi… @wnielson let us know if you'd rather not tho

wnielson commented 7 years ago

@zfreak782 Checkout this PR which distributes chunks of the transcode over multiple machines. PRT is already pretty fragile and constantly fights against changes made by the Plex team and this PR would make things even more fragile. We are discussing whether we want to integrate this right now.

zachbunyard commented 7 years ago

@wnielson I would love to see something like this! Even if it was only as an optional feature. I didn't realize anything like that was out right now. If you want my vote, I say add it. Given it's instability I would understand if this was an optional feature that received limited support or work after the main functionality. While I can't be much help on the Python side of things, I would be more than happy to test and provide feedback. I have 4 or 5 Pis just laying around waiting to do something!

zachbunyard commented 7 years ago

@hughker I'll probably give the RP @wnielson mentioned a shot and see how it works for me. I'll be sure to keep you posted.

@wnielson Please keep me posted on the decision to integrate or not. I'll try to do some testing this weekend and will create a new issue related to it all unless you advise posting it elsewhere

zachbunyard commented 7 years ago

@hughker Check out this issue I just created with my findings.