Skip to content

Instantly share code, notes, and snippets.

@BenjaminPoncet
Last active March 29, 2024 10:11
Show Gist options
  • Save BenjaminPoncet/bbef9edc1d0800528813e75c1669e57e to your computer and use it in GitHub Desktop.
Save BenjaminPoncet/bbef9edc1d0800528813e75c1669e57e to your computer and use it in GitHub Desktop.
Synology VideoStation ffmpeg wrapper with DTS, EAC3 and TrueHD support. This project is no longer maintained: Please see the following projects: https://github.com/darknebular/Wrapper_VideoStation/ - https://github.com/AlexPresso/VideoStation-FFMPEG-Patcher
#!/bin/bash
rev="12"
_log(){
echo "$(date '+%Y-%m-%d %H:%M:%S') - ${streamid} - $1" >> /tmp/ffmpeg.log
}
_log_para(){
echo "$1" | fold -w 120 | sed "s/^.*$/$(date '+%Y-%m-%d %H:%M:%S') - ${streamid} - = &/" >> /tmp/ffmpeg.log
}
_term(){
rm /tmp/ffmpeg-${streamid}.stderr
_log "*** KILLCHILD ***"
kill -TERM "$childpid" 2>/dev/null
}
trap _term SIGTERM
arch=`uname -a | sed 's/.*synology_//' | cut -d '_' -f 1`
nas=`uname -a | sed 's/.*synology_//' | cut -d '_' -f 2`
pid=$$
paramvs=$@
stream="${@: -1}"
streamid="FFM$pid"
bin1=/var/packages/ffmpeg/target/bin/ffmpeg
bin2=/var/packages/VideoStation/target/bin/ffmpeg.orig
args=()
vcodec="KO"
while [[ $# -gt 0 ]]
do
case "$1" in
-i)
shift
movie="$1"
args+=("-i" "$1")
;;
-hwaccel)
shift
hwaccel="$1"
args+=("-hwaccel" "$1")
;;
-scodec)
shift
scodec="$1"
args+=("-scodec" "$1")
;;
-f)
shift
fcodec="$1"
args+=("-f" "$1")
;;
-map)
shift
args+=("-map" "$1")
idmap=`echo $1 | cut -d : -f 2`
if [ "$vcodec" = "KO" ]; then
vcodec=`/var/packages/ffmpeg/target/bin/ffprobe -v error -select_streams $idmap -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 "$movie" | head -n 1`
vcodecprofile=`/var/packages/ffmpeg/target/bin/ffprobe -v error -select_streams $idmap -show_entries stream=profile -of default=noprint_wrappers=1:nokey=1 "$movie" | head -n 1`
else
acodec=`/var/packages/ffmpeg/target/bin/ffprobe -v error -select_streams $idmap -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 "$movie" | head -n 1`
fi
;;
*)
args+=("$1")
;;
esac
shift
done
_log "*** PROCESS START REV $rev DS$nas ($arch) PID $pid ***"
streamdir=`dirname "$stream"`
device=`cat ${streamdir}/video_metadata | jq -r '.device'`
_log "DEVICE = $device"
_log "MOVIE = $movie"
set -- "${args[@]}"
argsnew=()
args1sv=()
args2sv=()
args1vs=()
args2vs=()
while [[ $# -gt 0 ]]
do
case "$1" in
-ss)
shift
argsnew+=("-ss" "$1")
args1sv+=("-ss" "$1")
args1sv+=("-noaccurate_seek")
args1vs+=("-ss" "$1")
args1vs+=("-noaccurate_seek")
args2sv+=("-analyzeduration" "10000000")
args2vs+=("-analyzeduration" "10000000")
;;
-i)
shift
argsnew+=("-i" "$1")
args1sv+=("-i" "$1")
args2sv+=("-i" "pipe:0" "-map" "0")
args1vs+=("-i" "$1")
args2vs+=("-i" "pipe:0" "-map" "0")
;;
-vf)
shift
if [ "$hwaccel" = "vaapi" ] && [ "$vcodecprofile" = "Main 10" ]; then
scale_w=`echo "${1}" | sed -e 's/.*=w=//g' | sed -e 's/:h=.*//g'`
scale_h=`echo "${1}" | sed -e 's/.*:h=//g'`
if let ${scale_w} AND let ${scale_h}; then
argsnew+=("-vf" "scale_vaapi=w=${scale_w}:h=${scale_h}:format=nv12,hwupload,setsar=sar=1")
else
argsnew+=("-vf" "scale_vaapi=format=nv12,hwupload,setsar=sar=1")
fi
else
argsnew+=("-vf" "$1")
fi
args2sv+=("-vf" "$1")
args1vs+=("-vf" "$1")
;;
-vcodec)
shift
argsnew+=("-vcodec" "$1")
args1sv+=("-vcodec" "copy")
args2sv+=("-vcodec" "$1")
args1vs+=("-vcodec" "$1")
args2vs+=("-vcodec" "copy")
;;
-acodec)
shift
if [ "$1" = "libfaac" ]; then
argsnew+=("-acodec" "aac")
args1sv+=("-acodec" "aac")
args2vs+=("-acodec" "aac")
else
argsnew+=("-acodec" "$1")
args1sv+=("-acodec" "$1")
args2vs+=("-acodec" "$1")
fi
args2sv+=("-acodec" "copy")
args1vs+=("-acodec" "copy")
;;
-ab)
shift
argsnew+=("-ab" "$1")
args1sv+=("-ab" "$1")
args2vs+=("-ab" "$1")
;;
-ac)
shift
argsnew+=("-ac" "$1")
args1sv+=("-ac" "$1")
args2vs+=("-ac" "$1")
;;
-f)
shift
argsnew+=("-f" "$1")
args1sv+=("-f" "mpegts")
args2sv+=("-f" "$1")
args1vs+=("-f" "mpegts")
args2vs+=("-f" "$1")
;;
-segment_format)
shift
argsnew+=("-segment_format" "$1")
args2vs+=("-segment_format" "$1")
args2sv+=("-segment_format" "$1")
;;
-segment_list_type)
shift
argsnew+=("-segment_list_type" "$1")
args2vs+=("-segment_list_type" "$1")
args2sv+=("-segment_list_type" "$1")
;;
-hls_seek_time)
shift
argsnew+=("-hls_seek_time" "$1")
args2vs+=("-hls_seek_time" "$1")
args2sv+=("-hls_seek_time" "$1")
;;
-segment_time)
shift
argsnew+=("-segment_time" "$1")
args2vs+=("-segment_time" "$1")
args2sv+=("-segment_time" "$1")
;;
-segment_time_delta)
shift
argsnew+=("-segment_time_delta" "$1")
args2vs+=("-segment_time_delta" "$1")
args2sv+=("-segment_time_delta" "$1")
;;
-segment_start_number)
shift
argsnew+=("-segment_start_number" "$1")
args2vs+=("-segment_start_number" "$1")
args2sv+=("-segment_start_number" "$1")
;;
-individual_header_trailer)
shift
argsnew+=("-individual_header_trailer" "$1")
args2vs+=("-individual_header_trailer" "$1")
args2sv+=("-individual_header_trailer" "$1")
;;
-avoid_negative_ts)
shift
argsnew+=("-avoid_negative_ts" "$1")
args2vs+=("-avoid_negative_ts" "$1")
args2sv+=("-avoid_negative_ts" "$1")
;;
-break_non_keyframes)
shift
argsnew+=("-break_non_keyframes" "$1")
args2vs+=("-break_non_keyframes" "$1")
args2sv+=("-break_non_keyframes" "$1")
;;
-max_muxing_queue_size)
shift
args2vs+=("-max_muxing_queue_size" "$1")
args2sv+=("-max_muxing_queue_size" "$1")
;;
-map)
shift
argsnew+=("-map" "$1")
args1sv+=("-map" "$1")
args1vs+=("-map" "$1")
;;
*)
argsnew+=("$1")
if [ "$stream" = "$1" ]; then
args1sv+=("-bufsize" "1024k" "pipe:1")
args2sv+=("$1")
args1vs+=("-bufsize" "1024k" "pipe:1")
args2vs+=("$1")
else
args2sv+=("$1")
args1vs+=("$1")
fi
;;
esac
shift
done
sed -i -e "s/{\"PID\":${pid},\"hardware_transcode\":true,/{\"PID\":${pid},\"hardware_transcode\":false,/" /tmp/VideoStation/enabled
startexectime=`date +%s`
if [ "$scodec" = "subrip" ]; then
_log "FFMPEG = $bin2"
_log "CODEC = $scodec"
_log "PARAMVS ="
_log_para "$paramvs"
$bin2 "${args[@]}" &> /tmp/ffmpeg-${streamid}.stderr &
elif [ "$fcodec" = "mjpeg" ]; then
_log "FFMPEG = $bin2"
_log "CODEC = $fcodec"
_log "PARAMVS ="
_log_para "$paramvs"
$bin2 "${args[@]}" &> /tmp/ffmpeg-${streamid}.stderr &
else
_log "VCODEC = $vcodec ($vcodecprofile)"
_log "ACODEC = $acodec"
_log "PARAMVS ="
_log_para "$paramvs"
_log "MODE = WRAP"
_log "FFMPEG = $bin1"
_log "PARAMWP ="
param1=${argsnew[@]}
_log_para "$param1"
$bin1 "${argsnew[@]}" &> /tmp/ffmpeg-${streamid}.stderr &
fi
childpid=$!
_log "CHILDPID = $childpid"
wait $childpid
if grep "Conversion failed!" /tmp/ffmpeg-${streamid}.stderr || grep "Error opening filters!" /tmp/ffmpeg-${streamid}.stderr || grep "Unrecognized option" /tmp/ffmpeg-${streamid}.stderr || grep "Invalid data found when processing input" /tmp/ffmpeg-${streamid}.stderr; then
_log "*** CHILD END ***"
startexectime=`date +%s`
_log "STDOUT ="
_log_para "`tail -n 15 /tmp/ffmpeg-${streamid}.stderr`"
_log "MODE = PIPE SV"
_log "FFMPEG1 = $bin1"
_log "FFMPEG2 = $bin2"
_log "PARAM1 ="
param1=${args1sv[@]}
_log_para "$param1"
_log "PARAM2 ="
param2=${args2sv[@]}
_log_para "$param2"
$bin1 "${args1sv[@]}" | $bin2 "${args2sv[@]}" &> /tmp/ffmpeg-${streamid}.stderr &
childpid=$!
_log "CHILDPID = $childpid"
wait $childpid
fi
if grep "Conversion failed!" /tmp/ffmpeg-${streamid}.stderr || grep "Error opening filters!" /tmp/ffmpeg-${streamid}.stderr || grep "Unrecognized option" /tmp/ffmpeg-${streamid}.stderr || grep "Invalid data found when processing input" /tmp/ffmpeg-${streamid}.stderr; then
_log "*** CHILD END ***"
startexectime=`date +%s`
_log "STDOUT ="
_log_para "`tail -n 15 /tmp/ffmpeg-${streamid}.stderr`"
_log "MODE = PIPE VS"
_log "FFMPEG1 = $bin2"
_log "FFMPEG2 = $bin1"
_log "PARAM1 ="
param1=${args1vs[@]}
_log_para "$param1"
_log "PARAM2 ="
param2=${args2vs[@]}
_log_para "$param2"
$bin2 "${args1vs[@]}" | $bin1 "${args2vs[@]}" &> /tmp/ffmpeg-${streamid}.stderr &
childpid=$!
_log "CHILDPID = $childpid"
wait $childpid
fi
if grep "Conversion failed!" /tmp/ffmpeg-${streamid}.stderr || grep "Error opening filters!" /tmp/ffmpeg-${streamid}.stderr || grep "Unrecognized option" /tmp/ffmpeg-${streamid}.stderr || grep "Invalid data found when processing input" /tmp/ffmpeg-${streamid}.stderr; then
_log "*** CHILD END ***"
startexectime=`date +%s`
_log "STDOUT ="
_log_para "`tail -n 15 /tmp/ffmpeg-${streamid}.stderr`"
_log "MODE = ORIG"
_log "FFMPEG = $bin2"
$bin2 "${args[@]}" &> /tmp/ffmpeg-${streamid}.stderr &
childpid=$!
_log "CHILDPID = $childpid"
wait $childpid
fi
stopexectime=`date +%s`
if test $((stopexectime-startexectime)) -lt 10; then
_log "STDOUT ="
_log_para "`tail -n 15 /tmp/ffmpeg-${streamid}.stderr`"
fi
_log "*** CHILD END ***"
_log "*** PROCESS END ***"
rm /tmp/ffmpeg-${streamid}.stderr
@darknebular
Copy link

Until he kicked me out of GitHub he didn't stop

@Denton22
Copy link

darknebular has been suspended from github, because his behaviour is not ok

@KidWar75
Copy link

darknebular has been suspended from github, because his behaviour is not ok

Yep, I reported him :)

@darknebular
Copy link

darknebular has been suspended from github, because his behaviour is not ok

True, I have lost my composure.
But I can't spend all day with humiliating comments or belittling my work.

I don't deserve to have my entire account censored either.

@Denton22
Copy link

darknebular has been suspended from github, because his behaviour is not ok

Yep, I reported him :)

Me too...

@darknebular
Copy link

darknebular commented Aug 11, 2023

Ok Thanks for all!!!

I don't deserve to have my entire account censored either, perhaps only the comments...

@REDoxONA
Copy link

This is very sad.
He did a great work there!!!

@dsfans
Copy link

dsfans commented Aug 11, 2023

That's lies (again) :)
The wrapper only patches specific files (ffmpeg27, ffmpeg33 and ffmpeg41) if they exists, these files are exclusively used by VideoStation.

Are you calling me a liar here? Do you know me?...You don't, Capichi?

I spent 3 weeks of my life solving a problem with the Video Cameras App because of your wrapper, Alex, yes it's true, there is a dedicated binary, but perhaps you don't know that when you store videos of recordings with rare formats, the system jumps and uses ffmpeg41 and it didn't work for me because I didn't realize that and that ffmpeg41 was pointing to a binary that no longer existed on my system.

By the way, I just tried to enter the darknebular profile and I was able to access it. It looks like good!!!

@dsfans
Copy link

dsfans commented Aug 11, 2023

I don't deserve to have my entire account censored either, perhaps only the comments...

We know what AlexPresso is trying to do with you. Do not respond to their provocations. We know that the only thing you used was its wrapper.

Don't worry and again thanks for your Wrapper, it works great.

@REDoxONA
Copy link

By the way, I just tried to enter the darknebular profile and I was able to access it. It looks like good!!!

Good news!!!!

@darknebular, don't worry, you've done a great job there and right now I'm going to give you the star you deserve.

@darknebular
Copy link

Thanks a lot guys.
image

REDoxONA si viajas a Madrid tienes una cerveza pagada por mi!!!

@darknebular
Copy link

The Installer´s Script version 3.9.3 Wrapper with 5.1 and Configurator Tool:

Fully tested, fully stable, fully configurable using the Advanced Wrapper.

NOW YOU WILL HAVE: (Only when It´s necessary to activate my wrapper. This means transcoding of DTS, EAC3 and TrueHD.)

  • In MediaServer DLNA = [1) AAC 5.1 512kbps AND 2) MP3 2.0 256kbps.] (by default) (If exists)
  • In VIDEO-STATION = [1) MP3 2.0 256kbp AND 2) AAC 5.1 512kbps.] (by default)
  • You now can change the 5.1 audio´s codec from AAC 512kbps to AC3* 640kbps independently of its audio´s streams order in VIDEO-STATION and DLNA MediaServer using the configurator tool embedded into the installer.sh.

*(AC3 is more compatible with legacy 5.1 devices).
Avoid permanent errors, unlike other Internet Installers. There are other installers on the internet that produce permanent errors on your systems even after uninstalling them. Be careful. This does not happen with my Wrapper and my installer.

ADD-ONs or FIXES FROM 3.9.1:

  • Tested and working fine in a lot of Synology´s models.
  • Homogenize the closing of processes in the Simplest Wrapper with the Advanced Wrapper, to correct a bug carried over from Alex's code (the Simplest Wrapper). The Advanced Wrapper was and is working fine and don't need fix it.
  • Fixed the possibility to enter to the Start menu if you haven't got the AME License and you want to install the patch for the license in a XPEnology system.

Check It out:
Connect using SSH (Maximize the window for read better the menu) and then:

Enter:
sudo -i

And then:

INSTALL / UNINSTALL:

The BASIC command (you will see the Main Menu and all options):
bash -c "$(curl "https://raw.githubusercontent.com/darknebular/Wrapper_VideoStation/main/installer.sh")"

...

OTHER FLAGS:
Enter for installing:
bash -c "$(curl "https://raw.githubusercontent.com/darknebular/Wrapper_VideoStation/main/installer.sh")" -- -s autoinstall

Or (for uninstall it...)

Enter for uninstalling:
bash -c "$(curl "https://raw.githubusercontent.com/darknebular/Wrapper_VideoStation/main/installer.sh")" -- -s uninstall

CONFIGURATOR TOOL:

Enter:
bash -c "$(curl "https://raw.githubusercontent.com/darknebular/Wrapper_VideoStation/main/installer.sh")" -- -s config

https://github.com/darknebular/Wrapper_VideoStation

...

Please give a star in my repository if you like my wrapper or if you find It useful. Thanks...

BEST REGARDS.

@AlexPresso
Copy link

AlexPresso commented Aug 11, 2023

@darknebular

But I can't spend all day with humiliating comments or belittling my work

I'm just answering you, you have no need to insult me.

the system jumps and uses ffmpeg41 and it didn't work for me because I didn't realize that and that ffmpeg41 was pointing to a binary that no longer existed on my system

Oh you are also patching VideoStation and removing it without unpatching... Same test as @REDoxONA ("capichi" is spanish, you didn't say you are Italian ?). Yes. I don't believe you are a legitimate account.

Of course removing VideoStation withouth unpatching creates an issue, I'm working on fixing that.

We know what AlexPresso is trying to do with you

I'm not trying to do anything with him, actually I didn't report him at the time (I said him on Discord after he added me). The only thing I want is make other people see he's actually (and was) saying a lot of wrong things about me and my wrapper. If I'm not doing that, people won't know and they would just end to believe him. That's the reason he's angry in my opinion, because I'm coming here to show everyone when he's wrong.

Github removing his work or account is not what I want because he also spent time for this project. But to be honest I would be very glad if they could prevent him from creating new accounts, using my name/talking about me or my projects, seeing my projects or contacting me in any way. It's up to them to chose the better way to do it.

@AlexPresso
Copy link

By the way, about your bugs @REDoxONA you didn't answer this part:

But wait... If you have a ffmpeg.log file, why did you say in your issue you don't have any log file ? thinkinghttps://github.com/AlexPresso/VideoStation-FFMPEG-Patcher/issues/81

@dsfans
Copy link

dsfans commented Aug 11, 2023

Capichi is the vulgar form and Capisci is the correct, in the street you can use both. And yes this is a Italian word.

He is not talking about your wrapper at any time. However, whenever you can, you do, with comments that he copies you, that he has bullshit features, curious that little by little you are copying many of those "features" too.

@Denton22
Copy link

Ok Thanks for all!!!

I don't deserve to have my entire account censored either, perhaps only the comments...

Great to have you back, hopfully a bit more composed, would be a shame to see that happening again

@AlexPresso
Copy link

AlexPresso commented Aug 11, 2023

@dsfans

Capichi is the vulgar form and Capisci is the correct, in the street you can use both. And yes this is a Italian word.

Oh okay, I didn't know that, my bad then.

He is not talking about your wrapper at any time

https://github.com/darknebular/Wrapper_VideoStation/issues?q=is%3Aissue+alex

hat he copies you, that he has bullshit features

Did you look at his Offline_installer code ? the functions for logging and how to trigger the workflow are very similar... You can actually notice it's not his code because everything else is having a complete different coding style, like : no for loops, not ordering/grouping functions together.
I'm not saying his patcher is not working, I'm just saying he has copied a lot of things from mine and he still acts like my patcher is bad or I don't know but actually he's taking a lot from it.

I'm a bit lazy so I didn't put everything but you can see where he copied and tried to mix with his own way of coding to make it appears as his own code. Do you get why he is angry when I answer his messages now ?

I never said he has bullshit features, I said this comparison image (https://github.com/darknebular/Wrapper_VideoStation#tests-installers) is bullshit, most of the places where he places a red cross are wrong and he knows it.

@AlexPresso
Copy link

AlexPresso commented Aug 11, 2023

Anyway, this PR, fixing the bugs you reported is in a beta state and looking for testers. If anyone wants to (the testing procedure is detailed in the comments): AlexPresso/VideoStation-FFMPEG-Patcher#83

  • Bug 1 : Was not a bug but removed this symlink as it was not improving performances that much.
  • Bug 2 : Fixed, everything now gets automatically unpatched if you uninstall VideoStation.
  • Bug 3 : Not a bug, it’s an enhancement, I will keep this one in my todo for now.
  • Bug 4 : Waiting for your input in the issue.
  • Bug 5 : Fixed, the tmp.wget gets removed after patching/unpatching and the wrappers are now only logging into .stderr files (which get removed after process termination).
  • Bug 6 : Fixed by the fix in Bug 5 ; For this one I also added a “issue-report.sh” script to generate a report and simplify the steps for people opening bug issues and make it more easier to include the log files.
  • Bug 7 : Waiting for your input in the issue.

(to give my patcher a little more love) I also added a linter to check for potential code issue.

@dsfans
Copy link

dsfans commented Aug 11, 2023

JAJAJAJAJAJA

You are saying that he copy you Code because he used a commented box like you for sections?
And he use a intro with a conditional and you a message of the day?

JAJAJAJA JAJAJAJA

@dsfans
Copy link

dsfans commented Aug 11, 2023

That to me is not copying code. For me, copying code is what you did, hundreds and hundreds of lines of his version 12.1 and 12.2 wrapper, up to the last comma at the end and without mentioning him. And he asked you to please (on 3 occasions) to mention him and you replied that they were changes that anyone with little knowledge could make (you again belittled his work), after they were minor changes (you again belittled his work), Many things were fixed thanks to those "small" changes in Benjamin's original Wrapper and you know it. In the image it doesn't say anything about your wrapper, it talks about other installers. Many of the things that you told him were bullshit (you put him down again) like stopping the installation if it detected the Wrapper previously installed for you were trivial and now you're copying the idea. The AME license check you said it was not necessary, that your script works fine without that check and that it was trivial and a Holy Shit and now you are copying the idea from him, we will see if it is not so well part of his code. You never stop mentioning him, in the previous message you write things like he's wrong, what exactly is wrong? (again belittling him, making it look like he's wrong and presenting yourself as the "savior" to his mistakes), now you go back to shitting on him, you mention him again, to say that he copies you and you present us with a fucking comment box and put an intro that makes it different on top? Excuse me, but I must be laughing. If people read you, they will think that all the work is yours and that is a lie. I'm going to ask you too, if you only have those "proofs" better stop saying that he copies your script and stop mentioning him every day and stop manipulating.

@txsastre
Copy link

Thanks a lot guys. image

REDoxONA si viajas a Madrid tienes una cerveza pagada por mi!!!

I already gave you a star, I want my beer to. xD

Eso, que yo también quiero birra. Ánimos @darknebular , buen trabajo.

@darknebular
Copy link

darknebular commented Aug 11, 2023

Eso, que yo también quiero birra. Ánimos @darknebular , buen trabajo.

❤❤❤❤❤❤❤❤❤❤
OEEE MUCHAS GRACIAS!! Tú también eres o hablas español?
Para ti también por su puesto... Espero que ahora no coja y diga que tu cuenta soy yo también que me auto-escribo dice jajajaja, como ha dicho de las otras 2 cuentas anteriores...xD

Sólo tengo esta cuenta y hoy casi la pierdo por entrar al trapo con él. Supongo que él lo hará y por eso lo ve factible que yo también lo haga.

Saludos.

#################

For you too, of course... I hope that now he doesn't pick up and say that your account is also me who writes myself, he says hahahaha, as he said about the other 2 previous accounts... xD

I only have this account and today I almost lost it for going to the rag with him. I suppose that he will do it and that is why he sees it feasible that I do it too.

Greetings.

@REDoxONA
Copy link

(to give my patcher a little more love) I also added a linter to check for potential code issue.
@AlexPresso

I've been thinking about it deeply and I've decided not to continue helping you to improve your wrapper, you don't deserve it.

Until I showed you the bugs you didn't know they existed. How is it possible that darknebular didn't have any of those bugs if according to you, he doesn't use his brain? Well, I'm going to answer you, because he has spent a lot of time debugging and trial and error and you haven't.

And if you keep saying that I'm darknebular (which I'm not), you should at least wash your mouth and thank him for telling you all those bugs, which you call "enhancements"...

Best regards.

@darknebular
Copy link

darknebular commented Aug 11, 2023

THESE ARE OBJECTIVE FACTS AND NOT "FEELINGS OR THE LIKE": THE TRUTH ONLY

The 12.2 was launched in April 2021: (Version 12.1 was even earlier than that date)
image

I asked you up to 3 times to at least mention me and I asked you please, you laughed at my improvements and copied all my first versions and improvements made on Benjamin's wrapper and then you said you didn't.
image

image

### I changed the binaries order in 12.1, delete some commands, fix the logging in order to have only error output and not all output, change the names in the methods with more logical names, you Copy-Paste ALL my changes and ALL my wrapper's fixes or Versions without mention to me and now you are crying because I did a fork from your Simplest? At least I mention to you into the Simplest's wrapper.

LEFT IT'S MY INITIAL WRAPPER'S VERSION 12.1, RIGHT IT'S THE DEPRECATED BENJAMIN'S WRAPPER 12 VERSION.
image
image
image

Here "Alex's" wrapper "from" the "Benjamin's one", but It was really a Copy-Paste from MY INITIAL VERSION 12.1:

image
image
image

I know why I put this 22 there, you don't.

Could you explain this 22 there? No, You can't do it. UP TO THE LAST COMMA, IT WAS AN EXACT COPY PASTE

@txsastre
Copy link

txsastre commented Aug 11, 2023

Eso, que yo también quiero birra. Ánimos @darknebular , buen trabajo.

❤❤❤❤❤❤❤❤❤❤ OEEE MUCHAS GRACIAS!! Tú también eres o hablas español? Para ti también por su puesto... Espero que ahora no coja y diga que tu cuenta soy yo también que me auto-escribo dice jajajaja, como ha dicho de las otras 2 cuentas anteriores...xD

Sólo tengo esta cuenta y hoy casi la pierdo por entrar al trapo con él. Supongo que él lo hará y por eso lo ve factible que yo también lo haga.

Saludos.

#################

For you too, of course... I hope that now he doesn't pick up and say that your account is also me who writes myself, he says hahahaha, as he said about the other 2 previous accounts... xD

I only have this account and today I almost lost it for going to the rag with him. I suppose that he will do it and that is why he sees it feasible that I do it too.

Greetings.

From Spain.
I have to say that is sort of sad to see this kind of discussion here, in a place that open source means "sharing".

I've used both and both do the trick for me, be able to see movies.

Don't waste your time fighting each other, I'm very grateful for your work and the time you have spend for developing this and sharing your knowledge.

And no, I'm not "darknebuka*, I work as system admin and networks, I left behind development.

Now I'm using @darknebular and sometimes ask if it's possible to see subtitles xD. (Yes you said the problem is Synology).

Please peace here.

@darknebular
Copy link

Peace!!!

@geoff2k
Copy link

geoff2k commented Aug 11, 2023

I wish you all could harness this energy and channel it into something productive.

This clearly is something you are both passionate about, but the negativity that this is bringing into your lives can't be worth it.

@AlexPresso
Copy link

Peace

@kalety
Copy link

kalety commented Aug 12, 2023 via email

@darknebular
Copy link

Hi guys, it will be possible “Things” like HDR, 4K, etc in our loved Sinologys?
image
image
image
image

I think that YES!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment