FFmpeg和bash,使用保存路径将多个文件转码到另一个驱动器

时间:2016-07-18 10:02:25

标签: bash path ffmpeg save transcoding

我的文件夹包含许多不同路径中的文件,例如:folder1 / subfolder1 / file.mov 文件夹1 / subfolder2 / file.mov

我需要将所有文件转换并复制到另一种格式,并保存文件夹1之后的所有路径,例如: 文件夹2 / subfolder1 / file.mp4 文件夹2 / subfolder2 / file.mp4

我有这个脚本,但它将转码后的文件保存在原始位置。

#!/bin/bash
MOVIES=/Volumes/drive/
find "$MOVIES" -name '*.MP4' -exec sh -c 'ffmpeg -i "$0" -map 0 -c copy "${0%%.MP4}.mov"' {} \; exit;

请帮忙 谢谢!

1 个答案:

答案 0 :(得分:0)

将部分"${0%%.MP4}.mov"替换为"folder2/$(dirname ${0#*/})/$(basename $0 .MP4).mov"。这不会容忍在路径上留有空格的MP4。

ffmpeg是否创建了目录?如果没有,请在ffmpeg之前插入:

mkdir -p "folder2/$(dirname ${0#*/})";