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也许真不是一个好的截图工具。

mplayer+ffmpeg 组合截图的更多相关文章

  1. C# 使用ffmpeg视频截图

    <appSettings> <add key="ffmpeg" value="E:\ffmpeg\ffmpeg-20141012-git-20df026 ...

  2. bash shell,调用ffmpeg定期截图

    #!/bin/bash #获取当前目录中所有m3u8文件,并 var=$(ls |grep '.m3u8'|cut -d '.' -f1) #死循环 = ] do #循环每个文件 for stream ...

  3. IIS网站调用FFMPEG执行截图命令失败的原因(暂时记录)

    之前有个功能是用户上传视频后,网站对其进行截图处理.功能采用FFMPEG操作,在本机新建一个小程序进行调试时是没有问题的. 可功能原封不动挪到项目里,截图竟然失败了,于是开始排查. 期初以为是参数设置 ...

  4. ffmpeg视频截图命令

    ffmpeg.exe -i xxx.mp4 -y -f image2 -t 2 -s 64*320 xxx.jpg

  5. 今天写一些 有关iOS 多图片组合 成一张图片的问题。保持原像素不变

    1.要求:服务器给一张图片模板,要在模版上镂空,然后添加一些别的图片,然后组合成一张图,这个模版的像素 不是固定的,有可能比 当前手机屏幕大.所以,在组合截图的时候,有一定的要求. 贴代码: /** ...

  6. [转载]FFmpeg完美入门[3] - FFmpeg功能及使用说明

    1 ffplay对多媒体的支持能力验证 一.视频3gp 177X144 支持播放,在windows下播放正常,但是在linux下面偶有BUG 如果发现画面无法显示而声音可以播放的情况下可以试着切换全屏 ...

  7. vs2012 MinGW编译ffmpeg 出现libavdevice/avdevice.c(38) : error C2059: 语法错误:“.”

    利用vs2012编译ffmpeg出现以下错误: libavdevice/avdevice.c(38) : error C2059: 语法错误:“.” libavdevice/avdevice.c(40 ...

  8. .net视频截图功能,没测试

    /// <summary> /// @从视频文件截图,生成在视频文件所在文件夹 /// 在Web.Config 中需要两个前置配置项: /// 1.ffmpeg.exe文件的路径 ///  ...

  9. fedora安装ep,forge,fusion等第三方软件库

    fedora安装ep,forge,fusion等第三方软件库 官方的发行版 抛弃了有 版权争议的 软件, 特别是 包括很多第三方的 多媒体软件, 如播放 mp3, flv等的软件 解码器 这就要靠 使 ...

随机推荐

  1. AFN小结(简单的封装)

    AFN小结 1,AFN概念.原理 2,AFN的封装使用 3,AFN与其它框架对比 ————————————————————————————————— 1 , AFN的概念原理: AFN的基础是NSUR ...

  2. PHP命名空间和自动加载初探

    参考资料: PHP手册-语言参考:http://php.net/manual/zh/language.namespaces.php   概要: 1. 声明了命名空间之后,下面的const, funct ...

  3. 零元学Expression Blend 4 - Chapter 30 8个Expression Blend4的快捷

    原文:零元学Expression Blend 4 - Chapter 30 8个Expression Blend4的快捷 我针对工作区跟视窗的快捷键整理了八个Expression Blend4的快捷, ...

  4. Upgrade a Non-CDB To a PDB on CDB

    .Stop the cluster database and start database on one node with read noly [oracle@raca1 admin]$ srvct ...

  5. Android零基础入门第74节:Activity启动和关闭

    上一期我们学习了Activity的创建和配置,当时留了一个悬念,如何才能在默认启动的Activity中打开其他新建的Activity呢?那么本期一起来学习如何启动和关闭Activity. 一.概述 经 ...

  6. 如何把zip文件直接解压到内存里?

    解压到硬盘再读进来耽误时间. var  LZip: TZipFile;  LMem: TMemoryStream;  LBytes: TBytes;begin  LZip := TZipFile.Cr ...

  7. 窗体图片背景(两种方法:设置Brush.Bitmap指向图片,别的控件也可以这样)

    var   Bitmap: TBitmap; procedure TForm1.FormCreate(Sender: TObject); begin   Bitmap := TBitmap.Creat ...

  8. 设计模式之单例模式的几种写法——java

    对于设计模式的使用场景和好处,之前有介绍一篇,今天主要是单例模式的编写方式,直接看代码吧 单例模式之饿汉模式,不会懒加载.线程安全 /** * @Author wangtao * @Descripti ...

  9. jvm异常记录

    1.如果出现java.lang.OutOfMemoryError: Java heap space异常.原因:Java虚拟机的堆内存不够. 具体如下:                a.Java虚拟机 ...

  10. MAC subline批处理

    代码块批量操作: command + A command + shift + L command + < command + > 按照":"进行换行操作: commd ...