4245
- 收藏
- 点赞
- 分享
- 举报
求一在WINDOWS下H264 H265解码显示平滑处理的思路
求一在WINDOWS下H264 H265解码显示平滑处理的思路
以前用HI3516C做1080P,我是这样处理的:
一个线程收取音视频数据,然后传入3个队列,
一个线程队列录像;
一个线程队列播放音频;
一个线程队列解码视频及上屏显示
解码用的是ffmpeg软解码
上屏显示用的是DirectDraw
由于1080P图像解码并不太占资源,在我的电脑上,基本一个I帧约40ms,运行剧烈画面的P帧也约
30~40ms,静态画面P帧约10~17ms
所以,将解码和上屏显示放到一个线程中,没什么问题,画面很平滑。
现在做HI3516A+IMX178 500W时,问题来了:
还是采用上面的处理方式:
一个线程收取音视频数据,然后传入3个队列,
一个线程队列录像;
一个线程队列播放音频;
一个线程队列解码视频及上屏显示
解码用的是ffmpeg软解码
上屏显示用的是DirectDraw
H264:
由于2592x1944 500W图像解码时,在我的电脑上,基本一个I帧约50~80ms,运行剧烈画面的P帧也
约50~80ms,静态画面P帧约15~35ms,
这样,由于某些帧解码时间太长,图像就一顿一顿的。
H265:
H265就不用谈了,软解码,时间基本上是H264的两倍。
我的解决办法是:
将解码、上屏显示这一个线程再拆分为两个线程,一个专门解码、一个专门上屏显示。
但是存在的问题是:
avcodec_decode_video2输出的AVFrame中data只有两个缓存地址在不停地来回切,
如果我将解码后的YUV420或RGB32数据自己拷贝到一个缓存中,
一张500W的有近20M,系统内存也会吃不消,拷贝效率也低。
求思路……
以前用HI3516C做1080P,我是这样处理的:
一个线程收取音视频数据,然后传入3个队列,
一个线程队列录像;
一个线程队列播放音频;
一个线程队列解码视频及上屏显示
解码用的是ffmpeg软解码
上屏显示用的是DirectDraw
由于1080P图像解码并不太占资源,在我的电脑上,基本一个I帧约40ms,运行剧烈画面的P帧也约
30~40ms,静态画面P帧约10~17ms
所以,将解码和上屏显示放到一个线程中,没什么问题,画面很平滑。
现在做HI3516A+IMX178 500W时,问题来了:
还是采用上面的处理方式:
一个线程收取音视频数据,然后传入3个队列,
一个线程队列录像;
一个线程队列播放音频;
一个线程队列解码视频及上屏显示
解码用的是ffmpeg软解码
上屏显示用的是DirectDraw
H264:
由于2592x1944 500W图像解码时,在我的电脑上,基本一个I帧约50~80ms,运行剧烈画面的P帧也
约50~80ms,静态画面P帧约15~35ms,
这样,由于某些帧解码时间太长,图像就一顿一顿的。
H265:
H265就不用谈了,软解码,时间基本上是H264的两倍。
我的解决办法是:
将解码、上屏显示这一个线程再拆分为两个线程,一个专门解码、一个专门上屏显示。
但是存在的问题是:
avcodec_decode_video2输出的AVFrame中data只有两个缓存地址在不停地来回切,
如果我将解码后的YUV420或RGB32数据自己拷贝到一个缓存中,
一张500W的有近20M,系统内存也会吃不消,拷贝效率也低。
求思路……
我来回答
回答4个
时间排序
认可量排序
认可0
认可0
认可0
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2017-03-03 09:40:10
-
2016-09-20 15:47:30
-
2020-04-08 18:19:13
-
2020-03-24 11:56:33
-
2016-03-15 20:35:37
-
2015-01-13 10:40:48
-
2020-08-15 15:38:39
-
2021-01-06 15:15:36
-
2017-07-03 10:46:54
-
2015-03-23 16:56:17
-
2020-09-25 15:57:45
-
2019-01-28 11:02:23
-
2017-05-24 16:03:29
-
2022-10-12 14:13:08
-
2019-04-15 19:55:47
-
2023-06-20 10:05:35
-
2017-05-24 10:58:20
-
2023-06-08 10:21:19
-
2013-03-16 15:45:23
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
5cat /dev/logmpp 报错 <3>[ vi] [func]:vi_send_frame_node [line]:99 [info]:vi pic queue is full!
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
-
10求HI3519DV500_SDK_V2.0.1.1
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认