zoukankan      html  css  js  c++  java
  • mplayer+ffmpeg 组合截图

    mplayer截图的优点:对于一个时长很长的视频,可以任意指定一个时间点截图,mplayer会直接跳到这个时间点开始解码截图;

                        缺点:由于是直接跳到指定的时间点,也就是直接跳过了之前的帧,这样解码出来的截图有时候难免会出现马赛克、灰白等现象。

    ffmpeg截图的优点: 对于指定的截图时间点,截出的图都相当的清晰,从未有过马赛克与灰白;

                      缺点: ffmpeg会从视频开始一直解码到指定的时间点,这样如果截图的时间点在视频的末尾,且该视频又相当大,那么ffmepg则会浪费相当多的时间在视频前面解码;

    个人则在思考,可否结合两者各自的优点,消除各自的缺点。目前想到的一种方法就是利用mplayer快速的定位功能,将指定时间点左右500毫秒的视频截取下来,供ffmpeg解码。

    网上搜索一番后,得出如下两个命令:

    1. mplayer截取视频:./mencoder -nosound -ovc lavc -ss 00:50:20 -endpos 1 -o /opt/mplayer/bin/back.rmvb /home/sxp/soft/foot.rmvb

        从00:50:20开始,截取1秒钟的视频,放在/opt的目录下;

    2. ffmpeg截图:./ffmpeg -i /opt/mplayer/bin/back.rmvb -y -f image2 -ss 00:00:01 -t 0.001 -s 352x240 sxp.jpg

    试验了一下,mencoder截取视频的时候,大概1秒完成。当然,如果截取的视频长度越长的话,就不止1秒了;

    今天在公司搞mplayer,发现对于123.456s这种数字格式的,mplayer会在这个时间后大概7秒处截图;如果换成123整数格式的,就没问题;

    但如果换成时分秒.毫秒,有时候可以,有时候又嗝屁,也是滞后7秒。

    mplayer也许真不是一个好的截图工具。

  • 相关阅读:
    [HDOJ1261]最少拦截系统
    Gym 100637F F. The Pool for Lucky Ones
    Codeforces Gym 100637A A. Nano alarm-clocks 前缀和处理
    HDU 1166 敌兵布阵 线段树
    【Tyvj1038】忠诚 线段树
    Codeforces Gym 100513G G. FacePalm Accounting
    Codeforces Round #313 (Div. 2)B.B. Gerald is into Art
    Codeforces Round #313 (Div. 2) D. Equivalent Strings
    Codeforces Round #313 (Div. 2) C. Gerald's Hexagon 数学
    Codeforces Round #313 (Div. 2) A. Currency System in Geraldion
  • 原文地址:https://www.cnblogs.com/itblog/p/7236649.html
Copyright © 2011-2022 走看看