当前blog已不再更新,请移步新家:moozik.cn


#!/bin/bash
#获取当前目录中所有m3u8文件,并
var=$(ls |grep '.m3u8'|cut -d '.' -f1) #死循环
while [ = ]
do
#循环每个文件
for stream in $var
do
#获取当前最新视频文件
ts=$(ls -t|grep "$stream")
for file in $ts
do
#存储M3U8文件文件名作为图片文件名,截图为220*,截取第一帧,存储在当前目录的screen文件夹
img=$(ls $file|cut -d '-' -f1)
#调用ffmpeg 截取视频
ffmpeg2 -i $file -y -f image2 -s * -vframes screen/$img.png
#跳出循环
break
done
done
#延迟1分钟
sleep 1m
done

live目录文件

drwxrwxr-x  yusen yusen  8月  : .
drwxrwxrwx root root 8月 : ..
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : .m3u8
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : .m3u8
drwxrwxr-x yusen yusen 8月 : demo
drwxrwxr-x yusen yusen 8月 : screen
-rwxrwxr-x yusen yusen 8月 : screen.sh
-rwxrwxr-x yusen yusen 8月 : screen.sh~
drwxrwxr-x  yusen yusen  8月  : .
drwxrwxrwx root root 8月 : ..
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : .m3u8
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : -.ts
-rw-rw-r-- yusen yusen 8月 : .m3u8
drwxrwxr-x yusen yusen 8月 : demo
drwxrwxr-x yusen yusen 8月 : screen
-rwxrwxr-x yusen yusen 8月 : screen.sh
-rwxrwxr-x yusen yusen 8月 : screen.sh~

screen.sh为需要执行的shell
screen为存储截图的目录,执行shell后screen目录中文件为

drwxrwxr-x  yusen yusen  8月  : .
drwxrwxr-x yusen yusen 8月 : ..
-rw-rw-r-- yusen yusen 8月 : .png
-rw-rw-r-- yusen yusen 8月 : .png

可以看到已经实现了自动获取视频截图,需要修改截取周期只需要修改sleep的参数就可以了

bash shell,调用ffmpeg定期截图的更多相关文章

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

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

  2. .Net调用ffmpeg对视频截图

    2019/10/27, .Net c#代码片段 摘要:借助ffmpeg对视频/图片截图.生成缩略图,使用命令行调用ffmpeg工具,支持Linux和Windows 网上很多版本都是需要等待4s的做法, ...

  3. java 调用bash shell脚本阻塞的小问题的解决

    java  调用bash shell脚本阻塞的小问题的解决 背景 使用java实现的web端,web端相应用户的界面操作,使用java调用bash实现的shell脚本进行实际的操作,操作完成返回执行结 ...

  4. NET 2.0(C#)调用ffmpeg处理视频的方法

    另外:ffmpeg的net封装库 http://www.intuitive.sk/fflib/ NET 2.0 调用FFMPEG,并异步读取输出信息的代码...public void ConvertV ...

  5. (转)linux bash shell 入门教程

    Shell Script(bash)简介 众所皆知地,UNIX上以小工具著名,利用许多简单的小工具,来完成原本需要大量软体开发的工作,这一点特色,使得UNIX成为许多人心目中理想的系统平台. 在众多的 ...

  6. Bash Shell内建命令和保留字

    Bash Shell内建命令和保留字命令含义!保留字,逻辑非:不做任何事,只做参数展开.读取文件并在shell中执行它alias设置命令或命令行别名bg将作业置于后台运行bind将关键字序列与read ...

  7. bash shell命令(2)

    在上篇<bash shell命令(1)>中,介绍了几种简单的linux shell命令,今天继续介绍bash shell命令 本文地址:http://www.cnblogs.com/arc ...

  8. linux bash shell 流程控制(if/else )

    本文转自:http://blog.csdn.net/flowingflying/article/details/5069646 本文也即<Learning the bash Shell>3 ...

  9. Unix/Linux中shell调用sqlplus的方式

    Unix/Linux下,shell脚本调用sqlplus的几种方式介绍: 一.最简单的shell调用sqlplus #!/bin/bash sqlplus -S /nolog > sqlplus ...

随机推荐

  1. mysql批量替换单字段

    update 表名 set 字段名 =  replace(字段名,'被替换内容','要替换内容'); 指定有人查这个!!!

  2. ocx控件 编译成C#调用的dll 方法 转

      打开VS命令提示行 1.注册ActiveX控件(带上 VCbox.ocx的路径) regsvr32  VCbox.ocx 2.编译OCX文件 aximp VCbox.ocx 生成两个dll文件,项 ...

  3. android 判断当前界面是否是桌面

    1 /** * 获得当前活动APP的包名 * * @return 返回当前活动界面是不是桌面 */ private boolean isHomeWin() { ActivityManager mAct ...

  4. 【转】Native JavaScript Data-Binding

    原文转自:http://www.sellarafaeli.com/blog/native_javascript_data_binding Two-way data-binding is such an ...

  5. jQuery:cookie插件的使用

    Jquery插件就是在Jquery基础之上,开发的基于Jquery的javascript库. 在Jquery中,引入cookie插件后,可以很方便的定义某个cookie的名称,并设置cookie值.通 ...

  6. block中如何避免循环引用

    使用 weak–strong dance 技术 block 可以直接引用 self,但是要非常小心地在 block 中引用 self.因为在 block 引用 self,可能会导致循环引用.如下例所示 ...

  7. Watin 杂谈

    Web自动化测试(三)[弹出窗口处理] http://blog.csdn.net/cctv_hu/article/details/5984373 http://www.cyqdata.com/cnbl ...

  8. Day25_多线程第二天

    1.单例); } 4.线程之间的通信(多个线程共享同一数据的问题) ; public void print1() throws InterruptedException { synchronized( ...

  9. Chp10 10.7

    <Java语言程序设计>P296 本章是关于对象的思考,主要是在研究面向对象的程序设计时类的设计,作业写得比较杂乱,构造方法时没有严格遵守类的流行设计风格,由于是作业,再加上比较简单,没有 ...

  10. Java进阶(三)多线程开发关键技术

    原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这 ...