gpt4 book ai didi

bash - 如果当前没有运行,我如何只运行 ffmpeg

转载 作者:行者123 更新时间:2023-12-04 22:55:19 25 4
gpt4 key购买 nike

我有一个每 10 分钟运行一次的脚本,这会导致 ffmpeg 一遍又一遍地运行,并且确实减慢了它的速度。我想一次只运行一个实例,这样电影会更快地出现在我的网站上(而不是让我的服务器崩溃)。

这是我的代码:

for i in MovieCategories/Category1/*/*.mkv;
do name=`echo $i | cut -d'.' -f1`;
echo $name;
ffmpeg -n -i "$i" "${name}.mp4"; rm -v "${name}.mkv";
done

for i in MovieCategories/Category2/*/*.mkv;
do name=`echo $i | cut -d'.' -f1`;
echo $name;
ffmpeg -n -i "$i" "${name}.mp4"; rm -v "${name}.mkv";
done
for i in MovieCategories/Category3/*/*.mkv;
do name=`echo $i | cut -d'.' -f1`;
echo $name;
ffmpeg -n -i "$i" "${name}.mp4"; rm -v "${name}.mkv";
done
for i in MovieCategories/Category4/*/*.mkv;
do name=`echo $i | cut -d'.' -f1`;
echo $name;
ffmpeg -n -i "$i" "${name}.mp4"; rm -v "${name}.mkv";
done

for i in MovieCategories/Category5/*/*.mkv;
do name=`echo $i | cut -d'.' -f1`;
echo $name;
ffmpeg -n -i "$i" "${name}.mp4"; rm -v "${name}.mkv";
done
for i in MovieCategories/Category6/*/*.mkv;
do name=`echo $i | cut -d'.' -f1`;
echo $name;
ffmpeg -n -i "$i" "${name}.mp4"; rm -v "${name}.mkv";
done
for i in MovieCategories/Category7/*/*.mkv;
do name=`echo $i | cut -d'.' -f1`;
echo $name;
ffmpeg -n -i "$i" "${name}.mp4"; rm -v "${name}.mkv";
done

for i in MovieCategories/Category8/*/*.mkv;
do name=`echo $i | cut -d'.' -f1`;
echo $name;
ffmpeg -n -i "$i" "${name}.mp4"; rm -v "${name}.mkv";
done
for i in MovieCategories/Category9/*/*.mkv;
do name=`echo $i | cut -d'.' -f1`;
echo $name;
ffmpeg -n -i "$i" "${name}.mp4"; rm -v "${name}.mkv";
done
for i in MovieCategories/Category10/*/*.mkv;
do name=`echo $i | cut -d'.' -f1`;
echo $name;
ffmpeg -n -i "$i" "${name}.mp4"; rm -v "${name}.mkv";
done

for i in MovieCategories/Category11/*/*.mkv;
do name=`echo $i | cut -d'.' -f1`;
echo $name;
ffmpeg -n -i "$i" "${name}.mp4"; rm -v "${name}.mkv";
done

我试图将它们合并到一个命令中以提供一些帮助,但由于某种原因,它与来自不同目录的名称不匹配并且失败了。总的来说,我的主要目标是一次只运行一部电影。如果你能帮助巩固这一点,那将是一个奖励。电影列表如下:

电影类别/
  • 类别1/
  • 电影1/
  • 电影1.mp4
  • 电影2/
  • Movie2.mkv
  • 电影3/
  • 电影3.mp4
  • 类别2/
  • 电影4/
  • 电影4.mp4
  • 电影5/
  • Movie5.mkv
  • 电影6/
  • 电影6.mp4

  • 并且在...

    最佳答案

    您可以检查 ffmpeg 是否正在运行,例如:

    #!/bin/bash
    if ps aux | grep -i '[f]fmpeg' ; then
    echo "running"
    else
    echo "not running"
    fi

    ps aux 命令的退出代码放在 $? 中。如果为零,则 ffmpeg 正在运行。如果它没有运行,它就不会为零。希望您可以调整此脚本以满足您的需求。

    关于bash - 如果当前没有运行,我如何只运行 ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56452466/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com