1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ffmpegはシェル変数の先頭文字を壊す!?

Last updated at Posted at 2022-08-09

環境

  • ffmpeg: V5.1, MacOSX: Darwin Kernel Version 21.6.0, bash: 5.1.16(1)

現象

  • ffmpegでトリミングするために対象の複数ファイルを文字列として渡すと、なぜか変数の文字列の最初が壊れました.コードは適当ですが、こんな感じの現象です.
cat $f_log.ffmpeg               \
| while read -r f_input t_start f_dist; do
  if [ ! -f $f_input ]; then
    echo "No $f_input"  
  else
    ffmpeg -y -i $f_input -ss $t_start -t-ac 1 $f_dist
  fi
done                                                      

No var/data/A.mp3
No r/data/B.mp3
...(最初の数文字が消えています)

対応策

  • 子プロセス化することで回避できました. 
  ( echo "ffmpeg -y -i $f_input -ss $t_start -t 3 -ac 1 $f_dist" | sh -C )

なぜ、ffmpegは変数を変えてしまうのか理由は知りませんが(バグ?)、もし、他人様ツールでシェル変数が意図せず変わってしまうことがありましたら、子プロセス化することご検討くださいませ.

どなたの役にたちましたら幸いです

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?