我正在编写一个脚本来将视频关键帧(到frame_{0}.jpg
)和音频提取到一个单独的.mp3
文件中。这是我到目前为止所拥有的:
import os
import av
path_to_video = 'http://184.72.239.149/vod/smil:BigBuckBunny.smil/playlist.m3u8'
container = av.open(path_to_video)
stream = container.streams.video[0]
audio_stream = container.streams.audio[0]
stream.codec_context.skip_frame = 'NONKEY'
tgt_path = "./frames"
if not os.path.isdir(tgt_path):
os.makedirs(tgt_path)
for frame in container.decode(stream):
tgt_filename = os.path.join(tgt_path,'frame-{:09d}.jpg'.format(frame.pts))
frame.to_image().save(tgt_filename,quality=80)
如何将音频流保存到文件(最好是块)。我需要启动一个单独的捕获例程并并行运行,还是可以在上面的循环中捕获?
不幸的是,我查看了pyav github 帖子没有运气。不知道如何在一个循环中做到这一点。