LoginSignup
0
0

ffmpegで動画を分割する時の連番を1から開始する

Last updated at Posted at 2024-02-17

はじめに

mp4形式の動画ファイルをffmpegを使用して一定時間ごとに分割して1から連番にしたかったが、どうしても0からの連番になってしまい若干てこずったのでまとめた

環境

  • ffmpeg 4.3.6-0+deb11u1
$ ffmpeg -v
ffmpeg version 4.3.6-0+deb11u1 Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr --extra-version=0+deb11u1 --toolchain=hardened --libdir=/usr/lib/aarch64-linux-gnu --incdir=/usr/include/aarch64-linux-gnu --arch=arm64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100

状況

mp4形式の動画ファイル(例、in.mp4)を一定時間(例、600秒間=10分間)ごとにffmpegを使用して分割するとき、出力ファイル名(例、out<連番>.mp4)の連番が0からになってしまう。

$ ffmpeg -i in.mp4 -c copy -f segment -segment_time 600 out%d.mp4
$
$ ls out*.mp4
out0.mp4 out1.mp4 out2.mp4 ....          (out0.mp4から始まる)

解決方法

ネットを検索してffmpegのオプションとしてstart_numberを指定すればいいのかと思ったら期待した通り動作せず、segment_start_numberオプションで開始番号を指定すれば期待通りに動作させることができた。

$ ffmpeg -i in.mp4 -c copy -f segment -segment_time 600   \
    -segment_start_number 1 out%d.mp4         # -segment_start_numberで開始番号を指定
$
$ ls out*.mp4
out1.mp4 out2.mp4 out3.mp4 ....          (out1.mp4から始まる)

ややこしいことに出力ファイル形式が静止画と動画ではパラメータ名、および省略時の値が変わってしまう

静止画出力の例(パラメータを指定しない場合)

連番は1から始まる(動画の場合は0から始まる)

$ ffmpeg -i in.mp4 -vcodec png out%d.png
$
$ ls out*.png
out1.png out2.png out3.png ....         (out1.pngから始まる)

静止画出力の例(パラメータを指定する場合)

開始番号の指定はstart_number(動画の場合はsegment_start_number

$ ffmpeg -i in.mp4 -vcodec png \
    -start_number 0 out%d.png                  # -start_numberで開始番号を指定
$
$ ls out*.png
out0.png out1.png out2.png ....         (out0.pngから始まる)

参考情報

0
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
0
0