我正在尝试在python中捕获实时m3u8流并将其拆分为两个流:rawaudio和rawvideo。然后分别进行分析。
可以使用ffmpeg
分别获取两个流for audio
import subprocess
videolink = 'http://20.7.7.1:8080/live/xyz.m3u8'
command = ['ffmpeg','-v','0', '-i', videolink, '-acodec', 'pcm_s16le', '-ac', '2', '-ar', '48000', '-f', 's16le', '-']
proc = subprocess.Popen(command, stdout=subprocess.PIPE, bufsize=10**8)
while True:
raw_audio = proc.stdout.read(192000) #reads 1s audio
视频
import subprocess
videolink = 'http://20.7.7.1:8080/live/xyz.m3u8'
command = ['ffmpeg','-v','0', '-i', videolink,'-f', 'image2pipe',
'-pix_fmt', 'bgr24','-vcodec', 'rawvideo', '-']
proc = subprocess.Popen(command, stdout=subprocess.PIPE, bufsize=10**8)
while True:
raw_video = proc.stdout.read(432*240*3) #reads 1 frame
在这种情况下,如果我比较从这些流中获得的结果,我可以得到时间差异。 我的问题是:是否可以使用一个命令同时捕获两个流?