@taroboxfan

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

FFMPEG 連番を上書きせずに続き番号からはき出したい

解決したいこと

ffmpegを使い、監視カメラのストリームから10秒ごとに画像を切り出して丸1日分を撮りためています。
時々途中で止めたりすることがあり、再開した際に、すでにある続き番号から画像をはき出してほしいのですが、
ffmpegで -nをつけても00001番から上書きが始まってしまいます。

どのように記述すれば続きの番号から出力できるかご教示ください。

発生しているコマンド

ffmpeg -i rtsp://*.*.*.*:8554/unicast -n -vf fps=1/10 -f image2 /today/image_%05d.jpg

なお、1日の終わりには一度ffmpegを終了し、前日のフォルダへすべての画像を移行してから、ffmpegを再開するようcronで設定しているため、
その再開時は00001から始まってほしいです。

翌日AM0時のcron

mv /today/*.jpg /`date --date=yesterday '+%Y%m%d'`
ffmpeg -i rtsp://*.*.*.*:8554/unicast -n -vf fps=1/10 -f image2 /today/image_%05d.jpg
0 likes

2Answer

-start_number 数値 オプションで開始番号を指定できます。 https://ffmpeg.org/ffmpeg-formats.html#Examples-1

以下のようにすれば今日の分の続き番号を指定できます。(Ruby が必要です。)

-start_number "$(ruby -rpathname -e 'puts Pathname.glob("/today/*.jpg").map { |s| s.basename.to_s[/\d+/].to_i + 1}.max || 1')"
2Like

uasi様
早速にありがとうございました。
構文についてはまったく理解することができませんが、
無事連番の続きから吐き出されてきました。
ありがとうございました。

0Like

Your answer might help someone💌