【问题标题】:Extract audio frames from live stream with FFMPEG使用 FFMPEG 从实时流中提取音频帧
【发布时间】:2021-07-02 07:38:54
【问题描述】:
我想对实时视频流执行实时语音活动检测和音频分析。
我目前使用 FFMPEG 提取音频:
ffmpeg -i https://example.com/live/stream.m3u8 -vn -c:a copy audio.aac
问题是 aac 文件只有在流完成后才有效。
如何输出音频流或音频块/帧(就像图像帧一样)以便我可以分析它们而无需等待视频流结束?
【问题讨论】:
标签:
audio
ffmpeg
live-streaming
【解决方案1】:
选项 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 秒创建一个新文件