【问题标题】:Script bash to compress .mp4 with subfolders and another destination folder使用 bash 脚本压缩带有子文件夹和另一个目标文件夹的 .mp4
【发布时间】:2017-10-29 00:03:08
【问题描述】:

我正在尝试创建一个脚本来将所有 .mp4 视频转换为子文件夹。
我的层次结构是:

文件夹_1/
Videos_encoded/
Videos_orig/
第一视频.mp4
视频_2/
文件夹中的视频-video_2.mp4

我想将Videos-orig/中的所有.mp4(带入子文件夹)压缩到videos_encoded作为目标文件夹。

我试过了:

find /home/user/Folder_1/videos_orig/ -type d | while read ligne     
do  
cd "$ligne"          
   for i in *.mp4;
    do 
       ffmpeg -y -i "$i" -ar 44100 -c:v libx265 -b:v 1000 -c:a mp3 -b:a 128k /home/user/Folder_1/videos_encoded"$(basename "${i/.mp4}").mp4"
    done     
done

但我收到错误消息:**.mp4 no such file or directory*(ffmpeg 命令的结果)。

我不明白...

有没有更好的方法来执行这个项目?

非常感谢您的帮助:)

问候

【问题讨论】:

  • 在查找中使用 -exec 标志。

标签: bash ffmpeg


【解决方案1】:

如果不保留输出中的目录结构也没问题,我认为这个示例仅使用 find-exec 就足够了

find orig/ -type f -name "*.mp4" -exec sh -c 'ffmpeg -i "{}" "encoded/$(basename {})"' \;

【讨论】:

  • 嗨,谢谢你的帮助,我用你的命令行修改了我的脚本,现在,ffmpeg命令的结果是:/video_orig/myvideo/myvideo.mp4:是一个目录。视频和目录相同,但 .mp4 不是目录^^。 PS:我删除了第一个 $ 因为“$ : command not found”。
  • @AurélienPéruchon 嗯,这很奇怪,我用附加选项 -type f 更新了答案,以确保传递给 ffmpeg 的参数保证是文件而不是目录。顺便说一句,$ 只是表明代码是 bash 命令:) 我会删除它以避免混淆
  • 哦,非常感谢!它与 -type f 配合得很好。但是,ffmpeg 同时转换许多文件。可以一一转换吗?
  • @AurélienPéruchon 很高兴为您提供帮助 :) 这很奇怪,因为 find -exec \; 语法应该按顺序而不是并行执行命令 (ffmpeg)。你介意发布你的完整命令吗?
  • 您好,谢谢,最后,没关系。脚本一一压缩,完美。但我意识到它没有压缩(或检测)文件夹中的最后一个文件。我在videos_orig 文件夹中有 5 个 .mp4 文件。该脚本只是压缩了前四个文件。如果我的文件夹中有 6 个文件,该脚本将压缩前五个文件而不压缩最后一个 .我的命令行:find /Folder_1/videos_orig/ -type f -name "*.mp4" -exec sh -c 'ffmpeg -y -i "{}" -ar 44100 -c:v libx264 -b:v 1000 -c:a mp3 -b:a 128k "/Folder_1/videos_encoded/$(basename {})"' \; 对不起我的英语^^
【解决方案2】:

该命令有效,但它不会压缩我的所有文件。

我的命令行:

find /volume1/Master_1/Unites_communes/No_compressed/ -type f -name "*.mp*" -exec sh -c 'ffmpeg -n -i "{}" -crf 23 -ar 44100 -c:v libx264 -b:v 1000 -c:a mp3 -b:a 128k "/volume1/Master_1/Unites_communes/Cours_videos/$(basename {})"' \;

我跑: find /volume1/Master_1/Unites_communes/No_compressed/ -type f -name "*.mp4" -print

我有:

出击标准/错误:

/volume1/Master_1/Unites_communes/No_compressed/2017-10-13_131756.mp4

/volume1/Master_1/Unites_communes/No_compressed/2017-10-23_132120.mp4

/volume1/Master_1/Unites_communes/No_compressed/2017-10-24_090340.mp4

/volume1/Master_1/Unites_communes/No_compressed/2017-10-24_131336.mp4

/volume1/Master_1/Unites_communes/No_compressed/2017-10-25_085744.mp4

/volume1/Master_1/Unites_communes/No_compressed/2017-10-25_131357.mp4

/volume1/Master_1/Unites_communes/No_compressed/2017-10-26_133340.mp4

/volume1/Master_1/Unites_communes/No_compressed/2017-10-27_083836.mp4

/volume1/Master_1/Unites_communes/No_compressed/2017-10-27_133906.mp4

/volume1/Master_1/Unites_communes/No_compressed/2017-10-13_090642.mp4

/volume1/Master_1/Unites_communes/No_compressed/2017-10-10_125731.mp4

/volume1/Master_1/Unites_communes/No_compressed/2017-10-10_090037.mp4

/volume1/Master_1/Unites_communes/No_compressed/2017-10-04_140230.mp4

总共:13 个文件

在目的地我只压缩了 7 个文件。

我的 ffmpeg 命令有问题?

我在 Synology 上,如果它可以帮助你的话。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    • 2020-08-21
    相关资源
    最近更新 更多