我想对实时视频流执行实时语音活动检测和音频分析。
我目前使用FFMPEG来提取音频:
ffmpeg -i https://example.com/live/stream.m3u8 -vn -c:a copy audio.aac
问题是,aac文件只有在流完成后才有效。
如何输出音频流或音频块/帧(就像图像帧一样(,以便在不等待视频流结束的情况下对其进行分析?
选项1(单个文件
如果你需要一个包含所有音频流的文件,你可以选择一个像mp4这样的带有碎片的容器。
ffmpeg -i https://example.com/live/stream.m3u8 -vn -c:a aac -movflags frag_keyframe+empty_moov audio.mp4
frag_keyframe
=分段输出empty_moov
=输出将是100%碎片化
选项2(多个文件
如果您喜欢可以逐个处理的小文件,请使用分段输出。
ffmpeg -i https://example.com/live/stream.m3u8 -vn -c:a aac -f segment -segment_time 5 audio%03d.aac
segment_time
=每5秒创建一个新文件