Git Product home page Git Product logo

plexus's Introduction

plexus's People

Contributors

aianus avatar deepsourcebot avatar elgohr avatar gorgarp avatar igoro00 avatar onezero1010101 avatar wolveix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

plexus's Issues

Dockerized Plexus

It would be great if there was an option to run the app a a Docker container.
Just a thought. If this is too much work, I will try to compose one myself.
Great job by the way!

Unable to find a suitable output format

Describe the bug
Unable to find a suitable output format for ''

To Reproduce
Steps to reproduce the behavior:

  1. Installed script (did not change default config)
  2. Ran script on a movie file (same container type (mkv), different audio & video codex)
  3. Ran script on a movie file (different container type (mp4 -> mkv), same audio (aac -> aac) & video codex(h264 -> h264))
  4. See error

Expected behavior
I expected two of these files to be converted.

Setup:

  • OS: Debian 10.4
  • FFMPEG Version: 4.2.2
  • Script Version Ran: 0.9.75

Additional context
I did some research, it seemed like this was related to not specifying a codex for ffmpeg to output to, so I tried to use the -a & -v with plexus encode, but that produced the same result. I checked the plexus conf file to make sure those two were set, and they both were. I was also confused by the lines like "--pkgconfigdir=/root/ffmpeg-build/workspace/lib/pkgconfig" because during the install steps it removes "/root/ffmpeg-build/" in the last step, which is unrelated but confused me while I was trying to troubleshot this.

Paste logs below this line
plex@hostname:~$ plexus encode --verbose
=== Plexus v0.9.75 - https://github.com/Wolveix/Plexus ===

Audio codec: aac
List file: /home/plex/.plexus/list.txt
Media container: mkv
Media directory: /mnt/plexdrive
Mount Path:
Video codec: h264

Copying: Star Wars The Rise of Skywalker (2019).mkv

File copied.

File codecs:
Audio = ac3 -> aac
Container = mkv -> mkv
Video = hevc -> h264

ffmpeg version 4.2.2-d1e8be3 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --pkgconfigdir=/root/ffmpeg-build/workspace/lib/pkgconfig --prefix=/root/ffmpeg-build/workspace --pkg-config-flags=--static --extra-cflags=-I/root/ffmpeg-build/workspace/include --extra-ldflags=-L/root/ffmpeg-build/workspace/lib --extra-libs='-lpthread -lm' --enable-static --disable-debug --disable-shared --disable-ffplay --disable-doc --enable-openssl --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-libvpx --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-runtime-cpudetect --enable-libfdk-aac --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libvidstab --enable-libaom
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
Input #0, matroska,webm, from '/home/plex/.plexus/encode/convert/Star Wars The Rise of Skywalker (2019)/Star Wars The Rise of Skywalker (2019).mkv':
Metadata:
title : Star Wars: Episode IX - The Rise of Skywalker 2019 from ัะตะปะตะทะตะฝัŒ
encoder : libebml v1.3.9 + libmatroska v1.5.2
creation_time : 2020-03-20T13:59:01.000000Z
Duration: 02:21:53.28, start: 0.000000, bitrate: 53090 kb/s
Chapter #0:0: start 0.000000, end 9.176000
Metadata:
title : Opening Logo
Chapter #0:1: start 9.176000, end 100.934000
Metadata:
title : The Rise Of Skywalker
Chapter #0:2: start 100.934000, end 227.811000
Metadata:
title : Kylo Ren's Quest
Chapter #0:3: start 227.811000, end 402.902000
Metadata:
title : Exegol
Chapter #0:4: start 402.902000, end 506.673000
Metadata:
title : Millenium Falcon Mission
Chapter #0:5: start 506.673000, end 604.896000
Metadata:
title : Pursuit Of The Falcon
Chapter #0:6: start 604.896000, end 768.142000
Metadata:
title : Rey's Training Course
Chapter #0:7: start 768.142000, end 834.000000
Metadata:
title : General Leia
Chapter #0:8: start 834.000000, end 917.416000
Metadata:
title : The Falcon's Back
Chapter #0:9: start 917.416000, end 1033.199000
Metadata:
title : Spy Message
Chapter #0:10: start 1033.199000, end 1165.039000
Metadata:
title : "We Go Together"
Chapter #0:11: start 1165.039000, end 1288.579000
Metadata:
title : Ren Reforged
Chapter #0:12: start 1288.579000, end 1527.693000
Metadata:
title : Pasaana Festival
Chapter #0:13: start 1527.693000, end 1634.883000
Metadata:
title : General Calrissian
Chapter #0:14: start 1634.883000, end 1841.548000
Metadata:
title : Speeder Chase
Chapter #0:15: start 1841.548000, end 2149.064000
Metadata:
title : Buried Secrets
Chapter #0:16: start 2149.064000, end 2497.745000
Metadata:
title : Power Unleashed
Chapter #0:17: start 2497.745000, end 2595.259000
Metadata:
title : Aftermath
Chapter #0:18: start 2595.259000, end 2728.351000
Metadata:
title : "In This Till The End"
Chapter #0:19: start 2728.351000, end 2904.568000
Metadata:
title : Meeting Zorii
Chapter #0:20: start 2904.568000, end 3277.566000
Metadata:
title : Babu Firk's Workshop
Chapter #0:21: start 3277.566000, end 3529.192000
Metadata:
title : Into The Destroyer
Chapter #0:22: start 3529.192000, end 3774.771000
Metadata:
title : Revelations
Chapter #0:23: start 3774.771000, end 3983.104000
Metadata:
title : Repercussions
Chapter #0:24: start 3983.104000, end 4194.607000
Metadata:
title : To Kef Bir
Chapter #0:25: start 4194.607000, end 4387.383000
Metadata:
title : Jannah
Chapter #0:26: start 4387.383000, end 4703.616000
Metadata:
title : The Emperor's Vault
Chapter #0:27: start 4703.616000, end 5021.225000
Metadata:
title : The Duel
Chapter #0:28: start 5021.225000, end 5222.884000
Metadata:
title : Remembrance
Chapter #0:29: start 5222.884000, end 5423.126000
Metadata:
title : The Final Order Begins
Chapter #0:30: start 5423.126000, end 5700.820000
Metadata:
title : The Destiny Of A Jedi
Chapter #0:31: start 5700.820000, end 5927.880000
Metadata:
title : Battle Plans
Chapter #0:32: start 5927.880000, end 6035.863000
Metadata:
title : Welcome To Exegol
Chapter #0:33: start 6035.863000, end 6183.135000
Metadata:
title : Drop Zone
Chapter #0:34: start 6183.135000, end 6327.863000
Metadata:
title : Throne Of The Sith
Chapter #0:35: start 6327.863000, end 6528.188000
Metadata:
title : Dark Turn
Chapter #0:36: start 6528.188000, end 6807.634000
Metadata:
title : Dyad In The Force
Chapter #0:37: start 6807.634000, end 6930.757000
Metadata:
title : The Galaxy Responds
Chapter #0:38: start 6930.757000, end 7142.969000
Metadata:
title : Emperor Reborn
Chapter #0:39: start 7142.969000, end 7297.749000
Metadata:
title : Last Chance
Chapter #0:40: start 7297.749000, end 7520.430000
Metadata:
title : Ben
Chapter #0:41: start 7520.430000, end 7782.692000
Metadata:
title : Victory
Chapter #0:42: start 7782.692000, end 7945.896000
Metadata:
title : Saga's End
Chapter #0:43: start 7945.896000, end 8513.280000
Metadata:
title : End Credits
Stream #0:0(eng): Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default)
Metadata:
BPS-eng : 46106382
DURATION-eng : 02:21:53.255000000
NUMBER_OF_FRAMES-eng: 204114
NUMBER_OF_BYTES-eng: 49064423878
_STATISTICS_WRITING_APP-eng: mkvmerge v40.0.0 ('Old Town Road + Pony') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-03-20 13:59:01
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:1(rus): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s (default) (forced)
Metadata:
title : iTunes
BPS-eng : 384000
DURATION-eng : 02:21:52.416000000
NUMBER_OF_FRAMES-eng: 266013
NUMBER_OF_BYTES-eng: 408595968
_STATISTICS_WRITING_APP-eng: mkvmerge v40.0.0 ('Old Town Road + Pony') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-03-20 13:59:01
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:2(eng): Audio: truehd, 48000 Hz, 7.1, s32 (24 bit)
Metadata:
title : Original
BPS-eng : 5890175
DURATION-eng : 02:21:53.256000000
NUMBER_OF_FRAMES-eng: 10215907
NUMBER_OF_BYTES-eng: 6268071650
_STATISTICS_WRITING_APP-eng: mkvmerge v40.0.0 ('Old Town Road + Pony') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-03-20 13:59:01
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:3(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s
Metadata:
BPS-eng : 640000
DURATION-eng : 02:21:53.280000000
NUMBER_OF_FRAMES-eng: 266040
NUMBER_OF_BYTES-eng: 681062400
_STATISTICS_WRITING_APP-eng: mkvmerge v40.0.0 ('Old Town Road + Pony') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-03-20 13:59:01
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:4(rus): Subtitle: subrip (default) (forced)
Metadata:
title : Forced
BPS-eng : 1
DURATION-eng : 01:37:13.934000000
NUMBER_OF_FRAMES-eng: 10
NUMBER_OF_BYTES-eng: 938
_STATISTICS_WRITING_APP-eng: mkvmerge v40.0.0 ('Old Town Road + Pony') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-03-20 13:59:01
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:5(rus): Subtitle: subrip
Metadata:
title : Full
BPS-eng : 57
DURATION-eng : 02:17:27.122000000
NUMBER_OF_FRAMES-eng: 1435
NUMBER_OF_BYTES-eng: 59535
_STATISTICS_WRITING_APP-eng: mkvmerge v40.0.0 ('Old Town Road + Pony') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-03-20 13:59:01
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:6(rus): Subtitle: subrip
Metadata:
title : SDH
BPS-eng : 73
DURATION-eng : 02:11:46.991000000
NUMBER_OF_FRAMES-eng: 1764
NUMBER_OF_BYTES-eng: 72830
_STATISTICS_WRITING_APP-eng: mkvmerge v40.0.0 ('Old Town Road + Pony') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-03-20 13:59:01
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:7(eng): Subtitle: subrip
Metadata:
title : Full
BPS-eng : 39
DURATION-eng : 02:11:57.460000000
NUMBER_OF_FRAMES-eng: 1460
NUMBER_OF_BYTES-eng: 38759
_STATISTICS_WRITING_APP-eng: mkvmerge v40.0.0 ('Old Town Road + Pony') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-03-20 13:59:01
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Stream #0:8(eng): Subtitle: subrip
Metadata:
title : SDH
BPS-eng : 48
DURATION-eng : 02:11:50.035000000
NUMBER_OF_FRAMES-eng: 1895
NUMBER_OF_BYTES-eng: 48192
_STATISTICS_WRITING_APP-eng: mkvmerge v40.0.0 ('Old Town Road + Pony') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2020-03-20 13:59:01
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
[NULL @ 0x557ca9919740] Unable to find a suitable output format for ''
: Invalid argument

An unknown error occurred with FFmpeg.

Error: /home/plex/movies/starwars/Star Wars The Rise of Skywalker (2019).mkv could not be encoded.

Moving onto the next line.

Copying: Uncut Gems (2019).mp4

File copied.

File codecs:
Audio = aac -> libfdk_aac
Container = mp4 -> mkv
Video = h264 -> h264

ffmpeg version 4.2.2-d1e8be3 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --pkgconfigdir=/root/ffmpeg-build/workspace/lib/pkgconfig --prefix=/root/ffmpeg-build/workspace --pkg-config-flags=--static --extra-cflags=-I/root/ffmpeg-build/workspace/include --extra-ldflags=-L/root/ffmpeg-build/workspace/lib --extra-libs='-lpthread -lm' --enable-static --disable-debug --disable-shared --disable-ffplay --disable-doc --enable-openssl --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-libvpx --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-runtime-cpudetect --enable-libfdk-aac --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libvidstab --enable-libaom
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/plex/.plexus/encode/convert/Uncut Gems (2019)/Uncut Gems (2019).mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.35.100
Duration: 02:15:00.08, start: 0.000000, bitrate: 2239 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x800 [SAR 1:1 DAR 12:5], 2099 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 134 kb/s (default)
Metadata:
handler_name : SoundHandler
[NULL @ 0x55b3df8d2480] Unable to find a suitable output format for ''
: Invalid argument

An unknown error occurred with FFmpeg.
Trying with full conversion instead.

ffmpeg version 4.2.2-d1e8be3 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --pkgconfigdir=/root/ffmpeg-build/workspace/lib/pkgconfig --prefix=/root/ffmpeg-build/workspace --pkg-config-flags=--static --extra-cflags=-I/root/ffmpeg-build/workspace/include --extra-ldflags=-L/root/ffmpeg-build/workspace/lib --extra-libs='-lpthread -lm' --enable-static --disable-debug --disable-shared --disable-ffplay --disable-doc --enable-openssl --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-libvpx --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-runtime-cpudetect --enable-libfdk-aac --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libvidstab --enable-libaom
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/plex/.plexus/encode/convert/Uncut Gems (2019)/Uncut Gems (2019).mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.35.100
Duration: 02:15:00.08, start: 0.000000, bitrate: 2239 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x800 [SAR 1:1 DAR 12:5], 2099 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 134 kb/s (default)
Metadata:
handler_name : SoundHandler
[NULL @ 0x56455d73e480] Unable to find a suitable output format for ''
: Invalid argument

An unknown error occurred with FFmpeg.

Error: /home/plex/movies/uncutgems/Uncut Gems (2019).mp4 could not be encoded.

Moving onto the next line.

My config file in case you need it
audio_codec="aac"
blacklist_file="$HOME/.plexus/blacklist"
convert_dir="$HOME/.plexus/encode/convert"
converted_dir="$HOME/.plexus/encode/converted"
deinterlacing="true"
ffmpeg_binary="/usr/bin/ffmpeg"
ffmpeg_threads="2"
ffmpeg_preset="faster"
ffprobe_binary="/usr/bin/ffprobe"
force_overwrite="true"
fusermount_binary="/usr/bin/fusermount"
hardware_acceleration="false"
hardware_codec="opencl"
list_file="$HOME/.plexus/list.txt"
media_container="mkv"
media_dir="/mnt/plexdrive"
mount_dir=""
rclone_binary="/usr/bin/rclone"
rsync_binary="/usr/bin/rsync"
video_codec="h264"
video_library="libx264"

More efficient local media handling

Is your feature request related to a problem? Please describe.
rsync of a 6GB source file before encoding starts is a waste of time, and slower and more wastier over an NFS share

Describe the solution you'd like
As the source file is natively accessible, as plexus doesn't intend to modify the source while encoding, could it avoid making a copy?

Describe alternatives you've considered
none

Additional context
while encoding, this allows encoding to start immediately without killing the network:
#$rsync_binary -ah --info=progress2 "$line" "$convert_dir/$NAME/"
mkdir -p "$convert_dir/$NAME/" && ln -sf "$line" "$convert_dir/$NAME/"

copying back isn't so bad as the file is 25% of size (thanks!)

Plex versions folder

This looks like exactly what I need. Is there a way to place the encoded file into a folder that plex would pick up as another version? I think it needs to be in the same directory, in "plex versions" folder with the same filename, and the quality in ().

The Docker Image Keeps Restarting

Hi sorry to be a bother, but i can't seem to find any documentation on how to use the docker image besides installing it.
I did just what the readme describes but the docker just keeps restarting doing the plexus command. I figured it might be trying to do something automatic so i changed the config file and put a sample list for it to go do its thing. However that's not the case. And because it just keeps restarting i'm unable to connect into it to see what it's doing

The log file just keeps spitting the following over and over and over

=== Plexus v0.9.74 - https://github.com/Wolveix/Plexus ===



Usage:
  plexus [flags]

  plexus [command]

Available Commands:
  about           Learn more about the program
  blacklist       Add an entry to the blacklist
  config          Change the default variable values
  encode          Begin processing the encode queue
  help            Displays a list of available commands
  install         Reinstall Plexus or install any missing dependencies
  list            Build a .txt file containing media with incorrect codecs
  mount           Mount an Rclone remote or cache, set from the config function
  unmount         Unmount an Rclone remote or cache, set from the config function

Additional Information:
  Use 'plexus help command' to find out more about a specific command

To Reproduce
Steps to reproduce the behavior:

  1. install the docker like the readme.md describes
  2. Start the docker
  3. looping behavior as described

Expected behavior
I expected to be able to remote into the docker to have it encode all my media according to the list.txt and not have to worry about dependencies like the readme describes :)

Screenshots
n/a

Setup:

  • OS: Centos
  • Docker FFMPEG Version:alpine something i think according to dockerfile (however not relevant in this case it doesn't get that far
  • Script Version Ran: 0.9.74

De-Interlace Input

Is your feature request related to a problem? Please describe.
plex or (plex-player on chrome) can de-interlace the original mkv, but does not de-interlace the converted h264 mkv

Describe the solution you'd like
de-interlace while re-encoding

Describe alternatives you've considered
none

Additional context
adding: -vf yadif
as an ffmpeg option, via "$options" means that converted files play without interlace artifacts.

Maybe there are also bad side effects to this, but I don't know what they are. Maybe it should be based on the source file reporting as being interlaced.

FFmpeg Installer Broken on CentOS 8

Installing any missing dependencies.
Error:
Problem: package ffmpeg-devel-3.4.7-1.el7.x86_64 requires libavdevice.so.57()(64bit), but none of the providers can be installed

  • package ffmpeg-devel-3.4.7-1.el7.x86_64 requires libavdevice(x86-64) = 3.4.7-1.el7, but none of the providers can be installed
  • conflicting requests
  • nothing provides libcdio_cdda.so.1()(64bit) needed by libavdevice-3.4.7-1.el7.x86_64
  • nothing provides libcdio_cdda.so.1(CDIO_CDDA_1)(64bit) needed by libavdevice-3.4.7-1.el7.x86_64
  • nothing provides libcdio_paranoia.so.1()(64bit) needed by libavdevice-3.4.7-1.el7.x86_64
  • nothing provides libcdio_paranoia.so.1(CDIO_PARANOIA_1)(64bit) needed by libavdevice-3.4.7-1.el7.x86_64

Install completed!

Distro is not supported error

Describe the bug
Getting the following error after using the auto installation script, so I used the manual installation. But after that still getting the same error when using any plexus command.

Screenshots
Screenshot from 2019-07-14 14-41-55

Desktop:

  • OS: Pop Os 19.04
  • FFMPEG Version: 4.1.3-0ubuntu1
  • Plexus v0.9.70r2

I hope this is enough information, this actually my first submitted issue ๐Ÿ˜…

Unexpected token '&' at Line 654

image

I installed plexus in Macos Big sur and created list successfully too. When I ran the encode, it downloaded the file successfully and then broke at line 654 for syntax error.

Force Encode Audio, Copy Video Regardless

Hey bud. When you get a sec, even if it's in the GO version, can you add an option to ignore variable ($video_format or whatever) for video encode, only copy video (-copy) and encode only audio?

Use case, video is great but lossless audio is adding +500MB per file.

Don't know about you but my ears can't tell the difference ;)

Failed Conversion Leaves Artifacts

Describe the bug
If conversion fails both attempts, it moves on to the next line, which is good.

However, it leaves the copied file in the convert directory, which is bad ;)

HWaccel erorr

Breaks when trying to use opencl:

ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)
configuration: --pkgconfigdir=/home/user/ffmpeg-build/workspace/lib/pkgconfig --prefix=/home/user/ffmpeg-build/workspace --pkg-config-flags=--static --extra-cflags=-I/home/user/ffmpeg-build/workspace/include --extra-ldflags=-L/home/user/ffmpeg-build/workspace/lib --extra-libs='-lpthread -lm' --enable-static --disable-debug --disable-shared --disable-ffplay --disable-doc --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-runtime-cpudetect --enable-libfdk-aac --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libvidstab --enable-libaom
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/user/.plexus/encode/convert/movie.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.48.101
Duration: 02:16:10.97, start: 0.000000, bitrate: 1017 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x544 [SAR 1:1 DAR 40:17], 899 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 110 kb/s (default)
Metadata:
handler_name : SoundHandler
Option hwaccel (use HW accelerated decoding) cannot be applied to output url /home/user/.plexus/encode/converted/movie.mkv -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.
Error parsing options for output file /home/user/.plexus/encode/converted/movie.mkv.
Error opening output files: Invalid argument

An unknown error occurred with FFmpeg.
Trying with full conversion instead.

ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)
configuration: --pkgconfigdir=/home/user/ffmpeg-build/workspace/lib/pkgconfig --prefix=/home/user/ffmpeg-build/workspace --pkg-config-flags=--static --extra-cflags=-I/home/user/ffmpeg-build/workspace/include --extra-ldflags=-L/home/user/ffmpeg-build/workspace/lib --extra-libs='-lpthread -lm' --enable-static --disable-debug --disable-shared --disable-ffplay --disable-doc --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-runtime-cpudetect --enable-libfdk-aac --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libvidstab --enable-libaom
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/user/.plexus/encode/convert/movie.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.48.101
Duration: 02:16:10.97, start: 0.000000, bitrate: 1017 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x544 [SAR 1:1 DAR 40:17], 899 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 110 kb/s (default)
Metadata:
handler_name : SoundHandler
Option hwaccel (use HW accelerated decoding) cannot be applied to output url /home/user/.plexus/encode/converted/movie].mkv -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.
Error parsing options for output file /home/user/.plexus/encode/converted/movie.mkv.
Error opening output files: Invalid argument

An unknown error occurred with FFmpeg.

Error: /media/Data/Movies/movie.mp4 could not be encoded.

Moving onto the next line.

Arch support in install.sh

Your install script doesnt support Arch(also its not in this repo so i cant really add it for you) and its derivatives.

You can add something like this inside case $distro in
'"Manjaro Linux"' | '"Arch Linux"' | '"ArcoLinuxD"') printf "\\n\\e[36mInstalling any missing dependencies...\\n\\e[94m" pacman -Syu pacman -S curl ffmpeg rsync ;;

I didn't test the install for Arco Linux but I'm pretty sure it's gonna work fiiiinneee... xd

Cleanup

Describe the solution you'd like
Add prompt at beginning of encode function:

Clean existing conversion cache? y/n

If yes, clean .plexus/convert & converted folders

Describe alternatives you've considered
Manual cleaning

Additional context
Basically, if you halt the script mid run, it leaves crap behind, which can fill up drives.

Transcode error (ts files)

Describe the bug
Plexus failing to convert files recorded by Plex DVR function (.ts). Suspect the issue relates to subtitles.

Subtitles are not needed in this instance and could be dropped.

To Reproduce
Steps to reproduce the behavior:

  1. Create list using plexus list
  2. Run plexus encode -l ~/.plexus/list1.txt --verbose

Expected behavior
Expect files to be transcoded from TS to MKV.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Ubuntu 18.04.3 LTS
  • FFMPEG Version: Custom compiled version from Plexus menu ffmpeg version 4.2.git-6023b9f
  • Script Version Ran: v0.9.70

Additional context
Add any other context about the problem here.
2019-11-04 10_35_12-Settings

Paste logs below this line

Copying: 8 Out of 10 Cats Does Countdown (2013) - 2018-12-23 21 00 00 - Christmas Special (copy 1).ts
          1.62G 100%   50.18MB/s    0:00:30 (xfr#1, to-chk=0/1)

File copied.

File codecs:
Audio = mp2
mp2 -> libfdk_aac
Container = ts -> mkv
Video = h264
h264 -> h264

ffmpeg version 4.2.git-6023b9f Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
  configuration: --pkgconfigdir=/home/plex/ffmpeg-build/workspace/lib/pkgconfig --prefix=/home/plex/ffmpeg-build/workspace --pkg-config-flags=--static --extra-cflags=-I/home/plex/ffmpeg-build/workspace/include --extra-ldflags=-L/home/plex/ffmpeg-build/workspace/lib --extra-libs='-lpthread -lm' --enable-static --disable-debug --disable-shared --disable-ffplay --disable-doc --enable-openssl --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-libvpx --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-runtime-cpudetect --enable-libfdk-aac --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libvidstab --enable-libaom
  libavutil      56. 35.100 / 56. 35.100
  libavcodec     58. 59.102 / 58. 59.102
  libavformat    58. 33.100 / 58. 33.100
  libavdevice    58.  9.100 / 58.  9.100
  libavfilter     7. 62.100 /  7. 62.100
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
  libpostproc    55.  6.100 / 55.  6.100
Input #0, mpegts, from '/root/.plexus/encode/convert/8 Out of 10 Cats Does Countdown (2013) - 2018-12-23 21 00 00 - Christmas Special (copy 1)/8 Out of 10 Cats Does Countdown (2013) - 2018-12-23 21 00 00 - Christmas Special (copy 1).ts':
  Duration: 01:06:59.12, start: 1.400000, bitrate: 3234 kb/s
  Program 1
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(progressive), 1024x576 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x101](eng): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, fltp, 128 kb/s
    Stream #0:2[0x102](eng): Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (mp2 (native) -> aac (libfdk_aac))
  Stream #0:2 -> #0:2 (dvb_subtitle (dvbsub) -> ass (ssa))
Subtitle encoding currently only possible from text to text or bitmap to bitmap

An unknown error occurred with FFmpeg.

Error: /torrents/_Complete/TV/8.Out.Of.10.Cats.Does.Countdown.S08E01.HDTV.x264-TLA[ettv]/Season 14/8 Out of 10 Cats Does Countdown (2013) - 2018-12-23 21 00 00 - Christmas Special (copy 1).ts could not be encoded.

Moving onto the next line.

Raspbian Not Supported

Describe the bug
When I type plexus list -d "/mnt/media/Movies", the .txt file is not created
I also don't get any feedback in the CLI about whats happening.

To Reproduce
install on raspberry pi and test?

Setup:

  • OS: Raspbian

Add Additional Logic Around Skipping

Is your feature request related to a problem? Please describe.
Can we add logic to skip a file that doesn't match, if its in another acceptable format? For instance, I go to convert things to h264, but if they are in h265, good enough!

Describe the solution you'd like
Add option in config to skip if file has the specified alternate format.

Feature Request: Blacklist

Hey @wolveix
Can we get a blacklist function?

What I mean is, if a video won't encode, for things outside of Plexus' control, can we add it to a text file (manually, not requiring the software to do that).

Then, when calling "plexus list -d /path/to/things" we can put in something akin to an optional parameter of "-skip /path/to/textfile"

When scanning, assuming the file is in that text, it will drop it from the list.

Maybe something like: https://linux.die.net/man/1/fdupes

FFmpeg Not Working in Docker Image

Hi again, sorry for another 2 questions (actually not a bug report because i'm sure it's a user error, but i can't select "question")

I've made a list of a test folder which works fine, not i'm trying to encode this folder but ffmpeg spits out the following:

Unrecognized option 'map 0  -preset faster -max_muxing_queue_size 1024 -movflags faststart -threads 2 -crf 20 -level 4.1 -vf yadif'.
Error splitting the argument list: Option not found

I've left most options default except for the paths. see below config file

audio_codec="aac"
blacklist_file="$HOME/.plexus/blacklist"
convert_dir="/encode/convert"
converted_dir="/encode/converted"
deinterlacing="true"
ffmpeg_binary="/usr/local/bin/ffmpeg"
ffmpeg_threads="2"
ffmpeg_preset="faster"
ffprobe_binary="/usr/local/bin/ffprobe"
force_overwrite="true"
fusermount_binary=""
hardware_acceleration="false"
hardware_codec="opencl"
list_file="/list/list.txt"
media_container="mkv"
media_dir="/media"
mount_dir="/mnt/gdrive"
rclone_binary="/usr/bin/rclone"
rsync_binary="/usr/bin/rsync"
video_codec="h264"
video_library="libx264"

Paths are based on volume binds (i've used a seperate mount for plexus to make sure it doesn't fill up my docker drive)

But it might have something to do with the "mount_dir" which i don't quite understand. As you've probably guessed this is a google drive mounted on the host (which is actually the same as /media in this case)"

When using rclone in this manner with plexus is it mandatory to use the rclone command from docker? or can i just pretend it's local storage and that would work as well, as for the mount dir i'm guessing thats where you'd mount the remote if using rclone flags in the encode command is that right?

thank you very much

Failed encodes on latest?

av_interleaved_write_frame(): Invalid argument
Last message repeated 2 times
Error writing trailer of /root/.plexus/encode/converted/Ray Donovan S05E05/Ray Donovan S05E05.mkv: Invalid argument
frame=  212 fps= 50 q=25.0 Lsize=       0kB time=00:00:09.00 bitrate=   0.3kbits/s speed=2.14x
video:721kB audio:377kB subtitle:0kB other streams:0kB global headers:1kB muxing overhead: unknown
[libx264 @ 0x2480f00] frame I:2     Avg QP:10.61  size: 11300
[libx264 @ 0x2480f00] frame P:69    Avg QP:13.34  size:  7953
[libx264 @ 0x2480f00] frame B:141   Avg QP:12.86  size:  1515
[libx264 @ 0x2480f00] consecutive B-frames:  9.4%  4.7%  2.8% 83.0%
[libx264 @ 0x2480f00] mb I  I16..4: 65.6% 32.5%  2.0%
[libx264 @ 0x2480f00] mb P  I16..4:  7.7% 16.8%  0.7%  P16..4: 13.6%  2.2%  0.7%  0.0%  0.0%    skip:58.1%
[libx264 @ 0x2480f00] mb B  I16..4:  0.4%  0.7%  0.1%  B16..8:  9.8%  1.2%  0.1%  direct: 1.8%  skip:86.0%  L0:50.8% L1:46.3% BI: 2.8%
[libx264 @ 0x2480f00] 8x8 transform intra:62.7% inter:75.4%
[libx264 @ 0x2480f00] direct mvs  spatial:98.6% temporal:1.4%
[libx264 @ 0x2480f00] coded y,uvDC,uvAC intra: 31.1% 47.9% 11.8% inter: 2.8% 6.2% 0.1%
[libx264 @ 0x2480f00] i16 v,h,dc,p: 41% 16%  7% 36%
[libx264 @ 0x2480f00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 10% 23%  7%  8%  7%  9%  7% 11%
[libx264 @ 0x2480f00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15%  9% 25%  7% 10%  8%  9%  6% 11%
[libx264 @ 0x2480f00] i8c dc,h,v,p: 58% 23% 15%  3%
[libx264 @ 0x2480f00] Weighted P-Frames: Y:29.0% UV:17.4%
[libx264 @ 0x2480f00] ref P L0: 61.3%  5.4% 19.5%  7.9%  4.8%  1.1%  0.0%
[libx264 @ 0x2480f00] ref B L0: 74.5% 19.2%  4.1%  2.2%
[libx264 @ 0x2480f00] ref B L1: 97.5%  2.5%
[libx264 @ 0x2480f00] kb/s:710.26
[aac @ 0x20571e0] Qavg: 1330.300
Conversion failed!

An unknown error occurred with FFmpeg.
Consider installing the custom build of FFmpeg via the install command.

Error: /media/Data/TV/Ray Donovan/Ray Donovan Season 5 Mp4 720p/Ray Donovan S05E05.mp4 could not be encoded.

Moving onto the next line.

Moving subtitles to the correct location.
rsync: change_dir "/root/.plexus/encode/converted/Ray Donovan S05E05" failed: No such file or directory (2)
              0 100%    0.00kB/s    0:00:00 (xfr#0, to-chk=0/0)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]

hardware acceleration for encoding

Is your feature request related to a problem? Please describe.
Slow encoding of files and not using the gpu to encode.

Describe the solution you'd like
On line 603ish, I think, is when the command to do the actual conversion is, if you add the option '-hwaccel opencl' it will allow ffmpeg to us the opencl hardware acceleration it isn't the fastest but it works on every type of gpu make.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
The api's available for ffmpeg and the compatibility chart.
https://trac.ffmpeg.org/wiki/HWAccelIntro

$HOME/.plexus/ not created

The .plexus folder is not created on a clean automatic install. After attempting to look over the code, it does not look like anything except the .config folder is created when you first run it, and it downloads the plexus.conf file.

Issue W/ Centos Commit

The commit 785a2c6 will break things.

If = centos 8 you add some repos, the issue with that is there is one with epel7 (centos 7)

Next time they upgrade unrelated packages, things could get... ugly.

Pull that part :)

AKA:

        if [ "$(rpm -qi ffmpeg)" = "package ffmpeg is not installed" ]; then
            if [ "$(rpm --eval '%{centos_ver}')" -eq "8" ]; then
                yum -q -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
                yum -q -y install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm
                yum -q -y install http://rpmfind.net/linux/epel/7/x86_64/Packages/s/SDL2-2.0.10-1.el7.x86_64.rpm
            else
                yum -q -y install epel-release
                yum -q -y update && yum -q -y upgrade
                yum -q -y localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
            fi

Should become:


        if [ "$(rpm -qi ffmpeg)" = "package ffmpeg is not installed" ]; then
            if [ "$(rpm --eval '%{centos_ver}')" -eq "8" ]; then
                yum -q -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
                yum -q -y install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm 
            else
                yum -q -y install epel-release
                yum -q -y update && yum -q -y upgrade
                yum -q -y localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
            fi

have input video/audio options

Describe the solution you'd like
I realise this is not the intended use for this project, however for me personally it would be fantastic to have the option to give the script input codecs. For example in my case i'm only really interested to get rid of EAC audio since plex has a closed source eac codec which very frequently screws up.
So instead of making a list of all audio that is not 'output audio' it would be great to have a list of everything that contains eac ie. 'input variable'

Describe alternatives you've considered
Redownloading everything and using post processing to change all audio to aac regardless of what it is.

Additional context
My library is slightly large, however everything eac (i think it's relativally "new") would not be the bulk of the library which means a lot less re-encoding. It would literally take years to re-encode everything.

Thank you very much for reading and possibly considering :)

Plexus List Doesn't Ignore Files With a [Plexus Encode] Tag

Describe the bug
If I encode a video without overwrite, such that a new copy is made with "[Plexus Encode]" in the file name, then a subsequent invocation of "plexus list" will re-select the same videos even though the conversion is there. There is no point in re-encoding.

To Reproduce

  1. edit plexus.conf so that converted files are not overwritten: force_overwrite="false"
  2. run plexus list -d /path/to/media
  3. run plexus encode -l /path/to/list
    see that a copy is produced with " [Plexus Encode]" added before the mkv extension
  4. run plexus list -d /path/to/media
    5 cat /path/to/list ; and see that the same file is listed to be converted again

Expected behavior
A non-compliant file that has a "[Plexus Encode]" counterpart doesn't need re-encoding -- at least not if force_overwrite="false"

Setup:

  • OS: Linux Mint 19.3 Tricia
  • FFMPEG Version: ffmpeg version 3.4.6-0ubuntu0.18.04.1
  • Script Version Ran: v0.9.70

Additional context

Paste logs below this line

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.