最近将.net core系统从windows 环境下迁移到linux中,使用docker容器部署。但是系统中使用了ffmpeg做视频转码和截图。在windows中只需要知道ffmpeg.exe的文件位置就可以简单实现功能,但在linux中需要先安装好ffmpeg。这个时候会产生一个问题,ffmpeg是安装在linux中的, 而系统部署在docker容器中,那么容器中的站点需要访问ffmpeg工具需要将ffmpeg挂载到容器中,这一步不知道怎么实现,尝试过很多次还是没有成功。索性在linux中写个脚本来实现。当然也可以将ffmpeg直接安装在容器中,不过这样的话每个需要使用ffmpeg的容器都需要单独安装,且ffmpeg会随着容器的删除而消失。

以下是脚本内容:

#! /bin/bash function convert_video(){
extens=("avi" "wmv" "rmvb" "3gp" "mp4")
while true
do#echo $1if [ "`ls -A $1`" = "" ] #判断文件是否为空then #echo "$1 is  empty"returnfifor file in `ls $1` #遍历文件夹下的文件;注意此处这是两个反引号,表示运行系统命令doif [ -d $1"/"$file ] #判断是文件还是文件夹;注意此处之间一定要加上空格,否则会报错then #文件夹则递归遍历convert_video $1"/"$fileelsetemp=${file##*.} exten=$(echo $temp | tr '[A-Z]' '[a-z]')filename=$1"/"$file #输出文件地址filenamenew=${filename/\/tempfile/} #需要转码的文件放在tempfile临时目录下,比真实目录多了这层,所以删掉/tempfile这层newjpg="${filenamenew%.*}.jpg"newmp4="${filenamenew%.*}.mp4"#判断文件拓展名是否被包含if [[ "${extens[@]}" =~ "$exten" ]]  then/usr/local/ffmpeg/ffmpeg/bin/ffmpeg -i $filename -ss 00:00:06.000 -vframes 1 -an -y  -f mjpeg $newjpg  #截取视频第一张图片if [ $exten = "mp4" ] #本身就是MP4则不需要转码, 直接复制过去then       mv $filename $newmp4else/usr/local/ffmpeg/ffmpeg/bin/ffmpeg -i $filename -ac 1 -ar 11025 -y -hide_banner $newmp4 #转码fi#如果图片和视频都成功制作,则删除源文件if [ -f $newjpg ]thenif [ -f $newmp4 ]thenrm -f $filename #删除源文件fififi      fidonesleep 2 #间隔秒数
done
} #读取第一个参数
convert_video $1#直接执行:/data/webapp/hotel/script/hotel_video_convert.sh /data/webapp/hotel/files/tempfile
#执行方式:nohup sh /data/webapp/hotel/script/hotel_video_convert.sh /data/webapp/hotel/files/tempfile &
#后台带日志:nohup sh /data/webapp/hotel/script/hotel_video_convert.sh /data/webapp/hotel/files/tempfile >/data/webapp/hotel/script/videolog.txt 2>&1 &

执行脚本:/data/webapp/hotel/script/hotel_video_convert.sh /data/webapp/hotel/files/tempfile

在后台执行:nohup sh /data/webapp/hotel/script/hotel_video_convert.sh /data/webapp/hotel/files/tempfile &

后台带日志:nohup sh /data/webapp/hotel/script/hotel_video_convert.sh /data/webapp/hotel/files/tempfile >/data/webapp/hotel/script/logs/videolog.txt 2>&1 &

Linux使用shell定时任务实现ffmpeg视频转码和截图相关推荐

  1. idea shell 使用linux_Linux使用shell定时任务实现ffmpeg视频转码和截图

    Linux安装 操作系统:CentOS7 ffmpeg版本:3.4.1 安装 先访问ffmpeg官网下载linux安装包 http://ffmpeg.org/download.html ,这里我下载的 ...

  2. Android FFmpeg视频转码并保存到本地

    本文讲述在Android中, 如何将FFmpeg视频转码为YUV格式并保存到本地. 首先,我们基于上一篇文章 基于Android Studio3.2实现ffmpeg最简单的例子 来进行配置. 配置好之 ...

  3. nodejs+ffmpeg视频转码

    nodejs+ffmpeg视频转码 const context = require("../core/node_core_ctx"); const {spawn,exec} =re ...

  4. java用ffmpeg转码_java运用FFMPEG视频转码技术.doc

    java运用FFMPEG视频转码技术 基于windows系统安装FFMPEG转码技术 软件特点: 被转视频基本不失真(支持超清.高清.标清): 转码速度比较现成转码软件快非常多(不管文件有多大,此软件 ...

  5. 使用GPU硬件加速FFmpeg视频转码

    最近看了些视频处理相关的文章,这里有一篇是讲如何使用Nvidia显卡为视频的编解码进行加速的, 为了方便查阅就转载了: 本文内容包括: 在Linux环境下安装FFmpeg 通过命令行实现视频格式识别和 ...

  6. javaweb中ffmpeg视频转码h264出现卡住不执行的解决办法(看到最后面就是答案了)

    郑文亮 专心地钻研编程,每天进步一点点 博客园 首页 新随笔 联系 管理 随笔-1610  文章-3  评论-570  Java+Windows+ffmpeg实现视频转换 最近由于项目需要,研究了一下 ...

  7. C#调用Process执行ffmpeg视频转码七分钟后就假死了

    问题描述 ffmpeg -i /wzfgs_img_storage/tuku.img_linux/upload/20210421_164313_803_a2a2.mov -vcodec h264 /v ...

  8. 解决ffmpeg视频转码后视频清晰度下降的问题

    清晰度 Chrome不支持非h264编码的mp4视频播放,可通过ffmpeg将视频转码成h264编码: ffmpeg -i input.mp4 -vcodec h264 -b:v 0 output.m ...

  9. linux视频转码软件,Linux 下ffmpeg视频转码实战一安装

    第一次接触ffmpeg这个软件,其实在我们的生活中他无处不在,由她制作的视频编辑播放软件有:QQ影音 射手播放器 等等.可以解析绝大部分的视频格式,转化成你想要的格式. 和ffmpeg一起的有三个软件 ...

最新文章

  1. R语言使用cowplot包的plot_grid函数将两个ggplot2可视化结果并排组合起来并添加图像标签A、B、设置组合图像使用共享的图例(shared legend in cowplot)
  2. linux 父子进程的关系
  3. cr3格式怎么转换成jpg_怎么把JPG格式转换为PDF?
  4. C++ :跳表数据结构的实现原理
  5. prefuse学习(二)显示一张图
  6. css3轮播不用jpuery_js和CSS3 3D轮播图
  7. gdb 10.2的安装
  8. quartz.net隔一天执行一次_你知多少年的轮回,中秋和国庆在同一天吗?喜相逢必备“蟹”逅礼...
  9. Python笔记-字符串转json
  10. 3306端口的入侵【转】
  11. html中metaf属性ormat-detection的意义
  12. img src 文件流_Java中的IO流之输出流|乐字节
  13. python 归纳 (二二)_多进程数据共享和同步_管道Pipe
  14. keyshot渲染玻璃打光_KeyShot新手的第一次打光,无脑三点打光塑造模型质感
  15. 过去几年的互联网经济,首先是“免费经济”
  16. Transact-SQL 语法约定
  17. JScrollBar().setValue(0)设置滚动条位置失效问题
  18. 如何摆脱CRUD等打杂状态,从事更高价值工作
  19. java下载支付宝对账单,实现与支付宝实收对账和日清日结对账
  20. codewars练习(javascript)-2021/2/24

热门文章

  1. 雷军创业十年演讲全文!创业艰辛、乘风破浪、一往无前
  2. 2022张宇考研基础30讲 第十三讲 常微分方程
  3. 与其说项羽败给刘邦,还不如说他输给了人情
  4. 腾讯微信技术总监:十亿用户增长背后的架构秘密
  5. 通过简单的演示理解TCP/IP网络
  6. ftrack Review 支持格式和分辨率
  7. ffmpeg:制作gif / 提取视频帧为图片
  8. 第一批用基因编辑工具定制DNA的婴儿即将诞生?
  9. microbit c语言编程软件,Micro:bit图形化编程实现计算器
  10. R入门(一)----读取数据、查看数据