【问题标题】:Bash script to convert videos in sub-directories用于转换子目录中视频的 Bash 脚本
【发布时间】:2019-09-21 02:52:43
【问题描述】:

尝试制作一个脚本来转换子目录中的视频,同时更改文件名、元数据,并将它们全部转储到一个文件夹中以用于所有转换的视频。 ffmpeg 命令在不使用变量的情况下对单个文件起作用。 cut 命令将文件名和元数据更改为我想要的。我只是很难把它们放在一起。

找到 . -name "*.m2ts" -exec bash -c 'for f;做
t=$(echo "$f" | cut -d "/" -f2)
ffmpeg -i "$f" -af "volume=2.0" -f mp4 -c:a mp3 -c:v libx264 \
-profile:v 基线 -vf "scale=852:480" -metadata title="$t" $t.mp4; \
完成' -- {} +

【问题讨论】:

    标签: bash


    【解决方案1】:

    这是您脚本的几乎纯 bash 版本:

    #!/bin/bash
    for f in *.m2ts; do
        filename="${f/*\//}"
        ffmpeg -i "${filename}" \
            -af "volume=2.0" \
            -f mp4 \
            -c:a mp3 \
            -c:v libx264 \
            -profile:v baseline \
            -vf "scale=852:480" \
            -metadata title="${filename/.*/}" \
            ${filename/.m2ts/.mp4}
     done
    

    你可以试一试吗?

    顺便说一句,这里有一些 Bash Fu:

    $ f="./some/file.m2ts"
    $ echo ${f}
    ./some/file.m2ts
    $ echo ${f/*\//}
    file.m2ts
    $ filename=${f/*\//}
    $ echo ${filename}
    file.m2ts
    $ echo ${filename/.*/}
    file
    $ echo ${filename/.m2ts/.mp4}
    file.mp4
    $ 
    

    【讨论】:

    • 谢谢,我只需要进行一些更改以解决递归子目录和文件名中的空格问题。
    • 不用担心。我很高兴它有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 2014-06-16
    相关资源
    最近更新 更多