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
1つだけ実行されます。
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;