我正在使用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 {}
答案 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##*/}"
' _ {} \;