Eli*_*liA 5 python streaming subprocess ffmpeg webm
我正在使用ffmpeg以“连续流”模式将webm格式的媒体块转换为wav文件。
使用python包装器,我向ffmpeg提供了一个webm块(假设每秒1个块),并且ffmpeg不断写入输出wav(然后,在一个单独的线程中,我正在读取该wav文件并将新数据向前传递)。
在大多数情况下,这种方法效果很好,但是有时候,我会得到以下奇怪的行为:
查看CPU和内存使用情况,这似乎不是问题。
关于什么可能导致ffmpeg停止流播几分钟然后恢复的任何想法?这可能会在30秒后,3分钟后或一个小时的流媒体块发生之后发生,并且ffmpeg恢复的时间也有所不同。
在我的python代码中,我基本上是打开一个subprocess.Popen()进程并写入该进程stdin以馈送ffmpeg媒体块。
所以我的代码看起来像:
ffmpeg_proc = subprocess.Popen('ffmpeg -y -f webm -i - -ac 1 -ar 16000 -f wav /tmp/out.wav', shell=True, stdin=subprocess.PIPE)
for chunk in chunks:
ffmpeg_proc.stdin.write(chunk)
Run Code Online (Sandbox Code Playgroud)
我正在使用python 3.6和ffmpeg version 2.8.14-0ubuntu0.16.04.1
提前致谢!
| 归档时间: |
|
| 查看次数: |
356 次 |
| 最近记录: |