AppleScript + QuickTime — 批量修剪 + 创建编辑 + 导出视频



我正在寻求帮助。

我想做的是让AppleScript打开一个视频文件夹,然后让QuickTime随机修剪它们(就像在它修剪的开始帧中一样(,然后有一个可变长度的修剪本身(比如随机在1秒到2秒之间作为新"剪辑"的边界(。修剪并创建新的"编辑"后(它会将此新的随机修剪添加到文件夹中的所有视频,然后添加到时间线(。然后,QT 需要将编辑导出到新文件夹。

总之,尝试制作一个快速的自动编辑应用程序,该应用程序可以从充满视频的文件夹中随机选择,然后将编辑保存到新视频中。

任何这方面的帮助将不胜感激!

我一直在尝试,但要有所帮助(我对编码兜圈子相当陌生(。

谢谢! 迪伦

像@CJK一样,我建议您使用bashffmpeg,因为它们都可以在macOS上使用,并且比Applescript和QuickTime更广为人知且适用范围更广。

恕我直言,由于Apple没有提供包管理器,因此建议您使用自制软件来安装,更新和删除包。它可以在自制网站上找到。

一旦你有了它,你可以找到你想要的任何包:

brew search packageXYZ

因此,您现在可以使用以下方式安装ffmpeg

brew install ffmpeg

现在,您需要一个bash脚本,该脚本具有以下功能:

  • 循环遍历目录中的所有".mov"文件
  • 获取它们的长度
  • 计算随机持续时间
  • 计算随机开始时间
  • 将该视频片段提取为剪辑
  • 最后,将所有剪辑组装在一起

这将看起来像这样,我建议您将其保存在名为$HOME/RandomClipsbash脚本中

#!/bin/bash
# Set up globbing
shopt -s nullglob nocaseglob
# Clear list of files we are going to concatenate
> list.txt
N=1
# Loop through all ".MOV" files
for f in *.MOV ; do
# Tell user which one we are processing
echo Processing file $f
# Get length of this video in seconds
duration=$(mdls -raw -name kMDItemDurationSeconds "$f")
echo ... Duration: $duration
# Generate a random clip length less than 5 seconds
((seconds=RANDOM%5))
echo ... Clip length: $seconds
# Generate start time
((start=RANDOM%(duration-seconds)))
echo ... Start time: $start
# Extract clip into file called "Clip-1.mov", "Clip-2.mov" etc
clipname="Clip-$N.mov"
echo ... Extracting $clipname
ffmpeg -hide_banner -ss $start -i "$f" -t $seconds -pix_fmt yuv420p "$clipname"
# Add name of this clip to the list of files to concatenate at the end
echo "file $clipname" >> list.txt
# Increment clip counter
((N=N+1))
done
# Now join together all the extracted clips into a single file
ffmpeg -hide_banner -f concat -i list.txt -c copy -pix_fmt yuv420p mergedVideo.mov

现在,您需要通过以下方式制作该可执行文件,只需一次:

chmod +x $HOME/RandomClips

然后使用cd导航到影片目录:

cd some/place/with/movies

并运行脚本:

$HOME/RandomClips

该脚本不是全世界最健壮或经过充分测试的脚本,但它应该是 90+% 的好。您可能需要将视频大小调整为固定大小,以便它们都匹配格式。编解码器也是如此。如果这成为一个问题,可能会问另一个问题。

没有人说答案必须是100%完美的,而且由于没有其他人提出任何建议,这有望让您顺利进行。


如果要调试脚本,可以:

  • 逐行读取调试输出
  • 检查所有提取的剪辑看起来是否正确,即"剪辑-1.mov"、"剪辑-2.mov">
  • 阅读名为"list.txt"的文件以查看它是否包含所有剪辑

相关内容

  • 没有找到相关文章

最新更新