![ffmpeg — ресэмплинг видео с частотой 240 кадров в секунду до 30 кадров в секунду](https://rvso.com/image/1520099/ffmpeg%20%E2%80%94%20%D1%80%D0%B5%D1%81%D1%8D%D0%BC%D0%BF%D0%BB%D0%B8%D0%BD%D0%B3%20%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%20%D1%81%20%D1%87%D0%B0%D1%81%D1%82%D0%BE%D1%82%D0%BE%D0%B9%20240%20%D0%BA%D0%B0%D0%B4%D1%80%D0%BE%D0%B2%20%D0%B2%20%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%D1%83%20%D0%B4%D0%BE%2030%20%D0%BA%D0%B0%D0%B4%D1%80%D0%BE%D0%B2%20%D0%B2%20%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%D1%83.png)
У меня есть папка кадров (сохраненных как jpg), извлеченных из видео 240 FPS. Я хотел бы создать новое видео с 30 FPS (т.е. выборка только каждого 8-го кадра - так как 240/30=8).
Я попробовал следующую команду:
ffmpeg -i %05d.jpg "select='mod(n,8)'” -r 30 output.mp4
Однако видео выглядит некорректно (фактически, когда я запускаю ffprobe, полученное видео не имеет правильного количества кадров).
Я не могу понять, что я делаю не так. Есть ли у кого-нибудь предложения?
решение1
ffmpeg предполагает, что последовательности изображений имеют частоту кадров 25, если не указано иное.
Есть два способа сделать это:
ffmpeg -framerate 240 -i %05d.jpg -r 30 output.mp4
или
ffmpeg -i %05d.jpg "select='not(mod(n,8))',setpts=N/30/TB” -r 30 output.mp4