ffmpeg 删除 视频 封面 图标 背景图 shell 懒人系列-22

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.测试环境 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

##判断程序是否执行成功
if [ "$?" == "0" ]; then
   echo '命令运行成功'
else
   echo '命令运行失败'
fi
##建立新文本
touch 1.txt
touch 2.txt
##截取文本后21行写入文本
echo $(tail -n 9 merge.txt)>2.txt
##读取文本第一行
x2line=$(awk 'NR==1' 2.txt)
##获取第三位的字串值
echo ${x2line:0:3}

if [ "${x2line:0:3}" == "pic" ];then

    echo "i可以执行i";

else 

    echo "i不可以执行i";
    exit

fi

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

##i从右向左最后一个#号截取
x2line=${x1line#*#};

##获取第三位的字串值
axtrack=${x2line:2:1};


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

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

if [ "$axtrack" == "4" ];then
    axmap="-map 0:1";
    bxmap="-map 0:2";
    cxmap="-map 0:3";
fi

if [ "$axtrack" == "5" ];then
    axmap="-map 0:1";
    bxmap="-map 0:2";
    cxmap="-map 0:3";
    dxmap="-map 0:4";
fi

if [ "$axtrack" == "6" ];then
    axmap="-map 0:1";
    bxmap="-map 0:2";
    cxmap="-map 0:3";
    dxmap="-map 0:4";
    exmap="-map 0:5";
fi

if [ "$axtrack" == "7" ];then
    axmap="-map 0:1";
    bxmap="-map 0:2";
    cxmap="-map 0:3";
    dxmap="-map 0:4";
    exmap="-map 0:5";
    fxmap="-map 0:6";
fi

ffmpeg -i $1 -map 0:0 $axmap $bxmap $cxmap $dxmap $exmap $fxmap -vcodec copy -acodec copy $axdir/finish/$1;

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

exit

处理前

处理后

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 可以使用以下代码来更改视频1的封面ffmpeg -i 视频1.mp4 -i 图片1.jpg -map 0:v -map 1:v -c:v copy -c:a copy -disposition:0 attached_pic 视频1_new.mp4 ### 回答2: 使用FFmpeg可以很方便地将视频封面替换为另一张图片。下面是一份详细的代码示例: 1. 首先,确保已经安装了FFmpeg,并将其加入系统路径。你可以从FFmpeg的官方网站(https://ffmpeg.org/)下载并安装它。 2. 创建一个文本文件,将以下代码粘贴到文件中,并保存为一个脚本文件(例如,replace_cover.sh): ```shell #!/bin/bash # 视频的路径和文件名 input_file="video1.mp4" # 图片的路径和文件名 cover_image="image1.jpg" ffmpeg -i $input_file -i $cover_image -map 0 -map 1 -c copy -disposition:v:0 attached_pic output.mp4 ``` 3. 将视频文件(video1.mp4)和待替换封面的图像文件(image1.jpg)放在与脚本文件相同的目录下。 4. 在终端中,使用以下命令运行脚本文件: ```shell ./replace_cover.sh ``` 在脚本运行后,将会生成一个名为output.mp4的新视频文件,其中视频1的封面将会被图片1替换。 需要注意的是,上述代码假设视频文件和封面图像文件都位于同一个目录下。如果它们位于不同的目录,需要在代码中指定完整的路径。 此外,还需确保视频文件和图像文件的格式是兼容的。通常,FFmpeg支持的格式非常广泛,但某些特殊格式可能会存在兼容性问题。如果遇到问题,可以尝试将视频和图像转换为受支持的格式。 ### 回答3: 使用FFmpeg视频1的封面换成图片1的详细代码如下: ```bash ffmpeg -i 视频1.mp4 -i 图片1.jpg -map 0 -map 1 -c copy -disposition:1 attached_pic -y 新视频.mp4 ``` 这段代码使用了FFmpeg命令行工具进行操作。具体解释如下: - `-i 视频1.mp4` :表示输入的视频文件为"视频1.mp4"。可以根据实际情况替换为自己的视频文件名。 - `-i 图片1.jpg` :表示输入的图片文件为"图片1.jpg"。可以根据实际情况替换为自己的图片文件名。 - `-map 0 -map 1` :表示将视频流和图像流分别映射到输出文件上。 - `-c copy` :表示对视频和图片进行直接复制操作,不进行编码。 - `-disposition:1 attached_pic` :表示将图片设置为封面。 - `-y 新视频.mp4` :表示输出的新视频文件为"新视频.mp4"。可以根据实际情况替换为自己想要的输出文件名。 执行代码后,FFmpeg将会将视频1中的封面替换为图片1,并生成一个新的视频文件"新视频.mp4"。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

新生魔王力量

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

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

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

打赏作者

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

抵扣说明:

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

余额充值