gpt4 book ai didi

linux - 如何在bash中将变量分配给同一目录中文件的不同扩展名

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

我有一个任务:

  • 观看视频文件的文件夹(mp4、mov、mkv 等)
  • 使用 ffmpeg
  • 将视频文件转换为 HLS(480p、720p、1080p)
  • 将这些文件移动到不同的文件夹
  • 从监视文件夹中删除原始文件
  • 发送一封电子邮件,说明以下视频文件已被转码

  • 我要处理每一个 .mp4 .mov .mkv 作为 bash 中的变量,以便我可以执行上述任务。
    包含这些文件的文件夹位于
    /mnt/volume1/videos
    目录架构
    /mnt/volum1/videos/sample.mp4
    /mnt/volum1/videos/sample.mov
    /mnt/volum1/videos/sample.mkv

    最佳答案

    您可以依次将目录中的每个 .mp4 .mov 和 .mkv 文件放入一个带有如下循环的变量中:

    cd /mnt/volum1/videos/
    for curFile in *.mp4 *.mov *.mkv ; do
    echo $curFile
    done
    您可以使用以下变量替换删除文件名的扩展名(文件名的最后一个“。”之后的所有内容):
    ${curfile%.*}
    我不了解 HLS,但这是一个简单的 ffmpeg 示例:
    如果你调用 ffmpeg 来制作一个 avi 文件,它会是这样的:
    ffmpeg -i $curfile ${curfile%.*}.avi

    关于linux - 如何在bash中将变量分配给同一目录中文件的不同扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67371512/

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