- 收藏
- 点赞
- 分享
- 举报
海思解码API 中的PTS 问题
我这边用海思的解码模块,业务就是解包 送包 解码 同步,这样好控制播放的进度,以及seek等操作,代码如下
1、ffmpeg 解包
ret = av_read_frame(fmt_ctx, &pkt);
2、filter h264 转换 送包,解码
int64_t PTS =pkt.pts;
int64_t DTS =pkt.dts;
int num =fmt_ctx->streams[videoindex]->time_base.num;
int den =fmt_ctx->streams[videoindex]->time_base.den;
double avq =num*1000000 /(double)den;
int time_in_seconds =PTS*avq;
ret =av_bitstream_filter_filter(h264bsfc, fmt_ctx->streams[videoindex]->codec, NULL, &video_buf, &video_len, pkt.data, pkt.size, 0);
stStream.u64PTS = time_in_seconds;
stStream.pu8Addr = video_buf ;
stStream.u32Len = video_len;
stStream.bEndOfFrame = HI_FALSE;
stStream.bEndOfStream = HI_FALSE;
stStream.bDisplay = 1;
HI_MPI_VDEC_SendStream(0, &stStream, -1);
3、读取当前通道的时间戳
s32Ret = HI_MPI_VO_GetChnPTS(0, 1, &u64ChnPts);
按照api 里面的说法,我现在是送帧模式 ,HI_S32 HI_MPI_VDEC_SendStream(VDEC_CHN VdChn, const VDEC_STREAM_S
*pstStream, HI_S32 s32MilliSec);解码api里面的VDEC_STREAM_S的结构体连有个U64pts的参数,他原文是这么描述的
————————————————————————
时间戳(PTS)处理
在模式 VIDEO_MODE_FRAME 下发送码流时,解码输出的图像时间戳 PTS 为发
送码流接口(HI_MPI_VDEC_SendStream)中用户送入的 PTS,解码器不会更改此HiMPP V4.0 媒体处理软件
开发参考 7 视频解码
文档版本 07 (2019-04-30) 版权所有©上海海思技术有限公司 7-4
值;如果用户配置的 PTS 值为 0,则表示用户不进行帧率控制,而是由视频输出
模块(VO)进行帧率控制;如果用户送入的 PTS 值为-1,则表示此图像不会被视
频输出模块(VO)显示;如果是其他值,则表示视频输出模块(VO)根据用户
设置的 PTS 值进行帧率控制。
注意:不能出现 PTS 值为 0 和非 0 混合的情况
——————————————————————————
我现在的模式就是VIDEO_MODE_FRAME,然后我在结构体里面的PTS赋值,ffmpeg解包出来的算出来的当前一帧的时间戳,最终的结果就是解码不成功,蓝屏,但是我的u64PTS如果是0,就是板子VO端去控制,但是这样实时读出来的时间戳HI_MPI_VO_GetChnPTS,是由板子自己去实现时间戳的,跟我ffmpeg 解包时候的时间戳不一致,我现在就想要解码时候的时间戳跟ffmpeg 解包时候的时间戳是一致,这样好实现同步性,或者大佬们还有什么其他方案实现同步性
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
-
2020-08-30 21:18:34
-
2015-04-02 17:59:23
-
2020-03-24 15:30:19
-
2020-05-28 17:02:50
-
2020-07-05 14:31:49
-
2016-08-25 15:27:02
-
2015-02-11 10:24:53
-
2020-04-07 14:06:57
-
2018-04-24 16:01:22
-
2015-11-12 13:54:15
-
2015-11-05 16:04:45
-
2024-02-24 20:55:19
-
2016-09-05 16:41:08
-
2017-03-22 17:26:44
-
02017-10-13 15:42:09
-
2015-11-11 10:35:58
-
2017-12-20 14:59:13
-
2019-09-04 11:27:06
-
2019-12-28 09:14:08
-
5Hi3516CV610 如何使用SD卡升级固件
-
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板子运行自己编码的程序
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明