使用ffmpeg时遇到问题:
我的客户经常会有轻微狡猾的互联网连接,但他们订阅了一项旨在记录他们正在托管的流的服务,并将其记录在像wordpress网站这样的东西上。
ffmpeg由python脚本调用。理想情况下,我想知道ffmpeg是否会抛出异常或返回python脚本可以访问的值,并将其用作变量来确定录制音频是否存在问题。
目前python使用:
调用ffmpegos.system('ffmpeg -i [stream address] -t 1:00 -acodec copy ')
当我模拟连接丢失(关闭虚拟机上的NIC)时,ffmpeg打印到终端
Connection reset by peer
答案 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函数的返回值是依赖于系统的。"