![ffmpeg 脚本仅在列表中的第一个运行?](https://linux22.com/image/116032/ffmpeg%20%E8%84%9A%E6%9C%AC%E4%BB%85%E5%9C%A8%E5%88%97%E8%A1%A8%E4%B8%AD%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AA%E8%BF%90%E8%A1%8C%EF%BC%9F.png)
我写了一个小脚本,将 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
如果我用with echo替换该行,则echo $line
所有行都运行,但 with ffmpeg
it 只运行一个。
有人知道为什么 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;