我正在开发一个应用程序,用RTSP协议捕获一些ip摄像头,并将它们发送到一个服务器。当ip摄像机的分辨率很低时,一切都进行得很好,但是当它们增加时,我的程序的内存消耗就会突然上升。
我已经意识到,ffmpeg存储了一系列的帧,我们可以寻求。1.有没有办法减少这方面的影响?
2.当=>ip摄像机从输入端读取帧时,是否有可能减小帧的大小?400 x400对我的应用程序来说已经足够了,但目前它是2048。
3.或任何其他帮助我减少内存使用的方法
发布于 2019-07-17 16:45:34
1) 以减少内存:
i)降低帧率:使用-framerate
(2)通过选择更长的GOP来增加压缩:使用-g
2) 来缩放输入:使用-s开关
ffmpeg -framerate 25 -g 14 -i input.mp4 -vcodec libx264 -s 400x400 http://localhost:1234/out.ffm编辑:
为了将ffmpeg集成到您的c++项目中,以下是一些解决方案:
system(ffmpeg command line); // EasyCreatePrcess和管道隐藏控制台窗口,并在GUI中显示进度。//介质https://stackoverflow.com/questions/57078249
复制相似问题