我目前正在为我的 raspberry pi 3B 编写一个脚本,该脚本调用 FFmpeg 将 m3u8 流写入 .TS 文件。但是,由于我正在录制长达一小时的流,其中一些流是不需要的,所以我还编写了一个以 5 秒为间隔运行的侧脚本,在写入视频中寻找时间戳并保存其中的一帧,以便稍后编译成类似延时的视频。我当前使用的命令是...
ffmpeg -n -ss second_to_process -i "test.ts" -frames:v 1 "test.jpg"'
现在的问题是,帧捕获操作似乎非常耗费我的 pi 的 CPU。录制 m3u8 流几乎不占用任何 CPU,因为它似乎是 I/O 驱动的,但运行 2-3 个帧捕获脚本操作会占用我 75% 的 CPU。我希望随时录制 4-12 个流。
目前的想法是尝试寻找关键帧/i 帧时间并保存它们,因为我认为重点部分是寻找时的编码方面,但我不确定这样做是否不那么重点。我尝试过将 opencv 与 python 结合使用,处理过程大致相同。欢迎提出建议
答案1
事实证明,RPI 不足以支持多个 simul-jpeg 保存。话虽如此,我也大大缩减了脚本,删除了对 ffprobe 的调用,并减少了循环时间以减少 CPU 使用率。我最终选择了 odroid N2,它做得很好。在 CPU 使用率达到恒定的 100% 之前,每 2 秒保存 10 张 jpeg 似乎是您可以获得的最大速度。