【问题标题】:Why does FFMpeg stop after five seconds when run from a Perl daemon?为什么从 Perl 守护程序运行时 FFMpeg 会在五秒后停止?
【发布时间】:2010-12-10 19:53:48
【问题描述】:

我在 Perl 中编写了一个小守护程序,它调用 FFMpeg 对视频进行编码,但编码在 5 秒左右后停止。

我用这段代码来启动它:

my $t = `echo '$ffmpeg_command' >>$self->{FFMPEG_OUTPUT}`;
my $log_data = `$ffmpeg_command 2>>$self->{FFMPEG_OUTPUT}`;

有什么想法吗?

如果我自己启动 FFMpeg 命令,顺便说一句,它可以正常工作。

【问题讨论】:

  • $ffmpeg_command 看起来像什么?我怀疑是一个简单的 I/O 死锁,但我只能猜测我是否不知道 ffmpeg 从哪里获取数据或将其发送到哪里:)
  • 我使用的命令是 /usr/bin/ffmpeg -i /data/media/mymedia.ts -y -threads 0 -crf 22 -acodec libfaac -vcodec libx264 -ab 128k -vpre hq /数据/编码/test.m4v

标签: perl ffmpeg


【解决方案1】:

好的,我自己找到的

这是一个IO锁,显然你必须在命令末尾添加</dev/null

我上面的语句会是这样的:

my $log_data = `$ffmpeg_command 2>>$self->{FFMPEG_OUTPUT} </dev/null`;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 2014-01-13
    • 2015-01-03
    • 1970-01-01
    相关资源
    最近更新 更多