ffmpeg连接由peer重置

时间:2015-02-25 16:39:29

标签: python ffmpeg

使用ffmpeg时遇到问题:

我的客户经常会有轻微狡猾的互联网连接,但他们订阅了一项旨在记录他们正在托管的流的服务,并将其记录在像wordpress网站这样的东西上。

ffmpeg由python脚本调用。理想情况下,我想知道ffmpeg是否会抛出异常或返回python脚本可以访问的值,并将其用作变量来确定录制音频是否存在问题。

目前python使用:

调用ffmpeg
os.system('ffmpeg -i [stream address] -t 1:00 -acodec copy ')

当我模拟连接丢失(关闭虚拟机上的NIC)时,ffmpeg打印到终端

Connection reset by peer

2 个答案:

答案 0 :(得分:1)

所以不是一个直接的答案,而是一个合适的方法来获得所需的响应,用伪代码编写,以使其易于理解:

finishTime = timeNow + recordingDuration
call RecordFunction (source, destination, finishTime)

def RecordFunction (source, destination, finishTime):

    calculate recording duration with simple arithmetic

    ffString([Build the ffrecording strin])
    run.commandLine(ffstring)
    timeLeft = finishTime - timNow
    if timeLeft > tollerance:
        call RecordFunction(source, destination, finishTime)

可选地,可以检查ffmpeg日志并将其传递给日志文件。或者可以对发生的断开连接数设置限制。

答案 1 :(得分:1)

根据os.system的文档:

"在Unix上,返回值是以wait()指定的格式编码的进程的退出状态。请注意,POSIX没有指定C system()函数返回值的含义,因此Python函数的返回值是依赖于系统的。"