Я искал всюду, чтобы решить, как извлечь N изображений из видео с помощью FFmpeg. Все ответы включают воспроизведение с настройкой скорости (-r). Однако у меня есть некоторые фундаментальные проблемы со ставкой. Согласно документам, следующее должно производить один кадр в секунду.FFmpeg extract N изображений с видео
ffmpeg -i input.mov -f image2 -r 1 preview-%d.jpeg
Если input.mov длится 7 секунд, я ожидаю получить 7 изображений. Тем не менее, я получаю 10. Я также пробовал на видео 119 секунд, но у меня было 122 изображения. Я получаю еще 3 изображения, чем ожидалось. Что мне не хватает?
Например, с этим ~ 3 секунды видео я получаю шесть кадров https://www.dropbox.com/s/8eke6q2gz1kgk1f/example.mov?dl=0
benblack$ ffmpeg -i example.mov -f image2 -r 1 preview-%d.jpeg
ffmpeg version 2.1.4 Copyright (c) 2000-2014 the FFmpeg developers
built on Mar 2 2014 13:38:24 with Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
configuration: --prefix=/usr/local/Cellar/ffmpeg/2.1.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
libavutil 52. 48.101/52. 48.101
libavcodec 55. 39.101/55. 39.101
libavformat 55. 19.104/55. 19.104
libavdevice 55. 5.100/55. 5.100
libavfilter 3. 90.100/3. 90.100
libavresample 1. 1. 0/1. 1. 0
libswscale 2. 5.101/2. 5.101
libswresample 0. 17.104/0. 17.104
libpostproc 52. 3.100/52. 3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'example.mov':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2015-02-11 16:52:01
Duration: 00:00:02.83, start: 0.000000, bitrate: 736 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1/0x31637661), yuv420p(tv, bt709), 638x468 [SAR 1:1 DAR 319:234], 726 kb/s, 59.29 fps, 60 tbr, 6k tbn, 12k tbc (default)
Metadata:
creation_time : 2015-02-11 16:52:01
handler_name : Core Media Data Handler
[swscaler @ 0x7fdb13008c00] deprecated pixel format used, make sure you did set range correctly
Output #0, image2, to 'preview-%d.jpeg':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
encoder : Lavf55.19.104
Stream #0:0(und): Video: mjpeg, yuvj420p, 638x468 [SAR 1:1 DAR 319:234], q=2-31, 200 kb/s, 90k tbn, 1 tbc (default)
Metadata:
creation_time : 2015-02-11 16:52:01
handler_name : Core Media Data Handler
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> mjpeg)
Press [q] to stop, [?] for help
frame= 6 fps=0.0 q=0.0 Lsize=N/A time=00:00:06.00 bitrate=N/A dup=0 drop=162
video:283kB audio:0kB subtitle:0 global headers:0kB muxing overhead -100.007598%
С 7-секундным видео вы должны получить 8 изображений. Вы должны считать одно изображение в нулевое время. – Tarik
Пожалуйста, покажите полный, нечеткий вывод командной строки и, в идеале, предоставите образец файла. – slhck
Добавлен пример – Ben