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

标签 bash path ffmpeg save transcoding

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

我需要将所有文件转换并复制为另一种格式,并将所有路径保存在文件夹 1 之后,例如:
文件夹2/子文件夹1/file.mp4
文件夹2/子文件夹2/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;

请帮忙
谢谢!

最佳答案

更换零件"${0%%.MP4}.mov""folder2/$(dirname ${0#*/})/$(basename $0 .MP4).mov" .这不会容忍路径中有空格的 MP4。

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

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

关于bash - FFmpeg 和 bash,使用保存路径将多个文件转码到另一个驱动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38433856/

相关文章:

arrays - 无法在 Bash Shell 脚本中打印整个数组

python - Ubuntu Command 'pip' not found,但有18个类似的

使用 yocto 构建 ffmpeg

android - Android 上的快速视频压缩

powershell - Powershell.exe 的路径(v 2.0)

ffmpeg - x265 : Will I get smaller file size with frame-threads=1?

bash - Expect Script - 修复奇怪的终端大小调整行为

linux - shell 找到一个文件,执行它 - 如果 'error' 则退出,如果 ' no error' 则继续

linux - 如何使用 sed 按指定顺序提取行?

java - 有没有一种有效的方法来检查子目录并通过Android Assets 文件夹中的相对路径加载 Assets ?