gwh920330 发表于 2018-5-7 17:29:39

新手求助!ffmpeg如何快速抽帧截图

我想快速从视频抽一帧图像 命令是 ffmpeg -ss 00:04:58.386 -i test.rmvb -vframes 1 -y test.jpg -loglevel 56但是发现定位的帧不是关键帧,需要解码很多参考帧,所以不是很快,怎么才能只解码这个时间点之前的关键帧呢。


ps:需求是抽取图像的时间点可以不精确,但是需要比较快

T-Bagwell 发表于 2018-5-8 14:38:26

https://trac.ffmpeg.org/wiki/Create%20a%20thumbnail%20image%20every%20X%20seconds%20of%20the%20video#selectvideofilter

gwh920330 发表于 2018-5-8 15:19:09

T-Bagwell 发表于 2018-5-8 14:38
https://trac.ffmpeg.org/wiki/Create%20a%20thumbnail%20image%20every%20X%20seconds%20of%20the%20video ...

这个确实可以提取出关键帧,但是速度很慢

T-Bagwell 发表于 2018-5-8 15:29:47

执行了一下命令行,单独抽取某一帧,不重新编码为图片,耗时输出信息如下:

liuqideMacBook-Pro:srcnn liuqi$ time ffmpeg -fflags nobuffer -analyzeduration 2 -probesize 200 -ss 50 -i ~/Movies/objectC/facebook.mp4 -c copy -vframes 1 -y -f null /dev/null
ffmpeg version N-89672-g41e51fbcd9 Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 9.0.0 (clang-900.0.39.2)
configuration: --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libspeex --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-version3 --cc='ccache gcc' --enable-nonfree --enable-videotoolbox
libavutil      56.7.100 / 56.7.100
libavcodec   58.9.100 / 58.9.100
libavformat    58.3.100 / 58.3.100
libavdevice    58.0.100 / 58.0.100
libavfilter   7.8.100 /7.8.100
libswscale      5.0.101 /5.0.101
libswresample   3.0.101 /3.0.101
libpostproc    55.0.100 / 55.0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/liuqi/Movies/objectC/facebook.mp4':
Metadata:
    major_brand   : mp42
    minor_version   : 0
    compatible_brands: isommp42
    creation_time   : 2016-08-13T00:36:19.000000Z
Duration: 00:03:18.79, start: 0.000000, bitrate: 1849 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 , 1719 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc (default)
    Metadata:
      creation_time   : 2016-08-13T00:36:19.000000Z
      handler_name    : ISO Media file produced by Google Inc.
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
    Metadata:
      creation_time   : 2016-08-13T00:36:19.000000Z
      handler_name    : ISO Media file produced by Google Inc.
Output #0, null, to '/dev/null':
Metadata:
    major_brand   : mp42
    minor_version   : 0
    compatible_brands: isommp42
    encoder         : Lavf58.3.100
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 , q=2-31, 1719 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 90k tbc (default)
    Metadata:
      creation_time   : 2016-08-13T00:36:19.000000Z
      handler_name    : ISO Media file produced by Google Inc.
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
    Metadata:
      creation_time   : 2016-08-13T00:36:19.000000Z
      handler_name    : ISO Media file produced by Google Inc.
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press to stop, [?] for help
frame=    1 fps=0.0 q=-1.0 Lsize=N/A time=00:00:00.00 bitrate=N/A speed=   0x
video:93kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

real      0m0.044s
user      0m0.024s
sys      0m0.014s
liuqideMacBook-Pro:srcnn liuqi$

gwh920330 发表于 2018-5-9 11:22:24

T-Bagwell 发表于 2018-5-8 15:29
执行了一下命令行,单独抽取某一帧,不重新编码为图片,耗时输出信息如下:



我是这么做的 time ffmpeg -ss 00:03:08 -itsoffset 10 -discard nokey -i test.rmvb -vframes 1 -y test.jpg

ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-16)
configuration: --prefix=/data/ffmpeg/
libavutil      55. 78.100 / 55. 78.100
libavcodec   57.107.100 / 57.107.100
libavformat    57. 83.100 / 57. 83.100
libavdevice    57. 10.100 / 57. 10.100
libavfilter   6.107.100 /6.107.100
libswscale      4.8.100 /4.8.100
libswresample   2.9.100 /2.9.100
Invalid stream index 2 for index at pos 149650976
Input #0, rm, from 'test.rmvb':
Metadata:
    Audiences       : Easy RealMedia Tool's Audience;
    audioMode       : music
    Creation Date   : 10/18/2011 4:01:27
    Description   : This File is Created by Easy RealMedia Tools@!
    Email         : rick@redcheek.net
    Generated By    : Easy RealMedia Tools V1.8x
    HomeWeb         : http://redcheek.net
    Keywords      : www.dymycomic.com
    Modification Date: 10/18/2011 4:01:27
    videoMode       : sharp
    File ID         : abafa7e0-8b0e-7513-5fd0-cbf8c19baf30
    title         :
    author          : ???
    copyright       : ???°???M
    comment         :
Duration: 00:26:55.62, start: 0.000000, bitrate: 741 kb/s
    Stream #0:0: Audio: aac (LC) (raac / 0x63616172), 44100 Hz, stereo, fltp, 96 kb/s
    Stream #0:1: Video: rv40 (RV40 / 0x30345652), yuv420p, 1024x576, 634 kb/s, 23.98 fps, 23.98 tbr, 1k tbn, 1k tbc
Stream mapping:
Stream #0:1 -> #0:0 (rv40 (native) -> mjpeg (native))
Press to stop, [?] for help
deprecated pixel format used, make sure you did set range correctly
Output #0, image2, to 'test.jpg':
Metadata:
    Audiences       : Easy RealMedia Tool's Audience;
    audioMode       : music
    Creation Date   : 10/18/2011 4:01:27
    Description   : This File is Created by Easy RealMedia Tools@!
    Email         : rick@redcheek.net
    Generated By    : Easy RealMedia Tools V1.8x
    HomeWeb         : http://redcheek.net
    Keywords      : www.dymycomic.com
    Modification Date: 10/18/2011 4:01:27
    videoMode       : sharp
    File ID         : abafa7e0-8b0e-7513-5fd0-cbf8c19baf30
    title         :
    author          : ???
    copyright       : ???°???M
    comment         :
    encoder         : Lavf57.83.100
    Stream #0:0: Video: mjpeg, yuvj420p(pc), 1024x576, q=2-31, 200 kb/s, 23.98 fps, 23.98 tbn, 23.98 tbc
    Metadata:
      encoder         : Lavc57.107.100 mjpeg
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
frame=    1 fps=0.0 q=4.0 Lsize=N/A time=00:00:00.04 bitrate=N/A dup=1 drop=1 speed=0.936x   
video:16kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

real        0m0.074s
user        0m0.057s
sys        0m0.016s
页: [1]
查看完整版本: 新手求助!ffmpeg如何快速抽帧截图