深圳最好的网站开发公司,网站友情链接的好处,辽宁身营商环境建设局网站,saas建站cms1. 下载ffmpeg并配置环境变量
ffmpeg下载地址 Windows下配置ffmpeg环境变量
2. 运行脚本
Git下载地址 Windows系统下如何运行.sh脚本文件 在Windows上面可以安装git#xff0c;然后使用Git Bash运行此脚本。 视频目录一定要用英文双引号括起来。 ./cut.sh 视频目录然后使用Git Bash运行此脚本。 视频目录一定要用英文双引号括起来。 ./cut.sh 视频目录 片头长度秒 片尾长度秒
./cut.sh E:\Downloads\x 20 40脚本内容
#!/bin/bash
# 用法
# 目录一定要用英文双引号括起来
# ./cut.sh E:\Downloads\x 20 40filepath$1 #视频目录
beg$2 #片头秒
end$3 #片尾秒# 将windows路径转换为linux路径Linux系统中运行可以除掉
########################################################win_path$filepath # 脚本的第一个参数就是windows路径tmp_path${win_path/:/} # 将冒号删掉
tmp_path${tmp_path//\\/\/} # 将\\替换为/disk_id${tmp_path:0:1} # 取出第一个字母也就是C盘的C冒号后面第一个0指的是从下标为0的地方开始提取第二个冒号后面的1表示提取一个字母
disk_id$(echo $disk_id | tr [:upper:] [:lower:]) # 大写转小写other_path${tmp_path:1} # 路径中除了磁盘以外的部分filepath/${disk_id}${other_path} # 需要将/接在路径最前方######################################################### 进入视频目录
cd $filepath# 解决文件名中有空格的问题
IFS$\n#用 for 循环直接获取当前目录下的 mp4、mp3、avi 等文件循环处理单个文件可以去掉 for 循环
filenamels *.{mp4,mkv,avi,ts,flv,mov,mwv}for i in $filename; do#将元数据信息临时保存到 tmp.log 文件中#echo $iffmpeg -i $i tmp.log 21#获取视频的时长格式为 00:00:10,10 时分秒微妙timecat tmp.log |grep Duration: |awk {print $2}|awk -F , {print $1}|xargs#echo $time#求视频的总时长先分别求出小时、分、秒的值这里不处理微秒可以忽略hourecho $time |awk -F : {print $1} minecho $time |awk -F : {print $2} sececho $time |awk -F : {print $3}|awk -F . {print $1} #echo $hour $min $secnum1expr $hour \* 3600num2expr $min \* 60num3$sec#计算出视频的总时长秒sumexpr $num1 $num2 $num3 #总时长减去开头和结尾就是截取后的视频时长,并且这里不需要再转回 hour:min:sec 的格式直接使用结果即可newtimeexpr $sum - $beg - $end#echo $newtime#echo -----------:$newtime#截取新视频存放目录哪果不存在则创建if [[ ! -d ./out ]];thenmkdir ./outfi# pwd# -ss去掉片头-t一直截到视频的尾部的总时长减掉尾部时长的总时长就是去掉了片尾ffmpeg -ss $beg -i $i -c copy -t $newtime ./out/$i
done