나는 내가 여기에서 찾은 모든 것을 가져 갔고 아마의 flac를 재귀 적으로 만들뿐만 아니라 다중 스레드를 지원하는 다른 경로를 만들기 위해 상대 경로를 유지하는 작은 도구를 만들었습니다.
오, 그래, 나는 OSMC가 ffmpeg에 대한 패키지를 제공하지 않았기 때문에 ffmpeg를 사용하지 않았지만 avconv 만 보았지만 이미 여기 있기 때문에 "기본적으로" 적어도 가장 중요한 부분은 동일합니다. "avconv"명령을 "ffmpeg"로 바꾸십시오. 나의 첫 번째 실행은 ffmpeg bin과 똑같은 옵션이었습니다.
나는 결코 bash 해커가 아니지만 주어진 요구 사항을 가진 첫 번째 bashscript로 누군가를 관리 할 것입니다. 나는 당신의 의견에 대해 열려 있지만 지금까지는 효과적입니다.
각 코어마다 하나씩 4 개의 인스턴스를 생성하는 스크립트는 다음과 같습니다.
#!/bin/bash
# this should be quite self-explanatory
for i in {1..4}
do
echo "started instance no: $i"
/home/osmc/transform.sh . &
# sleeping time can be shorter, this is just so, that
# not all 4 processes will want to start with the same
# file, during runtime collisions should not become an issue
sleep 5
done
echo "all instances started"
그리고 작업자 스크립트는 다음과 같습니다.
#!/bin/bash
# take care of spaces
IFS=$'\n'
# my music folders, remote is the source, local the target dir
remote=/mnt/music/FLAC
local=/mnt/1tb/mp3
# for all flac files start loop
for i in $(find $remote -type f -iname '*.flac' );
do
## SET VARIABLES for PATHS and FILENAMES
## this might be able to be super short with sed and complex one-liner,
## but I s*ck at regex
fullfile=$i
# strip extension
filename="${i##*/}"
# add new extension
filename="${filename%.*}.mp3"
# get full dirname from inputfile
fulldir=$(dirname "${i}")
# strip leading dirs from full input dir
# count the dirs, add two, then you're good.
reldir="$(echo $fulldir | cut -d'/' -f5-)"
# some subdirs in my collection even have a flac subdir, you might
# ignore this, it strips only if it exists
reldir=${reldir//flac}
# combine target dir and relative dir
outdir="$local/$reldir"
# generate the full output filename for conversion
outfile="$outdir/$filename"
# create whole target directory - yes, I need it only once, but hey,
# it works, didn't want to start a if not exist statement... should I?
mkdir -p "$outdir"
# run conversion - finally... you may want or need to replace
# "avconv" with "ffmpeg"
avconv -n -nostats -loglevel info -i "$fullfile" -codec:a libmp3lame -qscale:a 0 "$outfile"
done
https://github.com/erdnuesse/flac-to-mp3 에서 찾을 수 있습니다
감사합니다, 케이