shell脚本实现 视频格式转换 ffmpeg 实现视频转换

摘要:
#!-f$original];thenecho"file$originalnotexist!
#!/bin/bash

original=$1
echo $original
#check whether file is exist
#if $original de chang du wei 0  huo bu $original bu shi chang gui wenjian 
if [ -z $original ] || [ ! -f $original ]; then
    echo "file $original not exist!"
    exit
fi
#check whether file is end of '.mp4' or whether it is h264 encodeing.
#显示 以 .mp4结尾的文件名字或者 h264编码的文件名字  不需要转换的啊
if [ -n "`echo $1 | sed -n /.mp4$/p`" ] && [ `ffprobe -show_streams $1 | grep "codec_name=h264"` ]; then
    echo "Don't need convert!"
else
    target=${original%.*}.mp4   #截取文件最长的字符串,比如 文件的名字是  a.html.dds.dd.ddedeers.sd.date.mp4,  在这里值截取   .mp4 以前的字符为target
    tmp=${original%.*}`date +%N`.mp4   #文件的临时名字
    ffmpeg -i $original -vcodec libx264 -acodec libfaac  -vpre slow  -vpre baseline  -qscale 4 -y  $tmp
    rm $original
    mv $tmp $target
fi

免责声明:文章转载自《shell脚本实现 视频格式转换 ffmpeg 实现视频转换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇mysql的默认隔离级别:可重复读(Repeatable Read)中小团队选择一款合适的测试用例管理工具下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

jenkins结合ansible用shell实现自动化部署和回滚

最近用jenkins+gitlab+ansible做持续化集成,自动化部署和版本回滚。然而deploy plugin没能做到增量升级和回滚操作,折腾了很久决定自己写个脚本来简单实现。 环境: centos 7.064位 gitlab:v2.9.0 git:2.9 jenkins 1.651.3、git plugin、GitLab Plugin、Dynam...

转 shell中字分隔的妙用:变量IFS

IFS 的全称是 Interal Field Separator ,即“内部区域分隔符”,它也是一个内置环境变量,存储着默认的文本分隔符,默认下这分隔符是空格符(space character),制表符(tab) 以及新行(newline) 。先看下面一个简单示例: ? 1 2 3 4 5 6 7 8 #!/bin/sh msg="welcom...

shell编程_条件判断if

条件判断if 本章课程大纲 1.什么是if 2.为什么要使用if 3.if基础语法 - 单条件 - 双条件 -多条件 4.if在判断的过程中,需要表达式  1.基于文件进行判断  -d -f -s -e 三个需求 2.基于整数进行判断 重要!  -eq -ne -ge -gt -le -lt 3.基于字符进行判断   = != 4.基于正则进...

关于ffmpeg解决主流浏览器无法播放wmv、avi等格式视频问题(内附linux环境相关安装包nasm、yasm、x264等)

最近接到一个老项目,由于老项目之前适配的是ie浏览器。该老项目中有很多wmv和avi格式的视频。最近需要更换视频其他浏览器访问,需要对除ie浏览器的其他浏览器进行适配。ie浏览器播放视频没有任何问题,但是在主流浏览器中,无法识别<embed>标签,只支持<video>、<audio>标签,然而这些标签支持的视频格式为主流...

linux ------ 使用 screen 后 SSH 断开后程序依旧能在后台运行

为什么ssh断开后你运行的进程会退出呢? 因为所有进程都得有个父进程。当你ssh到一个服务器上时,打开的shell就是你所有执行命令的父进程。 当你断开ssh连接时,你的命令的父进程就没了。如果处理不当,这些进程就会收到SIGTERM信号,全被干掉了。 然后说解决方案: 让你运行的进程的父进程变成PID=1的init进程,这样你的shell退出后不影响这...

(转)linux shell 数字计算详解

代码中免不了要进行各种数据计算。抛开科学计算不提,普通的计算占地,百分比,同比,环比等需求就很常见。linux shell中进行数字计算,主要有如下几种方式: 1.bc bc是比较常用的linux计算工具了,而且支持浮点运算: [webopa@namenode-backup expensive_user]$ a=`echo 1+1 | bc` [we...