4327
- 收藏
- 点赞
- 分享
- 举报
求一在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. 内容
- 缩进内容
- 图片
相关问答
-
2017-03-03 09:40:10
-
2017-03-03 09:39:24
-
2020-04-08 18:19:13
-
2016-09-20 15:47:30
-
2020-03-24 11:56:33
-
2016-03-15 20:35:37
-
2015-01-13 10:40:48
-
2020-08-15 15:38:39
-
2017-07-03 10:46:54
-
2021-01-06 15:15:36
-
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
-
2023-06-20 10:05:35
-
2019-04-15 19:55:47
-
2017-05-24 10:58:20
-
2023-06-08 10:21:19
-
2013-03-16 15:45:23
更多相似问答

点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
10sd3403 usb2.0开启问题
-
5嵌入式openEuler怎样安装软件
-
5SD3403移植openEuler启动慢,怎样开启 RANDOM_TRUST_CPU
-
5海思 ISP 例程
-
10海思SS528V100 同一时刻仅允许有一个通道放大;当一个通道进行semi-planar 420转semi-planar422时,其它通道不能再放大; 有什么方法可以解决该问题.
-
5PQTOOLS工具中的ISO值不能修改?但是需要获取不同ISO值的N帧数据
-
10hi3516cd610运行sample_uvc例程报错hi_mpi_uvc_create_chn(chn:0) failed with 0xa05a8018!
-
5海思SS928V100,svp_npu部署yolov8自训练模型,离线om模型转换过程中报错
-
5OS08A20 sensor i2c 报错
-
5DTOF的demo运行时内核挂死
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认