ffmpeg裁剪切割视频脚本




脚本处理视频文件
1. 输出的宽w高h和剪切的起始坐标xy, w:h:x:y, 宽高不能超过原始宽高。
2. 裁剪的开始偏移量ss和切割的时间
3. 是否开始的1s加静态封面或者加视频头,或者加视频尾
4. 音频的处理,去除音频,合并新的音频或者混音。
5. 加字幕

下面代码供参考,完善中。

path=$1
files=$(ls $path)
type=".mp4"
if [[ $filename =~ $type ]]
   ffprobe -print_format json -show_streams $filename > videoinfo

   # 这一段执行之后,videowidth 的值就是视频的宽
   while  read line 
     do
     #statements
     if [[ $line =~ 'width' ]]; then
       #statements
       # 这里用了 awk 的方法提取字符串的一部分
       videowidth=`echo $line | awk -F: '{print $2}' | awk -F, '{print $1}'`
       echo $line
       break
     fi
     if [[ $line =~ 'height' ]]; then
       #statements
       # 这里用了 awk 的方法提取字符串的一部分
       videoheight=`echo $line | awk -F: '{print $2}' | awk -F, '{print $1}'`
       echo $line
       break
     fi
   done < videoinfo
   echo 'w:' + $videowidth
   echo 'h:' + $videoheight


   ffmpeg -i $filename -strict -2 -vf  crop=$($w:$h:$x:$y)  $filename+out1.mp4 
   while [ $endTime -le $duration ]; do
       #statements
       i=$[$i+1]
       endTime=$[$startTime+4]
       ffmpeg -i video/$filename+out1.mp4  -ss $startTime -to $endTime -acodec copy -vcodec copy video/$filename+out2.mp4
       startTime=$[endTime]
    done
fi



阅读量: 606
发布于:
修改于: