我最近拍摄了一堆图像来制作延时视频,使用起来avconv
出奇的简单(查找正确的命令后)。
但现在我想先通过 Imagemagick 的convert
函数发送每幅图像,然后再将其传递给 avconv。
这可以通过保存已编辑的图片并将其用作输入来实现avconv
。然而,我想避免这种情况,主要是因为它占用了很大的空间。
什么我想要做的就是这样
- avconv 在后台运行
- 执行 { 某些处理;编辑图像;发送结果至
avconv
;} 对所有图像重复此操作 - 退出 avconv 并保存生成的视频
制作延时视频时如何即时编辑图片?
答案1
无法完成确切地按照你想要的方式完成,你可以接近,但这需要很多操作。
我也理解其背后的原因:您希望将函数的输出convert
视为之后可以删除的临时文件,因此不要:
@!/bin/bash
convert -stretch 1280x720 -background none ~/Pictures/MyTimelapseImages/*.jpg ~/tmp/MyTempImages/*.jpg
avconv -i ~/tmp/MyTempImages/*.jpg ~/Videos/MyTimeLapsVideo.mkv
您希望在一个 CPU 核心上启动图像转换过程,同时在另一个 CPU 核心上启动视频转换过程并删除已经由 avconv 处理过的文件(节省磁盘空间)
这是后者这需要一些技巧,因为你必须cpulimit
同时avconv
和 convert
他们正在近乎完美相互同步,然后创建另一个过程这将清理已处理的文件。
所以,是的,这是可以做到的,如果你在一家大公司工作,他们希望你在他们的 100 多个服务器群上节省数千美元,那么这是值得的。在你的系统上?为自己?还是为一部电影?
让你为其拍摄这部电影的人捐钱给你买一个更新、更大的硬盘!
;-)