如何将ffmpeg输入流的输出文件大小限制为10 MB

Jab*_*abb 1 ffmpeg

我正在使用ffmpeg订阅tvheadend的输入流,并将该流连续写入磁盘。我想限制此输出流,以便随时最多存储10兆字节的数据。

我已经从moreutils和linux buffer命令研究了海绵,以构建某种管道。虽然,我找不到可行的解决方案。谁能指出我正确的方向?

Ngo*_*ral 9

您只需要-fs钥匙。它设置输出文件大小限制(以字节为单位)。

您可以输入ffmpeg -i input -fs 10M -c copy output,input输入地址在哪里,output-您希望文件具有的文件名。M指定您想要的大小(以兆k字节为单位)(也允许千字节)。


要覆盖,您可以使用像这样的小片段

#!/bin/bash

t=1
while :
do
 ffmpeg -i input -fs 10M -c copy output$t
 t=`expr $t + 1`
done
Run Code Online (Sandbox Code Playgroud)

我认为这比尝试仅使用ffmpeg进行所有操作更为优雅。

  • 谢谢。-fs 选项将停止 ffmpeg。我想不断地覆盖该段。我想我找到了一个非常接近我需要的很好的解决方案。-f ssegment -segment_time 60 -segment_wrap 2 tmp/out%03d.ts (2认同)
  • 谢谢。但我不同意。使用本机 ffmpeg 函数而不是实现某些东西会更优雅。外部的。但由于您的解决方案更准确,我会接受它作为答案。 (2认同)