以前のエントリーにも書いた ffmepg を使うと標準入力が壊れる問題の解決方法は、
/dev/null
を読み込ませるということである、
と言いたいだけのエントリー。
次のようなループで read -r filepath
が想定してない欠損した値を読み込むのは ffmpeg
が標準入力を読み込んでいるのが原因。
while read -r filepath; do ffmpeg \ -i "${filepath}" \ -c copy \ "${filepath/.mov/.mp4}" done < <(find path/to/videos -type f -name '*.mov')
そこで ffmpeg
に /dev/null
から読み込ませるようにすれば、 read -r filepath
が想定してないデータを読み込むことはなくなる
while read -r filepath do ffmpeg \ -i "${filepath}" \ -c copy \ "${filepath/.mov/.mp4}" \ < /dev/null done < <(find path/to/videos -type f -name '*.mov')
よく考えれば当然の方法だが、ちょっと気づかなかったのでメモ