Próbuję wsadowo przekonwertować kilka plików i robię prostą listę przekonwertowanych plików do dokumentu tekstowego, dzięki czemu mogę zatrzymać skrypt i kontynuować od około, kiedy zacząłem.
#! /bin/sh
source_dir="/home/eldamar/video"
find $source_dir -type f -regex ".*/.*\.\(mov\|mpg\|mkv\|avi\|m2v\|wmv\|flv\|m2ts\|vob\)" | {
while read file
do
ext=${file##*.}
filename=${file##*/}
basename=${filename%.*}
dirname=${file%/*}
touch converted.txt
if grep -Fxq "$filename" converted.txt
then
echo "$(tput setaf 2)File "$filename" is allready converted, ignoring it :D$(tput setaf 7)"
else
# Extract subtitles for mkv files
echo $ext
if [ "$ext"=="mkv" ]; then
# input.srt <- default subtitle
# input.lang.srt <- other languages
$sublang=""
mkvinfo=$(mkvinfo $file | grep subtitles -B3 -A3)
# Replace existing .srt
# rm $dirname/$basename.srt
# Extract subtitle from mkv
# mkvextract tracks input.mkv -c ISO8859-1 3:$dirname/$basename.$sublang.srt
fi
avconv -y -i $file -map 0 -map -0:s -vcodec libx264 -acodec libfaac $dirname/$basename.mp4
# Store the filename in list
echo $filename >> converted.txt
fi
done;
}
Nie, ekstrakcja napisów również jest w toku, ale mam problem z wiedzą, czy avconv się nie powiedzie, czy istnieje sposób?
Edytować Nieco zrobione teraz z tym skryptem, oto jest http://pastebin.com/trMDRaq5 dzięki za pomoc!