更改ffmpeg输出目录

时间:2019-05-05 17:51:23

标签: bash shell ffmpeg

我正在使用ffmpeg压缩素材,我想补偿某一天的素材,但是当我覆盖文件时,它会输出一个空流,因为它同时写入,因此我想重命名输出文件。查找将提供必要的完整路径,但我不知道如何更改实际文件名,而不是路径。

有什么建议吗?

find /home/server/recordings/compress -name '*.mp4' -print0 | xargs -0 -I{} ffmpeg -i {}  -c:v libx265 -preset fast -crf 25 -x265-params "vbv-maxrate=1500:vbv-bufsize=1000" -c:a aac {}

2 个答案:

答案 0 :(得分:1)

ffmpeg中的最后一个参数是输出文件名。因此,您可以将命令更改为

find /home/server/recordings/compress -name '*.mp4' -print0 | xargs -0 -I{} ffmpeg -i {}  -c:v libx265 -preset fast -crf 25 -x265-params "vbv-maxrate=1500:vbv-bufsize=1000" -c:a aac {}.out

这样,所有输出文件都将附加.out。

答案 1 :(得分:0)

使用sh将文件名传递到-exec并在那里修改文件名。例如:

find /home/server/recordings/compress -name '*.mp4' -exec sh -c '
ffmpeg -i "$1" -c:v libx265 -preset fast -crf 25 -x265-params "vbv-maxrate=1500:vbv-bufsize=1000" -c:a aac \
    "${1%/*}/modified_${1##*/}"
' _ {} \;