当前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. 详细讲解Linux驱动程序

    一  编写Linux驱动程序 1.建立Linux驱动骨架 Linux内核在使用驱动时需要装载与卸载驱动 装载驱动:建立设备文件.分配内存地址空间等:module_init 函数处理驱动初始化 卸载驱动 ...

  2. Beta版

    Beta版使用说明 各文件介绍:本软件是基于visual studio 2010 平台,使用C#语言开发的windows窗体游戏.该游戏共有七个界面,分别是开始界面,游戏说明界面,模式选择界面,经典模 ...

  3. C语言程序设计第13次作业

    一.本次课主要内容: 本章主要介绍结构的基本概念与定义.结构变量的定义和使用.结构数组应用.结构指针概念.重点介绍结构的定义与成员引用方式.同时也介绍了文件的基本概念,文件操作处理基本步骤和过程,常用 ...

  4. 自定义 placeholder 文本颜色

    原文  http://zhuyujia.github.io/2016/01/custom-placeholder-text-color.html Css: ::-webkit-input-placeh ...

  5. [软件架构]模块化编程思想及(C++)实践

    Repost 内容简介: 模块化思想 模块的构成 模块的管理 模块化实践 定义模块结构 声明模块对象 定义模块列表 模块列表对象 模块化思想 1.     将系统分成很多的模块,模块内部关注自身需要实 ...

  6. 胡说REST(REpresentational State Transfer)

    Roy T. Fielding的2000年在他的博士论文中提出REpresentational State Transfer这一软件架构风格,相比"表述性状态转移"等等类似的拗口的 ...

  7. 移动web中一些问题处理与事件说明

    1.1.1 所有盒子以边框开始计算 /*设置宽度以边框开始计算*/-webkit-box-sizing: border-box;box-sizing: border-box; 在移动端通常使用的是百分 ...

  8. php性能优化实用技巧:

    以下是五个优化技巧,熟练掌握后对于开发还是很有帮助的. 1. 对字符串使用单引号 PHP 引擎允许使用单引号和双引号来封装字符串变量,但是这个是有很大的差别的!使用双引号的字符串告诉 PHP 引擎首先 ...

  9. 【.net部署】Server Error in '/' Application.错误解决方案

    报错: Server Error in '/' Application.---------------------------------------------------------------- ...

  10. 连接WCF报EntityFramework.SqlServer 错误的解决方法

    现象: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFram ...