Моя цель; экспортируйте серию изображений из видеофайла с помощью ffmpeg. Я думаю, что моя проблема связана с кадрами в секунду и скоростью передачи данных.
Я попробовал следующую команду:ffmpeg -i myVideo.mp4 -r 1 images_%04d.jpg но почему-то в 45-секундном видео я получаю 47 изображений. Очень важно, чтобы я понял это точно. Я не буду знать заранее, что такое соответствующий FPS или битрейт, если мне нужны эти значения при запуске команды, мне нужно каким-то образом получить их из ffmpeg.
Я также рассмотрел возможность экспорта ВСЕХ изображений в видео с помощью ffmpeg -i myVideo images_%04d.jpg и деления количества изображений на общее количество секунд в видео. Это даст мне что-то вроде 24,97, и я округлю до 25 и удалю 24 из каждых 25 кадров. Я боюсь, что если файл VBR и части с высокой скоростью передачи данных находятся в начале видео, кадры, которые я заканчиваю, не будут точно соответствовать 1 в секунду. Например, 30-е изображение может фактически появиться в видео ближе ко второму 31.
running ffmpeg -> ffmpeg -i "/videos/11.mp4" -s "352x264" "/images/image%06d.jpg"
FFmpeg version 0.6-4:0.6-2ubuntu6.1, Copyright (c) 2000-2010 the FFmpeg developers
built on Mar 31 2011 18:43:47 with gcc 4.4.5
configuration: --extra-version=4:0.6-2ubuntu6.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf
--enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex
--enable-libtheora --enable-libvorbis --enable-vaapi --enable-pthreads --enable-zlib --enable-libvpx
--disable-stripping --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-x11grab
--enable-libdc1394 --enable-shared --disable-static
libavutil 50.15. 1 / 50.15. 1
libavcodec 52.72. 2 / 52.72. 2
libavformat 52.64. 2 / 52.64. 2
libavdevice 52. 2. 0 / 52. 2. 0
libavfilter 1.19. 0 / 1.19. 0
libswscale 0.11. 0 / 0.11. 0
libpostproc 51. 2. 0 / 51. 2. 0
Seems stream 1 codec frame rate differs from container frame rate: 49938.00 (49938/1) -> 24.97 (24969/1000)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/videos/11.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isomavc1mp42
Duration: 00:00:32.60, start: 0.000000, bitrate: 433 kb/s
Stream #0.0(und): Audio: aac, 44100 Hz, stereo, s16, 127 kb/s
Stream #0.1(und): Video: h264, yuv420p, 352x264 [PAR 1:1 DAR 4:3], 303 kb/s, 24.97 fps, 24.97 tbr, 24969 tbn, 49938 tbc
Output #0, image2, to '/images/image%06d.jpg':
Metadata:
encoder : Lavf52.64.2
Stream #0.0(und): Video: mjpeg, yuvj420p, 352x264 [PAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 90k tbn, 24.97 tbc
Stream mapping:
Stream #0.1 -> #0.0
Press [q] to stop encodingframe= 176 fps= 0 q=24.8 size= -0kB time=7.05 bitrate=
-0.0kbits/s ^Mframe= 312 fps=236 q=24.8 size= -0kB time=12.50 bitrate= -0.0kbits/s
^Mframe= 316 fps=112 q=24.8 size= -0kB time=12.66 bitrate= -0.0kbits/s ^Mframe= 322
fps= 55 q=24.8 size= -0kB time=12.90 bitrate= -0.0kbits/s ^Mframe= 327 fps= 39 q=24.8
size= -0kB time=13.10 bitrate= -0.0kbits/s ^Mframe= 331 fps= 33 q=24.8 size=
-0kB time=13.26 bitrate= -0.0kbits/s ^Mframe= 336 fps= 31 q=24.8 size= -0kB time=13.46
bitrate= -0.0kbits/s ^Mframe= 339 fps= 27 q=24.8 size= -0kB
time=13.58 bitrate= -0.0kbits/s ^Mframe= 344 fps= 22 q=24.8 size= -0kB
time=13.78 bitrate= -0.0kbits/s
У кого-нибудь есть идеи, как получить точные по времени результаты экспорта изображений из видео с помощью ffmpeg?? Спасибо!
