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