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


  1. #!/bin/bash
  2. #获取当前目录中所有m3u8文件,并
  3. var=$(ls |grep '.m3u8'|cut -d '.' -f1)
  4.  
  5. #死循环
  6. while [ = ]
  7. do
  8. #循环每个文件
  9. for stream in $var
  10. do
  11. #获取当前最新视频文件
  12. ts=$(ls -t|grep "$stream")
  13. for file in $ts
  14. do
  15. #存储M3U8文件文件名作为图片文件名,截图为220*,截取第一帧,存储在当前目录的screen文件夹
  16. img=$(ls $file|cut -d '-' -f1)
  17. #调用ffmpeg 截取视频
  18. ffmpeg2 -i $file -y -f image2 -s * -vframes screen/$img.png
  19. #跳出循环
  20. break
  21. done
  22. done
  23. #延迟1分钟
  24. sleep 1m
  25. done

live目录文件

  1. drwxrwxr-x yusen yusen 8 : .
  2. drwxrwxrwx root root 8 : ..
  3. -rw-rw-r-- yusen yusen 8 : -.ts
  4. -rw-rw-r-- yusen yusen 8 : -.ts
  5. -rw-rw-r-- yusen yusen 8 : -.ts
  6. -rw-rw-r-- yusen yusen 8 : -.ts
  7. -rw-rw-r-- yusen yusen 8 : -.ts
  8. -rw-rw-r-- yusen yusen 8 : .m3u8
  9. -rw-rw-r-- yusen yusen 8 : -.ts
  10. -rw-rw-r-- yusen yusen 8 : -.ts
  11. -rw-rw-r-- yusen yusen 8 : -.ts
  12. -rw-rw-r-- yusen yusen 8 : -.ts
  13. -rw-rw-r-- yusen yusen 8 : -.ts
  14. -rw-rw-r-- yusen yusen 8 : -.ts
  15. -rw-rw-r-- yusen yusen 8 : -.ts
  16. -rw-rw-r-- yusen yusen 8 : -.ts
  17. -rw-rw-r-- yusen yusen 8 : .m3u8
  18. drwxrwxr-x yusen yusen 8 : demo
  19. drwxrwxr-x yusen yusen 8 : screen
  20. -rwxrwxr-x yusen yusen 8 : screen.sh
  21. -rwxrwxr-x yusen yusen 8 : screen.sh~
  1. drwxrwxr-x yusen yusen 8 : .
  2. drwxrwxrwx root root 8 : ..
  3. -rw-rw-r-- yusen yusen 8 : -.ts
  4. -rw-rw-r-- yusen yusen 8 : -.ts
  5. -rw-rw-r-- yusen yusen 8 : -.ts
  6. -rw-rw-r-- yusen yusen 8 : -.ts
  7. -rw-rw-r-- yusen yusen 8 : -.ts
  8. -rw-rw-r-- yusen yusen 8 : .m3u8
  9. -rw-rw-r-- yusen yusen 8 : -.ts
  10. -rw-rw-r-- yusen yusen 8 : -.ts
  11. -rw-rw-r-- yusen yusen 8 : -.ts
  12. -rw-rw-r-- yusen yusen 8 : -.ts
  13. -rw-rw-r-- yusen yusen 8 : -.ts
  14. -rw-rw-r-- yusen yusen 8 : -.ts
  15. -rw-rw-r-- yusen yusen 8 : -.ts
  16. -rw-rw-r-- yusen yusen 8 : -.ts
  17. -rw-rw-r-- yusen yusen 8 : .m3u8
  18. drwxrwxr-x yusen yusen 8 : demo
  19. drwxrwxr-x yusen yusen 8 : screen
  20. -rwxrwxr-x yusen yusen 8 : screen.sh
  21. -rwxrwxr-x yusen yusen 8 : screen.sh~

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

  1. drwxrwxr-x yusen yusen 8 : .
  2. drwxrwxr-x yusen yusen 8 : ..
  3. -rw-rw-r-- yusen yusen 8 : .png
  4. -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. ie6下js更新元素display:block后,仍然不显示的hack办法

    $hotGames.html(html).removeClass("hide").show();//代码执行到这里,在ie6下仍然无法正常显示 //只有执行了下边的两行代码后,才正 ...

  2. 一些Layout的坑

    iOS这个东西,初学感觉,还好还好,然后一年之后再来修复一下初学的时候的代码,我只是感觉头很晕- - 别扶我. AutoLayout的坑,明明以前都没有的!!!升了iOS10就突然发现了这个坑,其实也 ...

  3. android 网络请求库的比较

    源码请戳 一. 现有库和选择的库 HttpURLConnection:是Java中的标准类,是对Java中socket的封装. Httpclient:是Apache的开源框架,是对HttpURLCon ...

  4. jsRender绑定数据

    首先,引入jquery(很重要),其次引入jsRender.js <script type="text/javascript" src="js/jquery-1.7 ...

  5. Microsoft Visual C++ Compiler for Python 2.7

    Extest.c文件:#include <stdio.h> #include <stdlib.h>#include <string.h>#include " ...

  6. Eclipse默认空间与工作空间的更改(转)

    一.更改eclipse默认空间 进行 eclipse 目录下的 configuration 目录, 打开config.ini文件 将 osgi.instance.area.default= 项修改成你 ...

  7. Thinkphp_View(1)循环输出

    循环输出主要是使用volist和foreach标签输出. VOLIST volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使 ...

  8. eclipse快捷键以及使用技巧大全

    eclipse快捷键以及使用技巧大全1. 打开MyEclipse 6.0.1,然后"window"→"Preferences" 2. 选择"java& ...

  9. Android Handler 最佳的理解资料

  10. web api 初体验之 GET和POST传参

    上一篇我们讲到了web api跨域的问题 它几乎是每一个用web api的人都需要去解决的问题,不然都没法测试.接下来会遇到的问题就是传参了.还是用js前台调用服务的方式. GET 方式 get方式传 ...