2009-10-28 72 views
2

我在Perl中編寫了一個小程序,它調用FFMpeg來編碼視頻,但編碼在5秒左右停止。爲什麼FFMpeg在從Perl守護進程運行五秒後停止?

我用這一段代碼來啓動它:

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

任何想法?

如果我自己啓動FFMpeg命令,它的工作方式很好。

+0

'$ ffmpeg_command'看起來像什麼?我懷疑是一個簡單的I/O死鎖,但我只能猜測,如果我不知道ffmpeg從哪裏獲取數據或從哪裏將數據發送到:) – hobbs 2009-10-28 11:06:17

+0

我使用的命令是 /usr/bin/ffmpeg -i /data/media/mymedia.ts -y -threads 0 -crf 22 -acodec libfaac -vcodec libx264 -ab 128k -vpre hq /data/encoded/test.m4v – 2009-10-28 11:09:52

回答

3

好吧,我發現自己

這是一個IO鎖,顯然你將不得不在命令結束

我上面的說法看起來像這樣添加</dev/null

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