bash shell,调用ffmpeg定期截图
当前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定期截图的更多相关文章
- IIS网站调用FFMPEG执行截图命令失败的原因(暂时记录)
之前有个功能是用户上传视频后,网站对其进行截图处理.功能采用FFMPEG操作,在本机新建一个小程序进行调试时是没有问题的. 可功能原封不动挪到项目里,截图竟然失败了,于是开始排查. 期初以为是参数设置 ...
- .Net调用ffmpeg对视频截图
2019/10/27, .Net c#代码片段 摘要:借助ffmpeg对视频/图片截图.生成缩略图,使用命令行调用ffmpeg工具,支持Linux和Windows 网上很多版本都是需要等待4s的做法, ...
- java 调用bash shell脚本阻塞的小问题的解决
java 调用bash shell脚本阻塞的小问题的解决 背景 使用java实现的web端,web端相应用户的界面操作,使用java调用bash实现的shell脚本进行实际的操作,操作完成返回执行结 ...
- NET 2.0(C#)调用ffmpeg处理视频的方法
另外:ffmpeg的net封装库 http://www.intuitive.sk/fflib/ NET 2.0 调用FFMPEG,并异步读取输出信息的代码...public void ConvertV ...
- (转)linux bash shell 入门教程
Shell Script(bash)简介 众所皆知地,UNIX上以小工具著名,利用许多简单的小工具,来完成原本需要大量软体开发的工作,这一点特色,使得UNIX成为许多人心目中理想的系统平台. 在众多的 ...
- Bash Shell内建命令和保留字
Bash Shell内建命令和保留字命令含义!保留字,逻辑非:不做任何事,只做参数展开.读取文件并在shell中执行它alias设置命令或命令行别名bg将作业置于后台运行bind将关键字序列与read ...
- bash shell命令(2)
在上篇<bash shell命令(1)>中,介绍了几种简单的linux shell命令,今天继续介绍bash shell命令 本文地址:http://www.cnblogs.com/arc ...
- linux bash shell 流程控制(if/else )
本文转自:http://blog.csdn.net/flowingflying/article/details/5069646 本文也即<Learning the bash Shell>3 ...
- Unix/Linux中shell调用sqlplus的方式
Unix/Linux下,shell脚本调用sqlplus的几种方式介绍: 一.最简单的shell调用sqlplus #!/bin/bash sqlplus -S /nolog > sqlplus ...
随机推荐
- Git进行代码管理的心得
git从网上下载安装后 直接可在开始菜单中找到 打开可以看到一个类似命令窗口的东西 用代码进行用户名和邮箱的设置 虽然不知道为什么但是教程叫我这么做 (ˇˍˇ) 然后似乎就可以用了 进入文件夹 输入对 ...
- Erlang环境用eclipse搭建
erlide插件eclipse开发erlang 一.相关资料 Erlang 的官方网站是http://www.erlang.org.其左侧的连接指出了我们可以从这里获取的资源. 其中, Downl ...
- UE4 VR GUI实现 参考(UMG AND VR)
Note:4.13以后版本VR UI采用 WidgetComponent + WidgetInteractionComponent可轻松实现交互 Blueprint Demo: https://for ...
- 深入理解css系列:清除浮动
如果出现div嵌套,内层元素浮动,而外层包裹的父元素div未设置高度的时候,那么会出现外层不能被撑开的情况. HTML标签代码: <div class="wrap"> ...
- linux命令:chmod
1.命令介绍: chmod用来改变系统文件或目录的相关权限,可读,可写,可执行等. 2.命令格式: chmod [选项] 模式 文件 3.命令参数: 必要参数:-c 当发生改变时,报告处理信息-f 错 ...
- IIS7配置Gzip压缩 JS压强失败的原因
开启配置HTTP压缩(GZip) 在IIS7中配置Gzip压缩相比IIS6来说实在容易了许多,而且默认情况下就是启用GZip压缩的.如果没有,则可以再功能视图下找到“压缩”项,进入之后就会看到“静态内 ...
- Could not find result map com.lrlz.weixin.dao.SysUserDAO.SysUser
<select id="selectByTimeCount" resultType="java.lang.Integer" parameterType=& ...
- PHP构造方法
构造方法 1.(特殊)对象创建完成后第一个自动调用的方法: 2.(特殊)方法名比较特殊,方法名可以与类相同: 3.给对象中的成员赋初始值: class boyfriend{ public $name; ...
- C#基础——系统登录功能的实现
一般的登陆界面,都是利用用户名和密码在数据库的匹配关系,来实现登陆的跳转功能. 首先介绍用户数据表的设计. 其中ID列需要设置好增量标识,随着用户的增加,ID的值递增,避免重复. 然后是C#中对数据库 ...
- logcat 基本使用
adb logcat -c //清空以前的日志 adb logcat -v time > d:/sss.log //将当前日志输出到d盘的sss.log中 sss.log不 ...