请选择 进入手机版 | 继续访问电脑版

ChinaFFmpeg

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8460|回复: 4

[Linux] FFMPEG解析H264耗CPU

[复制链接]
发表于 2015-8-31 17:05:11 | 显示全部楼层 |阅读模式
    FFMPEG负责收取H.264码流数据,读取每一个视频帧,流程大致是av_read_frame-->read_frame_internal-->ff_read_packet、parse_packet-->h264_parse,由于每一帧数据,通过n个MTU(1500字节)收包后,h264_parse需要通过函数h264_find_frame_end解析到是否是一个完整的包,截断数据ff_combine_frame,在调用parse_nal_units。这样的过程,处理一路占用CPU较高,例如消耗CPU 3%,那么连接16路,就48%了。
  有没有办法,对这个处理过程做一个比较好的优化,控制CPU使用率?
  找了很多资料,无从下手,到论坛里来请教各位大牛,谢谢。

回复

使用道具 举报

 楼主| 发表于 2015-8-31 17:06:15 | 显示全部楼层
网上有搜索到“http://www.docin.com/p-832531445.html”,但都连续不到作者。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-9-1 09:12:08 | 显示全部楼层
看来这个论坛没什么人气。。。
回复 支持 反对

使用道具 举报

发表于 2015-9-1 10:43:49 | 显示全部楼层
一个设想:

1、先找出这个流程中各个步骤的cpu消耗值,看看 传输过程、解析过程、解码过程 哪一步的cpu消耗是最大的。
2、如果 h264_find_frame_end 这个函数消耗cpu比较大,看看是否可以在 rtsp包中加入一些frame相关数据,减少查找过程。
3、...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-9-7 14:22:06 | 显示全部楼层
walkOnly 发表于 2015-9-1 10:43
一个设想:

1、先找出这个流程中各个步骤的cpu消耗值,看看 传输过程、解析过程、解码过程 哪一步的cpu消 ...

1、代码较多,无法一一确定是哪个函数耗CPU较多。
2、无法控制接入端。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|Archiver|ChinaFFmpeg

GMT+8, 2024-4-18 14:53 , Processed in 0.052591 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表