Я использую ваш сервер за маршрутизатором (home / NAT)? Если это так, все, что вам нужно, это передать порт 80 на ваш компьютер на маршрутизаторе. Вы можете найти, как это сделать на portforward.com
По умолчанию Apache удаленно доступен, если нет активного брандмауэра.
Ниже приведен скрипт (python) ниже. Скопируйте его в пустой файл, сохраните его как convert.py, установите каталог в файлы в разделе главы скрипта (convert_dir =) и запустите его командой:
python3 /path/to/convert.py
#!/usr/bin/env python3
convert_dir = "/path/to/folder/tobeconverted"
import os
import subprocess
for root, dirs, files in os.walk(convert_dir):
for name in files:
if name.endswith(".ape"):
# filepath+name
file = root+"/"+name
# to use in other (convert) commands: replace the "avconv -i" by your command, and;
# replace (".ape", ".flac") by the input / output extensions of your conversion
command = "avconv -i"+" "+file+" "+file.replace(".ape", ".flac")
subprocess.Popen(["/bin/bash", "-c", command])
else:
pass
Теперь, когда ffmpeg является предпочтительным по сравнению с avconv снова, и есть дешевые многие основные компьютеры (60 долларов США для 8-ядерного XU4), я использую следующее, чтобы быть наиболее эффективным:
#!/bin/bash
#
# ape2flac.sh
#
function f2m(){
FILE=$(echo "$1" | perl -p -e 's/.ape$//g');
if [ ! -f "$FILE".flac ] ; then
ffmpeg -v quiet -i "$FILE.ape" "$FILE.flac"
fi
}
export -f f2m
find "$FOLDER" -name '*.ape' | xargs -I {} -P $(nproc) bash -c 'f2m "$@"' _ "{}"
, которую вы искали: команда find -type f -name "*.ape" -print0 | xargs -0 avconv -i find будет содержать только файлы, заканчивающиеся на .ape, команда find даст относительный путь к команде avconv, чтобы она могла конвертировать эти файлы и сохранять их в той же папке, что и входной файл (т.е. .ape). Команда find найдет все файлы в этом каталоге, независимо от того, насколько глубоко они хранятся в подкаталоге