Podążaj za instrukcjami w poniższym filmie, aby zobaczyć, jak zainstalować naszą stronę jako aplikację internetową na ekranie głównym swojego urządzenia.
Informacja: Ta funkcja może nie być dostępna w niektórych przeglądarkach.
Używasz przestarzałej przeglądarki. Może ona nie wyświetlać poprawnie tej lub innych stron internetowych. Powinieneś zaktualizować swoją przeglądarkę lub użyć alternatywnej przeglądarki.
Wersja oprogramowania Firmware: 4.3.3.0299 Build 20170901 Model serwera: QNAP TS-251
Hej,
Czy jest jakaś aplikacja działająca bezpośrednio na NAS dzięki której można ustawić automatyczną zmianę rozdzielczości wszystkich zdjęć zapisanych w danym folderze?
Dzięki, muszę się podszkolić z konsoli
Połączyłem się przez putty, polecenie "resize" działa ok.
Jednak nadal nie wiem jak zrobić ,żeby bez łączenia się z qnapem automatycznie wszystkie pliki zdjęciowe, które zostaną "wrzucone" do danego folderu zostały zmniejszone do danej rozdzielczości.
Przykładowo wrzucam do folderu tylko jedno duże zdjęcie o nazwie "winter.jpg" a qnap automatycznie robi dwa pliki "winter.jpg" + "winter_resize.jpg" ewentualnie tylko ten zmniejszony "winter_resize.jpg"
ok , jestem trochę bliżej. Poczytałem co to crone i znalazłem webcrone i w nim dopisałem polecenie.
Problem jest taki,że nie do końca wiem jakie polecenie wpisać,żeby zadziałało tak jak chce
to
zmienia na nowe nazwy "*.jpg" a chciałbym zachować starą + nową.rozszerzeniei np. "zima.jpg" na "zima_resize.jpg"
Drugi problem,że to polecenie tworzy w kółko niepotrzebne kopie kopii plików co każdą minutę zamiast wykonać zadanie raz na jednym pliku.
Nie wiem też jak jak wyłączyć to zadanie w webcrontab a w konsoli poprzez putty i edytor vi nie widać tego zadania
1. w crontabie używa się pełnych ścieżek do poleceń - zamiast convert -> /usr/local/sbin/convert
2. brak logiki tutaj , każdy plik w folderze (łącznie z avi/mkv i co dusza pragnie) przeskaluj do zadanej rozdzielczości, wynik dzialania programu (jakieś logi) wycisz
3. to nie bedzie trzymać proporcji obrazu
mam PODOBNY skrypt który robi miniaturki z filmów, jak jest plik miniaturki to omiń plik, leć dalej z listą:
Bash:
#!/bin/bash
#check for required software
command -v shuf >/dev/null 2>&1 || { echo "I require shuf but it's not installed. Aborting." >&2; exit 1; }
command -v ffmpegthumbnailer >/dev/null 2>&1 || { echo "I require ffmpegthumbnailer but it's not installed. Aborting." >&2; exit 1; }
# check if crucial parameter is missing ...
if [ $# -eq 0 ]
then
echo "Usage: $0 /video/folder/to/scan/ > thumbs.sh ; bash thumbs.sh"
exit 1;
fi
source_dir="${1}"
#function which creates commands to create pics ...
function create_commands()
{
#check if parameter is empty or so ...
if [ -z "$1" ]
then return 1
fi
#little bash magic here
Upload=False
SQL_User=root
SQL_Password=haslo123
generator=/usr/bin/ffmpegthumbnailer
fname="${1}"
filename=$(basename "$1")
DIR=$(dirname "$1")
extension="${filename##*.}"
filename_o="${filename%.*}"
file1="$DIR/$filename_o-thumb.jpg"
file2="$DIR/$filename_o-poster.jpg"
#create thumb if is not present
if [ ! -f "${file1}" ]; then
echo $generator -i \"${fname}\" -o \"${file1}\" -q 10 -s 400 -t `shuf -i10-85 -n1`%
Upload=True
fi
#create poster if is not present
if [ ! -f "${file2}" ]; then
echo $generator -i \"${fname}\" -o \"${file2}\" -q 10 -s 400 -t `shuf -i10-85 -n1`%
Upload=True
fi
#Upload info to DB ..
#Uncomment to disable info upload to DB
#Upload=False
#Uncomment for trimming name
fname=`echo $fname | cut -d '/' -f4- `;
if [ "$Upload" == "True" ]; then
echo "#${fname}";
echo "INSERT INTO ThumbsInfo (ID, Filename, CreationDate) VALUES (NULL,"\"${fname}\"", '`date +"%Y-%m-%d %T"`');" | mysql -u$SQL_User -p$SQL_Password ThumbsInfo;
fi
return 0
}
input_file_types=(mkv mp4 avi)
#loop over the types and convert
for input_file_type in "${input_file_types[@]}"
do
#let find do magic with -print0 to keep null char at end of line
find "$source_dir" -name "*.$input_file_type" -print0 | while IFS= read -r -d $'\0' in_file
do
#create some commands from provided paths
create_commands "${in_file}"
done
done
Problem jest tylko ze zmianą nazwy pliku i z tym,że bez ustanku robi cały czas od nowa
Z tego co znalazłem jest to niezależne od systemowego crontab. To mój pierwszy NAS więc kręce się w kółko a Twojego skryptu nie rozumiem i nawet nie wiem jak go uruchomić. Zamiast długiego skryptu wystarczyłaby pewnie tylko jakaś odpowiednia komenda i zmienna dodana do polecenia ale nie wiem jaka
#!/bin/bash
for image_file in *.jpg
do
image_file="${image_file// /\ }"
image_file_thm="${image_file//.jpg/_thm.jpg}"
if ! [ -f "${image_file_thm}" ] && [ "${image_file:(-8)}" != "_thm.jpg" ]
then
convert "${image_file}" -resize "1024x768>" "${image_file_thm}"
fi
done
i trzeba dodać do crontaba
nie wiem dlaczego poprzez edycję w crontabie nie zadziałało to :
Kod:
*/5 * * * * /share/CACHEDEV1_DATA/test/conv.sh
,ale poprzez WebCrontab działa idealnie, więc jak ktoś potrzebuje to polecam.
robiłem to: vi /etc/config/crontab
tam dodałem: */5 * * * * /share/CACHEDEV1_DATA/test/conv.sh
potem crontab /etc/config/crontab && /etc/init.d/crond.sh restart ( a nawet cały serwer restartowałem)
i to też oczywiście : chmod +x conv.sh
i nie wiem o chodzi,że nie zadziałało, ale to już nie ważne w sumie bo webcrontab działa super i można w każdej chwili zmienić bez edycji samego crontaba i zawsze tak będe robił harmonogram zadań. ps. Szkoda ,że Icrontaba nie ma czystego,żeby mógł wykrywać pliki zamiast harmonogramu