Skip to content
This repository was archived by the owner on Jun 2, 2024. It is now read-only.

Commit b34f467

Browse files
committed
Plexus v0.9.0
- Added additional error handling for the encode function where no manual list file is specified but the default list file doesn't exist either - Added FFmpeg bug fix flag for each FFmpeg call (-max-muxing_queue_size 1024) - Added --verbose flag to encode function - Improved the information on the Help page of the Plexus Suite website
1 parent 33bac20 commit b34f467

File tree

8 files changed

+1022
-26
lines changed

8 files changed

+1022
-26
lines changed

docs/help/index.html

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,14 @@ <h1 class="doc-title"><span aria-hidden="true" class="fa fa-question-circle"></s
4141
<section id="general" class="doc-section">
4242
<h2 class="section-title">General</h2>
4343
<div class="section-block">
44-
<h3 class="question"><i class="fa fa-question-circle"></i> What if the install fails?</h3>
45-
<div class="answer">The app is currently unstable and in active development. Please wait for a stable release.</div>
44+
<h3 class="question"><i class="fa fa-question-circle"></i> I don't have FFmpeg installed. How can I install it?</h3>
45+
<div class="answer">The recommended way to install any of Plexus' dependencies is to use the built-in install function. From there, you can either install the precompiled version of FFmpeg from your OS' repositories, or you can install a custom build with extended codec support.</div>
46+
47+
<h3 class="question"><i class="fa fa-question-circle"></i> I'm getting "An unknown error occurred with FFmpeg.", what should I do?</h3>
48+
<div class="answer">Run the encode command again while ensuring that the --verbose flag is set. Once the error occurs again, copy & paste FFmpeg's output into a new GitHub issue for the <a href="https://github.com/Wolveix/Plexus">Plexus repository</a>.</div>
49+
50+
<h3 class="question"><i class="fa fa-question-circle"></i> What does Plexus do?</h3>
51+
<div class="answer">A lot of things. But it's original intended purpose was to create a sublist of media from your media collection which doesn't meet your desired video and audio codec specifications (by default, these are h264 for video and aac for audio as they're the most universally played codecs), and then process said list to re-encode the media.<br>By running the list command while using the -d flag to point to your overall media directory, Plexus will build a list file containing absolute paths to the media in question. Once the list file is complete, you're then able to feed the list into the encode command which will then re-encode all of the media that needs to be re-encoded. You can specify your default codecs from your config file ($HOME/.config/plexus/plexus.conf), or you can specify the codecs wanted for a specific runtime session by using the -a and -v flags respectively.</div>
4652
</div>
4753
</section>
4854
</div>

docs/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ <h1 class="logo"> <a href="/"> <span aria-hidden="true" class="icon_documents_al
3232
<div class="doc-wrapper">
3333
<div class="container">
3434
<div id="doc-header" class="doc-header text-center">
35-
<h1 class="doc-title"><i class="icon fa fa-share"></i> Plexus Suite v0.8.9</h1>
36-
<div class="meta"><i class="fa fa-clock-o"></i> Last updated: October 11th, 2018</div>
35+
<h1 class="doc-title"><i class="icon fa fa-share"></i> Plexus Suite v0.9.0</h1>
36+
<div class="meta"><i class="fa fa-clock-o"></i> Last updated: October 15th, 2018</div>
3737
</div>
3838
<div class="doc-body">
3939
<div class="doc-content">

docs/install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env bash
2-
printf "\\e[93m=== Plexus v0.8.9 - Developed by Robert Thomas ==="
2+
printf "\\e[93m=== Plexus v0.9.0 - Developed by Robert Thomas ==="
33
printf "\\n=== https://github.com/Wolveix/Plexus ==="
44
printf "\\n\\e[36mInstalling any missing dependencies.\\n\\e[94m"
55
apt-get install curl ffmpeg -y -qq

docs/versions/index.html

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ <h1 class="logo"> <a href="/"> <span aria-hidden="true" class="icon_documents_al
3232
<div class="container">
3333
<div id="doc-header" class="doc-header text-center">
3434
<h1 class="doc-title"><i class="icon fa fa-download"></i> Versions</h1>
35-
<div class="meta"><i class="fa fa-clock-o"></i> Last updated: September 26th, 2018</div>
35+
<div class="meta"><i class="fa fa-clock-o"></i> Last updated: October 15th, 2018</div>
3636
</div>
3737
<div class="doc-body">
3838
<div class="doc-content">
@@ -54,6 +54,12 @@ <h2 class="section-title">Downloads</h2>
5454
</tr>
5555
</thead>
5656
<tbody>
57+
<tr>
58+
<th scope="row">0.9</th>
59+
<td><a href="https://plexus.robt.me/versions/releases/v0.9/plexus">Link</a></td>
60+
<td><a href="https://github.com/Wolveix/Plexus/commit/?" target="_blank">?</a></td>
61+
<td><a href="https://github.com/Wolveix">@Wolveix</a></td>
62+
</tr>
5763
<tr>
5864
<th scope="row">0.8</th>
5965
<td><a href="https://plexus.robt.me/versions/releases/v0.8/plexus">Link</a></td>

docs/versions/releases/latest/plexus

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/usr/bin/env bash
2-
HEADER_TEXT="\\e[93m=== Plexus v0.8.9 - Developed by Robert Thomas ===\\n"
2+
HEADER_TEXT="\\e[93m=== Plexus v0.9.0 - Developed by Robert Thomas ===\\n"
33
HEADER_SUBTEXT="\\e[93m=== https://github.com/Wolveix/Plexus ===\\n"
44
set -e
55
if [ -f "$HOME"/.config/plexus/plexus.conf ]
@@ -341,6 +341,19 @@ function func_config {
341341
}
342342

343343
function func_encode {
344+
if [ "$verbose" == "true" ]
345+
then
346+
ffmpeg_verbose=""
347+
else
348+
ffmpeg_verbose="-loglevel quiet"
349+
fi
350+
351+
if [ ! -e "$list_file" ]
352+
then
353+
printf "List file does not exist.\\nPlease manually specify a list file or run the list command to create one.\\n"
354+
exit 0
355+
fi
356+
344357
while read line; do
345358
if [ -n "$line" ]
346359
then
@@ -415,18 +428,18 @@ function func_encode {
415428
then
416429
if [ "$file_audio_codec" != "$audio_codec" ]
417430
then
418-
if ! /usr/bin/ffmpeg -y -i "$convert_dir/$FILE" -map 0 $exclude_stream -c:v copy -c:a "$audio_codec" -preset "$ffmpeg_preset" -movflags faststart -threads 2 -nostdin -loglevel quiet -stats "$converted_dir/$NAME.mkv"
431+
if ! /usr/bin/ffmpeg -y -i "$convert_dir/$FILE" -map 0 $exclude_stream -c:v copy -c:a "$audio_codec" -preset "$ffmpeg_preset" -max_muxing_queue_size 1024 -movflags faststart -threads 2 -nostdin $ffmpeg_verbose -stats "$converted_dir/$NAME.mkv"
419432
then
420433
printf "\\n\\nAn unknown error occurred with FFmpeg.\\nTrying with full conversion instead.\\n\\n"
421434
if [ "$video_codec" == "h264" ]
422435
then
423-
if ! /usr/bin/ffmpeg -y -i "$convert_dir/$FILE" -map 0 $exclude_stream -c:v "$video_library" -crf 20 -level 4.1 -c:a "$audio_codec" -preset "$ffmpeg_preset" -movflags faststart -threads 2 -nostdin -loglevel quiet -stats "$converted_dir/$NAME.mkv"
436+
if ! /usr/bin/ffmpeg -y -i "$convert_dir/$FILE" -map 0 $exclude_stream -c:v "$video_library" -crf 20 -level 4.1 -c:a "$audio_codec" -preset "$ffmpeg_preset" -max_muxing_queue_size 1024 -movflags faststart -threads 2 -nostdin $ffmpeg_verbose -stats "$converted_dir/$NAME.mkv"
424437
then
425438
printf "$ffmpeg_error"
426439
exit 0
427440
fi
428441
else
429-
if ! /usr/bin/ffmpeg -y -i "$convert_dir/$FILE" -map 0 $exclude_stream -c:v "$video_library" -c:a "$audio_codec" -preset "$ffmpeg_preset" -movflags faststart -threads 2 -nostdin -loglevel quiet -stats "$converted_dir/$NAME.mkv"
442+
if ! /usr/bin/ffmpeg -y -i "$convert_dir/$FILE" -map 0 $exclude_stream -c:v "$video_library" -c:a "$audio_codec" -preset "$ffmpeg_preset" -max_muxing_queue_size 1024 -movflags faststart -threads 2 -nostdin $ffmpeg_verbose -stats "$converted_dir/$NAME.mkv"
430443
then
431444
printf "$ffmpeg_error"
432445
exit 0
@@ -441,13 +454,13 @@ function func_encode {
441454
then
442455
if [ "$video_codec" == "h264" ]
443456
then
444-
if ! /usr/bin/ffmpeg -y -i "$convert_dir/$FILE" -map 0 $exclude_stream -c:v "$video_library" -crf 20 -level 4.1 -c:a copy -preset "$ffmpeg_preset" -movflags faststart -threads 2 -nostdin -loglevel quiet -stats "$converted_dir/$NAME.mkv"
457+
if ! /usr/bin/ffmpeg -y -i "$convert_dir/$FILE" -map 0 $exclude_stream -c:v "$video_library" -crf 20 -level 4.1 -c:a copy -preset "$ffmpeg_preset" -max_muxing_queue_size 1024 -movflags faststart -threads 2 -nostdin $ffmpeg_verbose -stats "$converted_dir/$NAME.mkv"
445458
then
446459
printf "$ffmpeg_error"
447460
exit 0
448461
fi
449462
else
450-
if ! /usr/bin/ffmpeg -y -i "$convert_dir/$FILE" -map 0 $exclude_stream -c:v "$video_library" -c:a copy -preset "$ffmpeg_preset" -movflags faststart -threads 2 -nostdin -loglevel quiet -stats "$converted_dir/$NAME.mkv"
463+
if ! /usr/bin/ffmpeg -y -i "$convert_dir/$FILE" -map 0 $exclude_stream -c:v "$video_library" -c:a copy -preset "$ffmpeg_preset" -max_muxing_queue_size 1024 -movflags faststart -threads 2 -nostdin $ffmpeg_verbose -stats "$converted_dir/$NAME.mkv"
451464
then
452465
printf "$ffmpeg_error"
453466
exit 0
@@ -456,13 +469,13 @@ function func_encode {
456469
else
457470
if [ "$video_codec" == "h264" ]
458471
then
459-
if ! /usr/bin/ffmpeg -y -i "$convert_dir/$FILE" -map 0 $exclude_stream -c:v "$video_library" -crf 20 -level 4.1 -c:a "$audio_codec" -preset "$ffmpeg_preset" -movflags faststart -threads 2 -nostdin -loglevel quiet -stats "$converted_dir/$NAME.mkv"
472+
if ! /usr/bin/ffmpeg -y -i "$convert_dir/$FILE" -map 0 $exclude_stream -c:v "$video_library" -crf 20 -level 4.1 -c:a "$audio_codec" -preset "$ffmpeg_preset" -max_muxing_queue_size 1024 -movflags faststart -threads 2 -nostdin $ffmpeg_verbose -stats "$converted_dir/$NAME.mkv"
460473
then
461474
printf "$ffmpeg_error"
462475
exit 0
463476
fi
464477
else
465-
if ! /usr/bin/ffmpeg -y -i "$convert_dir/$FILE" -map 0 $exclude_stream -c:v "$video_library" -c:a "$audio_codec" -preset "$ffmpeg_preset" -movflags faststart -threads 2 -nostdin -loglevel quiet -stats "$converted_dir/$NAME.mkv"
478+
if ! /usr/bin/ffmpeg -y -i "$convert_dir/$FILE" -map 0 $exclude_stream -c:v "$video_library" -c:a "$audio_codec" -preset "$ffmpeg_preset" -max_muxing_queue_size 1024 -movflags faststart -threads 2 -nostdin $ffmpeg_verbose -stats "$converted_dir/$NAME.mkv"
466479
then
467480
printf "$ffmpeg_error"
468481
exit 0
@@ -737,7 +750,7 @@ case "$command" in
737750
func_config
738751
;;
739752
encode)
740-
while getopts ":a:l:p:r:v:" opt; do
753+
while getopts ":a:l:p:r:v-:" opt; do
741754
case $opt in
742755
a)
743756
check_variable audio ${OPTARG,,}
@@ -787,6 +800,13 @@ case "$command" in
787800
exit 0
788801
fi
789802
;;
803+
-)
804+
case ${OPTARG} in
805+
"verbose"*)
806+
verbose="true"
807+
;;
808+
esac
809+
;;
790810
\?)
791811
echo "Invalid option: -$OPTARG." >&2
792812
exit 1
@@ -799,7 +819,7 @@ case "$command" in
799819
done
800820
if [ $OPTIND -eq 1 ]
801821
then
802-
printf "\\e[39mUsage:\\n plexus encode -l /path/to/list.txt [flags]\\n\\nFlags:\\n -a Audio codec. Default = $audio_codec\\n -l List location. Default = $list_file\\n -p FFMpeg preset. Default = $ffmpeg_preset\\n -r RClone remote. Use this for RClone integration\\n -v Video codec. Default = $video_codec\\n"
822+
printf "\\e[39mUsage:\\n plexus encode -l /path/to/list.txt [flags]\\n\\nFlags:\\n -a Audio codec. Default = $audio_codec\\n -l List location. Default = $list_file\\n -p FFMpeg preset. Default = $ffmpeg_preset\\n -r RClone remote. Use this for RClone integration\\n -v Video codec. Default = $video_codec\\n --verbose Show detailed log\\n"
803823
exit 0
804824
fi
805825
if [ ! -z "$list_file" ]

0 commit comments

Comments
 (0)