即使使用timelimit

时间:2017-12-21 20:27:33

标签: bash video ffmpeg

大多数情况下,我使用java代码运行FFMPEG bash命令,为视频上的徽标加水印。我使用以下FFmpeg命令在视频上叠加图像。我观察到,有时一些随机视频,即使在分配给它的时间限制到期后,该过程仍继续运行。有时它超过一天或几天直到没有使用kill -9 pid直接杀死:

  

ffmpeg -timelimit 900 -y -i   input_video   -i logoImage -filter_complex" [0:v] scale = trunc(iw / 2)* 2:trunc(ih / 2)* 2 [even]; [1:v] [even] scale2ref = iw * 0.25 :(IW * 0.25)*(0.46446702)[第二] [参考文献] [参考文献] [第二]覆盖=(main_w-overlay_w):( main_h-overlay_h)"   -c:v libx264 -b:v 300K -crf 28 -preset slow outputVideo

但即使对某些视频有时使用 -timelimit 标志,此命令也永远不会完成。

我观察过这样的进程从ps aux|grep ffmpeg生成输出,如:

  

ubuntu 16620 0.6 6.7 1595044 515392? Sl Dec20 12:05   ffmpeg -timelimit 900 -y -i   input_video   -i logoImage -filter_complex" [0:v] scale = trunc(iw / 2)* 2:trunc(ih / 2)* 2 [even]; [1:v] [even] scale2ref = iw * 0.25 :(IW * 0.25)*(0.46446702)[第二] [参考文献] [参考文献] [第二]覆盖=(main_w-overlay_w):( main_h-overlay_h)"   -c:v libx264 -b:v 300K -crf 28 -preset slow outputVideo

它表示此过程处于可中断的睡眠状态,即等待事件完成。在使用sudo strace -p 16620跟踪哪个系统调用挂起时,它会导致类似:

  

进程16620附加写入(2,"帧= 4121 fps = 10 q = 33.0大小=" ...,   99

即。它写了一个文件卡住了。

这个问题可能是什么原因? 还有其他方法可以杀死超过所需时限的FFMPEG进程吗?

0 个答案:

没有答案