HQ 비디오를 LQ로 변환하는 작은 스크립트를 작성했습니다.
ls video/hq | cut -d. -f1 | while read line ; do
HQ=./video/hq/$line.mp4
LQ=./video/lq/$line.mp4
ffmpeg -i $HQ -crf 40 $LQ
done;
내가 실행하면 ls video/hq | cut -d. f1
다음을 얻습니다.
1502460615677
1502461135975
1502461292963
1502461373947
1502461493936
1502461782119
1502460615677
그러나 런타임은 변환 스크립트만 처리합니다.
ffmpeg
줄을 echo로 바꾸면 echo $line
모든 줄이 실행되지만, 줄을 바꾸면 ffmpeg
하나만 실행됩니다.
ffmpeg가 실행 방식을 변경하는 이유를 아는 사람이 있습니까?
답변1
분명히 ffmpeg
표준 입력에서 읽는 것은 read
명령을 방해합니다. 그래서 안내하고 싶은데/dev/null
ls video/hq | cut -d. -f1 | while read line ; do
HQ=./video/hq/$line.mp4
LQ=./video/lq/$line.mp4
ffmpeg -i $HQ -crf 40 $LQ < /dev/null
done;