使用FFMPEG从直播流中提取音频帧



我想对实时视频流执行实时语音活动检测和音频分析。

我目前使用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秒创建一个新文件

最新更新