请参阅底部的编辑。下面的一些信息是错误的。
有没有办法让 FFMPEG 直接写入目标并跳过 tmp 目录?
如果没有,有没有办法在运行时选择临时目录?假设我想使用/mnt/hgfs/videos/tmp
而不是/tmp
目录。
我知道根据我的情况,我可以采取许多其他措施来解决问题,但我想看看是否可以先执行上述任一操作。
我有一个使用 ffmpeg 转码文件的虚拟机。我需要合并一堆大文件并对它们进行转码。合并后的文件可以大于 60GB。虚拟机的磁盘空间为 46GB,这足够了,因为我将所有视频(输入和输出)都安装在 drobo 上/mnt/hgfs/videos
。当我ffmpeg concat
在 15 个 4GB 文件上运行时,我有一个 60GB 文件。FFMPEG 首先写入该/tmp
目录,然后将其移动到目标目录。因为该/tmp
目录位于 46GB 系统上,所以它已满并且 FFMPEG 崩溃。
一些解决方法可能会帮助其他遇到类似问题的人:(我不想用这些来解决我的问题)
1) 按照此处的步骤使用不同的临时目录重新编译 FFMPEG。
2) 按照此命令mv/tmp
到更大的驱动器并将其符号链接到/tmp
.
就我而言,我可以:3)对视频进行转码,然后使用 MP4Box 或 FFMPEG 将它们连接起来,这样您就不必处理那么大的文件。
编辑:我一直都错了。
FFMPEG 不会写入文件然后/tmp
将其移动到目的地。我正在使用一个调用 FFMPEG 的节点项目,但它将目标设置为/tmp
当 FFMPEG 完成视频转码后,节点项目将其移动到我想要的目标。所以一直以来,FFMPEG 都没有使用该/tmp
目录。
在您提供的第一个链接中,他们在编译而ffmpeg
不是运行它时遇到问题。编译器和ffmpeg
应该使用系统临时目录。因此,就像更改TMPDIR
变量可以使其正确编译一样,它也应该可以使其正确运行。临时目录的位置存储在TMPDIR
或TMP
环境变量中。
归档时间: |
|
查看次数: |
5332 次 |
最近记录: |