我正在寻求帮助。
我想做的是让AppleScript打开视频文件夹,然后让QuickTime随机修剪它们(如从修剪开始的帧),然后使修剪本身具有可变的长度(例如在1秒到2秒之间作为新“剪辑”的边界随机)。修剪并创建新的“编辑”后(它将对该新的随机修剪添加到文件夹中的所有视频,然后添加到时间线)。然后,QT需要将编辑内容导出到新文件夹。
总而言之,尝试制作一个快速的自动编辑应用,该应用可以从充满视频的文件夹中随机选择,然后将编辑保存到新视频中。
对此将提供任何帮助!
我一直在努力,但还是要徒劳无功(对于圈出圈圈,我是新来的人)。
谢谢! 迪伦
答案 0 :(得分:0)
就像@CJK一样,我建议您使用bash
和ffmpeg
,因为它们都可以在macOS上使用,并且比Applescript和QuickTime更广为人知并且适用范围更广。
恕我直言,由于Apple不提供软件包管理器,因此建议您使用自制软件来安装,更新和删除软件包。在homebrew website上可用。
一旦有了,就可以找到任何想要的软件包:
brew search packageXYZ
因此,您现在可以使用以下命令安装ffmpeg
:
brew install ffmpeg
现在,您需要一个bash
脚本:
这看起来像这样,我建议您将其保存在名为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%完美,而且由于没有其他人提出任何建议,因此希望您能顺利上手。
如果要调试脚本,可以: