LoginSignup
0
0

More than 3 years have passed since last update.

ffmpegを使って、mp4ファイルの結合とフレームレートの水増し

Posted at

動画の記録失敗

30fpsで、1分1ファイル記録して、あとで1時間分に結合しようとおもったんだけど
なんだか早回しみたいな動画しか取れてなかった。
1分のファイルなのに、7秒ぐらいしか再生されない。
早回しなのか、フレーム数が足りていないのか…?

とりあえず結合

結合するために、ファイルのリストを作っておく必要がある。
今回はWindowsでやったのでファイルパスもそんな感じ。¥マークは2つ

20191129_16.txt
file D:\\moviefiles\\20191129_1600.mp4
file D:\\moviefiles\\20191129_1601.mp4
file D:\\moviefiles\\20191129_1602.mp4
…

このファイルを指定して実行する

ffmpeg.exe -f concat -safe 0 -i 20191129_16.txt -c copy 20191129_16.mp4

結合したファイルのフレーム数を調べてみる。

30fpsなら、1時間で108,000フレームあるはず…

ffprobe.exe -v error -i 20191129_16.mp4 -select_streams v:0 -show_entries stream=nb_frames -of csv=p=0
23992

なかった。結局想定フレームレート30fpsに対して20%程度しか記録できていなかった。
フレームを水増しして、実時間に合わせるしかない。

フレーム数の水増し

どれだけ増やせば理想のフレーム数になるか…
1時間なら108000フレームなので…
$108000 / 23992= 4.5015005...$
こうなる。

それに合わせてこんな感じで実行

ffmpeg.exe -y -i 20191129_16.mp4 --filter:v "setpts=4.5015005*PTS" 20191129_16_a.mp4

実行後、フレーム数を再確認

ffprobe.exe -v error -i 20191129_16_a.mp4 -select_streams v:0 -show_entries stream=nb_frames -of csv=p=0
108000

できた

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