【发布时间】:2021-10-13 00:16:14
【问题描述】:
我有一个可以创建一些屏幕截图的游戏,我想将它们转换为 mp4 视频。所以我有下一个命令:
ffmpeg -framerate 15 -i %06d.png -s hd1080 -vcodec libx264 -r 30 timelapse.mp4
但是我的游戏持续了8小时,所以,在自动压缩图片后,我有超过9To的图片。所以我想在图片生成结束之前启动ffmpeg进程,所以我想让ffmpeg等下一张图片消化一下。
我该怎么做?
【问题讨论】:
-
我认为使用命令行是不可能的,但使用 Python 脚本很简单。建议的解决方案将帧写入 FFmpeg 标准输入管道,如 here 所述。如果你不懂 Python,也可以用其他编程语言来实现。
-
我承认我不喜欢python,因为它对生态来说是一场大灾难,但感谢image2pipe和“-i-”!!!我会试试的,我会在接下来的几天里发布解决方案:D
-
@Chklang 你需要澄清:... (1)
I have a game which can create some screenshots是你做游戏还是修改源代码还要运行像FFmpeg这样的外部进程? (2) 听起来您需要运行 FFmpeg 作为进程,以便在可用时将图像作为视频帧发送...您知道任何也可以使用 std in/out的编程语言> 关于外部计划?如果您有本地主机服务器,PHP 可以做到这一点。 (3) 你说“...但是我的游戏持续8小时”那么它多久保存一次图片?这是自动的还是仅当您按下按钮时? -
对不起@Rotem,你已经给出了最好的解决方案,但不是作为“答案”,只是作为“评论”,所以我不能给你赏金:/