有大佬开发过 ffmpeg 吗?用 c++调用 ffmpeg API 解码视频流 CPU 占用率高,求解决办法

55 天前
jeddida  jeddida

刚接触 ffmpeg 想着写一个播放器玩玩,但是 CPU 占用率一直高,有没有大佬知道怎么回事。没有显卡。

我测试一个视频的时候还行,视频数量上到了 16 个就开始花屏+卡顿了。

2333 次点击
所在节点   FFmpeg  FFmpeg
13 条回复
wnpllrzodiac
wnpllrzodiac
55 天前
这啥玩法,16 路。明显要硬解 加 dxva2
frayesshi1
frayesshi1
55 天前
没有显卡---是指没有独立显卡,应该有核显或者集显,反正 cpu 不擅长解码。我如果没有记错的话,ffmpeg 加参数是支持硬解的
mrzzoxo
mrzzoxo
55 天前
可以用显卡跑
ysc3839
ysc3839
55 天前
建议别写,直接改 mpv 代码吧
jifengg
jifengg
55 天前
我的建议是,先用 ffplay 试试 16 路播放,如果没问题,那你再参考 ffplay 改代码,如果也有问题,那就不用折腾了。
shuax
shuax
55 天前
没有显卡当然玩不转啊,难道集成显卡都没有吗。

https://trac.ffmpeg.org/wiki/HWAccelIntro
skkakaka2
skkakaka2
55 天前
没有显卡?如果用 cpu 软解的话,占用率高不是很正常的吗
jeddida
jeddida
55 天前
@shuax
@skkakaka2
@wnpllrzodiac
@frayesshi1 有国产显卡景嘉微的 JM7200 支持 OpenGL
CodeAllen
CodeAllen
55 天前
那你这个显卡约等于没有,显卡硬解需要支持才行,哪怕是 Intel A380 ,主流方案就支持几家大厂 Intel 、AMD 、nVidia 。
如果要搞纯国产,不如试试 RK3588 的开发板,应该是支持硬解的,升腾没了解过不是很清楚,如果不介意老黄家的板子,TX 系列、Orin 系列解码能力应该是更强的,8 路 16 路 1080P 应该手拿把掐。
capric
capric
54 天前
用 libmpv 启用 hwdec=auto ,或者使用 ffmpeg 硬件加速+libplacebo ,播放器非常复杂,要颜色映射,hdr/sdr ,还要向上向下缩放,还有同步策略和丢帧策略,做不好不是卡就是画面偏色或者资源占用高
iamzuoxinyu
iamzuoxinyu
54 天前
解码是一部分,另一部分也要看看渲染是否用上了硬件加速。
yankebupt
yankebupt
54 天前
单路播放 CPU 占用能小于 6.25%么? 16 路 100%还不算额外损耗
分辨率不说,编码不说,帧率不说,怎么知道你单路能不能做到 cpu 6%以下啊
yankebupt
yankebupt
54 天前
而且有没有帧同步要求啊,cpu 占用接近满的时候,多路总会有一半的视频错开一帧,如果还要求同步可能又要多加处理比如 buffer 一帧……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1100292

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX