AppleScript + QuickTime-批处理+创建编辑+导出视频

时间:2018-08-10 19:23:37

标签: applescript editing quicktime

我正在寻求帮助。

我想做的是让AppleScript打开视频文件夹,然后让QuickTime随机修剪它们(如从修剪开始的帧),然后使修剪本身具有可变的长度(例如在1秒到2秒之间作为新“剪辑”的边界随机)。修剪并创建新的“编辑”后(它将对该新的随机修剪添加到文件夹中的所有视频,然后添加到时间线)。然后,QT需要将编辑内容导出到新文件夹。

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

对此将提供任何帮助!

我一直在努力,但还是要徒劳无功(对于圈出圈圈,我是新来的人)。

谢谢! 迪伦

1 个答案:

答案 0 :(得分:0)

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

恕我直言,由于Apple不提供软件包管理器,因此建议您使用自制软件来安装,更新和删除软件包。在homebrew website上可用。

一旦有了,就可以找到任何想要的软件包:

brew search packageXYZ

因此,您现在可以使用以下命令安装ffmpeg

brew install ffmpeg

现在,您需要一个bash脚本:

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

这看起来像这样,我建议您将其保存在名为bash的{​​{1}}脚本中

$HOME/RandomClips

现在,您需要使用以下命令来使该可执行文件(只需执行一次):

#!/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

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

没有人说答案必须是100%完美,而且由于没有其他人提出任何建议,因此希望您能顺利上手。


如果要调试脚本,可以:

  • 逐行读取调试输出
  • 检查所有提取的剪辑是否正确,即“ Clip-1.mov”,“ Clip-2.mov”
  • 读取名为“ list.txt”的文件以查看其是否包含所有剪辑