4
많은 비디오 파일을 변환하고 파일 이름에 추가 된 것으로 저장하는 쉘 스크립트를 작성했습니다. 스크립트는 작동하지만 무작위로 파일을 건너 뛰는 것처럼 보입니다.FFmpeg 스크립트는 파일을 건너 뜁니다.
스크립트를 다시 실행하면 이전에 건너 뛴 파일이 변환됩니다. 파일을 건너 뛰는 것을 멈추게하려면 어떻게해야합니까?
workingDir=/home/user/Videos
# get list of files to convert
find /video/folder -iname "*.mp4" > $workingDir/file_list
# convert files
cat $workingDir/file_list | while read LINE; do
# FFmpeg often cuts off the beginning of this line
echo "$(dirname "$LINE")/$(basename "$LINE")"
if /usr/bin/ffmpeg -n -loglevel panic -v quiet -stats -i "$LINE" \
-c:v libx264 -vf scale="trunc(oh*a/2)*2:320" \
-pix_fmt yuv420p -preset:v slow -profile:v main -tune:v animation -crf 23 \
"$(dirname "$LINE")/$(basename "$LINE" \.mp4)"_reencoded.mp4 2>/dev/null; then
echo "Success: $(dirname "$LINE")/$(basename "$LINE")" >> $workingDir/results
else
echo "Failed: $(dirname "$LINE")/$(basename "$LINE")" >> $workingDir/results
fi
done
하나의 문제는 FFmpeg가 스크립트를 방해한다는 것입니다. FFmpeg 출력은 출력이 표시되지 않더라도 다음 명령의 시작 부분을 잘립니다. 이것은 자주 중단되는 if 문 앞에 echo 행에 의해 증명됩니다. 그러나 차단되지 않은 회선에 대해서도 대부분의 경우 분명한 이유없이 건너 뜁니다.
감사합니다. – ucq52ose