aheadlead
V2EX  ›  问与答

如何用 python 提取视频的任意一帧?

  •  
  •   aheadlead · Aug 23, 2014 · 23307 views
    This topic created in 4330 days ago, the information mentioned may be changed or developed.
    有什么库比较合适
    谢谢
    20 replies    2015-07-14 12:51:07 +08:00
    skybr
        1
    skybr  
       Aug 23, 2014   ❤️ 1
    subprocess ffmpeg/libav
    binux
        2
    binux  
       Aug 23, 2014   ❤️ 1
    ffmpeg -ss 00:00:14 -i 1.mp4 -frames:v 1 out1.jpg
    aheadlead
        3
    aheadlead  
    OP
       Aug 23, 2014
    @binux
    难道导出成图片再读取?
    binux
        4
    binux  
       Aug 23, 2014   ❤️ 1
    ffmpeg -ss 00:00:14 -i 1.mp4 -frames:v 1 -
    binux
        5
    binux  
       Aug 23, 2014   ❤️ 2
    @binux ffmpeg -ss %(time)f -i %(path)s -frames:v 1 -f image2 -
    aheadlead
        6
    aheadlead  
    OP
       Aug 23, 2014
    @skybr 膜拜大牛...没看懂您的意思啊...
    skybr
        7
    skybr  
       Aug 23, 2014   ❤️ 1
    @aheadlead 就是用标准库里的subprocess模块调用ffmpeg/libav, ffmpeg截帧的命令见@binux 给的, 之所以没直接打全是因为不google不man我也记不得。。。。
    ooh
        8
    ooh  
       Aug 23, 2014   ❤️ 1
    @aheadlead 难道你说的读取任意一帧不是图片,那是什么?
    aheadlead
        9
    aheadlead  
    OP
       Aug 23, 2014
    @skybr
    aheadlead
        10
    aheadlead  
    OP
       Aug 23, 2014
    @ooh 我还以为可以不用保存成图片呢....
    aheadlead
        11
    aheadlead  
    OP
       Aug 23, 2014
    @ooh 保存成图片"文件"
    ooh
        12
    ooh  
       Aug 23, 2014   ❤️ 1
    @aheadlead 浏览器里可以直接输出内容
    aheadlead
        13
    aheadlead  
    OP
       Aug 23, 2014
    @ooh 不是很明白 请详细说明 谢谢
    ooh
        14
    ooh  
       Aug 23, 2014
    @aheadlead data:image/gif;base64,R0lGODlhAwADAIABAL6+vv///yH5BAEAAAEALAAAAAADAAMAAAIDjA9WADs=
    liberize
        17
    liberize  
       Aug 24, 2014 via Android
    OpenCV 貌似不容易定位,而且支持的格式有限。用 subprocess + ffmpeg,如果不想保存成文件,可以参考这篇文章: http://zulko.github.io/blog/2013/09/27/read-and-write-video-frames-in-python-using-ffmpeg/
    ruoyu0088
        18
    ruoyu0088  
       Aug 24, 2014
    @liberize,为什么说不容易定义,你遇到过什么困难了吗。我一直都是用VideoCapture.set(CV_CAP_PROP_POS_MSEC, ...),没有出过问题啊。关于支持的格式,我看有一个opencv_ffmpeg249.dll文件,也许ffmpeg支持的都可以吧。这个我不太清楚,不过比较常用的几个我都试过,没有问题。如果能用的话,这个用起来比subprocess要爽多了。
    liberize
        19
    liberize  
       Aug 24, 2014 via Android
    @ruoyu0088 好吧,我错了~
    radonwang
        20
    radonwang  
       Jul 14, 2015
    @ruoyu0088 你好,我现在在用Opencv抓帧,
    但是在Linux环境下VideoCapture.set一直无法成功,想请教下你有没有相关的解决方案呢?多谢!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   984 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 19:25 · PVG 03:25 · LAX 12:25 · JFK 15:25
    ♥ Do have faith in what you're doing.