ffmpeg视频转码和获取视频第一帧shell脚本
#!/bin/sh
echo "ffmpegmp4"
ffmpegmp4(){
if [ -f "$1" -a -s "$1" ];then
if [ "${1##*.}" = "mp4" -o "${1##*.}" = "flv" -o "${1##*.}" = "MP4" -o "${1##*.}" = "FLV" ];then
original=$1
echo "$original"
target=${original%.*}.${original##*.}
tmp=${original%.*}`date +%N`.mp4 # 文件的临时名字
picpath=${original%.*}_pic.jpg
ffmpeg -i $original -threads:1 4 -ab 56 -ar 22050 -qscale 8 -codec:v libx264 -c:a copy -movflags faststart -r 15 -s 480*320 -y $tmp
ffmpeg -ss 0 -i $original -y -f image2 -t 0.001 -s 238*140 $picpath
mv $tmp $target
fi
fi
}
ffmpegmp4 $1
echo ">>>>>>>>>>>>>>>ffmpegmp4 over<<<<<<<<<<<<<<<"
ffmpeg视频转码和获取视频任意一帧shell脚本
获取任意一帧的时间格式为HH:MM:ss或者填秒数
例如下面这条指令00:00:01为视频的第一秒
ffmpeg -i $original -y -f image2 -ss 00:00:01 -vframes 1 $picpath
或者(下面这条指令中-ss 后面的30代表截取第30秒的图片)
ffmpeg -i $original -y -f image2 -ss 30 -vframes 1 $picpath
#!/bin/sh
echo "ffmpegmp4"
ffmpegmp4(){
if [ -f "$1" -a -s "$1" ];then
if [ "${1##*.}" = "mp4" -o "${1##*.}" = "flv" -o "${1##*.}" = "MP4" -o "${1##*.}" = "FLV" ];then
original=$1
echo "$original"
echo ">>target<<"
target=${original%.*}.${original##*.}
echo "$target"
tmp=${original%.*}`date +%N`.mp4 # 文件的临时名字
echo ">>picpath<<"
picpath=${original%.*}_pic.jpg
echo ">>picpath<<"
ffmpeg -i $original -y -f image2 -ss 00:00:01 -vframes 1 $picpath
mv $tmp $target
fi
fi
}
ffmpegmp4 $1
echo ">>>>>>>>>>>>>>>ffmpegmp4 over<<<<<<<<<<<<<<<"