我正在寻求帮助。
我想做的是让AppleScript打开一个视频文件夹,然后让QuickTime随机修剪它们(就像在它修剪的开始帧中一样(,然后有一个可变长度的修剪本身(比如随机在1秒到2秒之间作为新"剪辑"的边界(。修剪并创建新的"编辑"后(它会将此新的随机修剪添加到文件夹中的所有视频,然后添加到时间线(。然后,QT 需要将编辑导出到新文件夹。
总之,尝试制作一个快速的自动编辑应用程序,该应用程序可以从充满视频的文件夹中随机选择,然后将编辑保存到新视频中。
任何这方面的帮助将不胜感激!
我一直在尝试,但要有所帮助(我对编码兜圈子相当陌生(。
谢谢! 迪伦
像@CJK一样,我建议您使用bash
和ffmpeg
,因为它们都可以在macOS上使用,并且比Applescript和QuickTime更广为人知且适用范围更广。
恕我直言,由于Apple没有提供包管理器,因此建议您使用自制软件来安装,更新和删除包。它可以在自制网站上找到。
一旦你有了它,你可以找到你想要的任何包:
brew search packageXYZ
因此,您现在可以使用以下方式安装ffmpeg
:
brew install ffmpeg
现在,您需要一个bash
脚本,该脚本具有以下功能:
- 循环遍历目录中的所有".mov"文件
- 获取它们的长度
- 计算随机持续时间
- 计算随机开始时间
- 将该视频片段提取为剪辑
- 最后,将所有剪辑组装在一起
这将看起来像这样,我建议您将其保存在名为$HOME/RandomClips
的bash
脚本中
#!/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"的文件以查看它是否包含所有剪辑