ffmpeg 设置 改变 默认 音轨 声道 顺序 shell 懒人系列-23

29 篇文章 0 订阅
29 篇文章 1 订阅

特别注意:因为懒所以懒,做个shell一键执行。

1.建立个文本,改个扩展名shell.sh,复制下面代码-保存。
打开终端(建议直接root用戶运行)。

2.sudo chmod +x sheell.sh

3.sudo ./shell.sh  视频名.xxx    (使用运行即可)

4.完成的文件在finish文件夹里
5.用法 shell.sh  视频名.xxx 注意这2个文件放在同一个文件夹里

6.这是我想了很久决定这样做一下。

7.输入默认需要的音轨,其余音轨 依次下落

8.测试环境 centos7 其他linux 应该也能用

#!/bin/bash
##i-bash是标准的shell标头
##i-

##i-判断文件目录是否存在,不存在就创建
if [ ! -d "finish" ];then
  mkdir finish
  chmod -R 777 finish
#else
#echo 'finis文件夹存在'
fi

##获取当前目录的函数
axdir=$(cd $(dirname $0); pwd)

##i-读取命令返回值写入文本
touch merge.txt
echo '  '>merge.txt
##读取运行命令的返回值
check_results=`ffmpeg -i $1 2>&1`

for i in $check_results

do 

   sed -i '$a'"$i" merge.txt
 
done

##建立新文本
touch 1.txt

##建立新文本
touch 1.txt
##截取文本后21行写入文本
echo $(tail -n 50 merge.txt)>1.txt
##读取文本第一行
x1line=$(awk 'NR==1' 1.txt)

##i从最后一个#号截取
#echo ${x1line#*#};

x2line=${x1line#*#};

##获取第三位的字串值
echo "$1""共有""${x2line:2:1}""条音轨";

x3line=${x2line:2:1};

read -p "请输入默认第一音轨" axtrack;

if [[ "$axtrack" == "" ]]||[[ "$axtrack" > "${x2line:2:1}" ]];then

axtrack="";
echo "请输入正确的音轨"

exit
fi

touch 3.txt
echo '1'>3.txt;

sed -i '$a''2' 3.txt;
sed -i '$a''3' 3.txt;
sed -i '$a''4' 3.txt;
sed -i '$a''5' 3.txt;
sed -i '$a''6' 3.txt;

sed -i "$axtrack"'d' 3.txt

x1nr=$(awk 'NR==1' 3.txt);
x2nr=$(awk 'NR==2' 3.txt);
x3nr=$(awk 'NR==3' 3.txt);
x4nr=$(awk 'NR==4' 3.txt);
x5nr=$(awk 'NR==5' 3.txt);

if [ "$x3line" == "1" ];then
    axmap="-map 0:1";
fi

if [ "$x3line" == "2" ];then
    axmap="-map 0:2";
    bxmap="-map 0:1";
fi

if [ "$x3line" == "3" ];then
    axmap="-map 0:$axtrack";
    bxmap="-map 0:$x1nr";
    cxmap="-map 0:$x2nr";
fi

if [ "$x3line" == "4" ];then
    axmap="-map 0:$axtrack";
    bxmap="-map 0:$x1nr";
    cxmap="-map 0:$x2nr";
    dxmap="-map 0:$x3nr";
fi

if [ "$x3line" == "5" ];then
    axmap="-map 0:$axtrack";
    bxmap="-map 0:$x1nr";
    cxmap="-map 0:$x2nr";
    dxmap="-map 0:$x3nr";
    exmap="-map 0:$x4nr";
fi

if [ "$x3line" == "6" ];then
    axmap="-map 0:$axtrack";
    bxmap="-map 0:$x1nr";
    cxmap="-map 0:$x2nr";
    dxmap="-map 0:$x3nr";
    exmap="-map 0:$x4nr";
    fxmap="-map 0:$x5nr";
fi

ffmpeg -i $1 -map 0:0 $axmap $bxmap $cxmap $dxmap $exmap $fxmap -c copy -disposition:a:0 default -y $axdir/finish/$1;

rm -rf merge.txt
rm -rf 1.txt
rm -rf 2.txt
rm -rf 3.txt

exit
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新生魔王力量

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值