gpt4 book ai didi

ffmpeg - handbrakecli/ffmpeg 命令编码和自动文件名(Ubuntu)

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

我有 2 个预设的 .json 文件(来自 Windows 上的 GUI 版本)将 mkv 转换为 mp4。

  • 转换为 h264 并添加字幕 1
  • 转换为 h264

  • 我只是想让 2 号在这个阶段工作。 for i in `*.mkv`; do HandBrakeCLI --preset-import-file HPRESET.json -Z "MYPRESET" --output *.mp4; done没有输出名称 HandBrakeCLI -i $1 --preset-import-gui HPRESET.json -Z "MYPRESET" --output $1.mp4输出名称错误 for i in `*.mkv`; do HandBrakeCLI --title $i --preset "Very Fast 1080p30" --output *.mp4; done输出名称错误且预设无效。 $ for i in `seq 4`; do HandBrakeCLI --input /dev/dvd --title $i --preset Normal --output NameOfDisc_Title$i.mp4; done从另一个stackoverflow问题复制了这个,但输出为1.mp4,然后是2.mp4等。

    最佳答案

    您可以使用以下内容提取不带扩展名的文件名:

    noext=${i%.*}
    例子:
    ╰─$ for i in *.mkv; do echo "$i"; noext=${i%.*}; echo "$noext"; done
    asdf.mkv
    asdf
    test.mkv
    test
    相同的循环,不同的符号:
    for i in *.mkv
    do
    #put the commands you want to run after "do" and before "done"
    echo "$i"
    noext=${i%.*}
    echo "$noext"
    done
    请注意 for命令将搜索当前目录中以 .mkv 结尾的任何文件.对于它找到的每个文件,它将文件名保存到变量 $i中。 ,然后执行 do之后的命令, 然后将下一个文件名保存到变量 $i并执行 do之间的命令和 done .它将重复该循环,直到处理已找到的每个文件。
    由于我没有手刹预设的经验,这里有一个解决方案 ffmpeg :
    for i in *.mkv
    do
    #put the commands you want to run after "do" and before "done"
    noext=${i%.*}
    ffmpeg -i "$i" -c:v libx264 -c:a copy -c:s copy "$noext.mp4"
    done

    关于ffmpeg - handbrakecli/ffmpeg 命令编码和自动文件名(Ubuntu),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71725303/

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