特别注意:本人很懒就搞了些懒人办法
1.建立个文本,改个扩展名shell.sh,复制下面代码-保存。
打开终端(建议直接root用戶运行)。
2.sudo chmod +x sheell.sh
3.sudo ./shell.sh
4.完成的文件在finish文件夹里
5.用法 shell.sh 视频名.xxx 注意这2个文件放在同一个文件夹里
6.///3种模式可以选,1标准是无损转换60帧视频 ,2高级是快速加强画质转换60帧视频,3是超级画质转换60帧视频。
7.为了通用,用的是H264编码,装最新版本的ffmpeg可以把里面的H264改成H265进一步加强。
#!/bin/bash
##i-视频60帧无损超级转码
##-change(转换)
sudo echo '开始转码'
############################################i选择开始i#
read -p "请输入质量要求 1.标准,2.高级,3.超级 输入数字(1|2|3)?" choice;
case "$choice" in
1|2|3 )
############################################################i#
if [ ! -d "finish" ];then
mkdir finish
chmod -R 777 finish
fi
############################################i#
##获取当前目录的函数
axdir=$(cd $(dirname $0); pwd)
##获取输入文件扩展名
##axname文件名带扩展
a1xname=$(basename $1)
##bxname=文件名不带扩展
b1xname=${a1xname%.*}
##文件扩展名
c1xname=${a1xname##*.}
##########################################i这部分转码i#
##mp4转码
if [ $choice == "1" ]
then
##for循环读取
##$axdir/* 读取文件全名加路径
for axfile in $axdir/*
do
##axname文件名带扩展
axname=$(basename $axfile)
##bxname=文件名不带扩展
bxname=${axname%.*}
##文件扩展名
cxname=${axname##*.}
if [ "$cxname" == "$c1xname" ];then
##i平行无损转60高清
ffmpeg -i $1 -c:v libx264 -x264-params "profile=high444:level=5" -preset ultrafast -qp 0 -r 60 $axdir/finish/$1;
else
echo '-------------';
fi
done
##上面循环结束
echo "视频转换完成$1"
fi
##mkv转码
if [ $choice == "2" ]
then
##for循环读取
##$axdir/* 读取文件全名加路径
for axfile in $axdir/*
do
##axname文件名带扩展
axname=$(basename $axfile)
##bxname=文件名不带扩展
bxname=${axname%.*}
##文件扩展名
cxname=${axname##*.}
if [ "$cxname" == "$c1xname" ];then
##i高级无损转60高清
ffmpeg -i $1 -c:v libx264 -x264-params "profile=high444:level=5" -preset ultrafast -qp 0 -r 60 $axdir/finish/$1;
else
echo '-------------';
fi
done
##上面循环结束
echo "视频转换完成$1"
fi
##ts转码
if [ $choice == "3" ]
then
##for循环读取
##$axdir/* 读取文件全名加路径
for axfile in $axdir/*
do
##axname文件名带扩展
axname=$(basename $axfile)
##bxname=文件名不带扩展
bxname=${axname%.*}
##文件扩展名
cxname=${axname##*.}
if [ "$cxname" == "$c1xname" ];then
##i超级无损转60高清
ffmpeg -i $1 -c:v libx264 -x264-params "profile=high444:level=5" -preset veryslow -qp 0 -r 60 $axdir/finish/$1;
else
echo '-------------';
fi
done
##上面循环结束
echo "视频转换完成$1"
fi
#####################################i这部分转码i#
echo $choice;;
n|N ) echo "no";;
* ) echo "invalid......";;
esac
############################################i选择结束i#
chmod -R 777 finish
exit
懒也是一种力量