金富贵

金富贵

7个粉丝

9

问答

0

专栏

0

资料

金富贵  发布于  2022-07-19 09:52:28
采纳率 0%
9个问答
4230

海思解码API 中的PTS 问题

悬赏金¥ 5
已结题

我这边用海思的解码模块,业务就是解包 送包 解码 同步,这样好控制播放的进度,以及seek等操作,代码如下
1、ffmpeg 解包

  1. ret = av_read_frame(fmt_ctx, &pkt);

2、filter h264 转换 送包,解码

  1. int64_t PTS =pkt.pts;
  2. int64_t DTS =pkt.dts;
  3. int num =fmt_ctx->streams[videoindex]->time_base.num;
  4. int den =fmt_ctx->streams[videoindex]->time_base.den;
  5. double avq =num*1000000 /(double)den;
  6. int time_in_seconds =PTS*avq;
  7. ret =av_bitstream_filter_filter(h264bsfc, fmt_ctx->streams[videoindex]->codec, NULL, &video_buf, &video_len, pkt.data, pkt.size, 0);
  8. stStream.u64PTS = time_in_seconds;
  9. stStream.pu8Addr = video_buf ;
  10. stStream.u32Len = video_len;
  11. stStream.bEndOfFrame = HI_FALSE;
  12. stStream.bEndOfStream = HI_FALSE;
  13. stStream.bDisplay = 1;
  14. HI_MPI_VDEC_SendStream(0, &stStream, -1);

3、读取当前通道的时间戳

  1. 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 解包时候的时间戳是一致,这样好实现同步性,或者大佬们还有什么其他方案实现同步性

我来回答
回答
2个
时间排序
时间排序
认可量排序
认可量排序
0 条记录 第 0 /

Markdown 语法

  • 加粗 **内容**
  • 斜体 *内容*
  • 删除线 ~~内容~~
  • 引用 > 引用内容
  • 代码 `代码`
  • 代码块 ```编程语言↵代码```
  • 链接 [链接标题](url)
  • 无序列表 - 内容
  • 有序列表 1. 内容
  • 缩进 内容
  • 图片 ![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗 **内容**
  • 斜体 *内容*
  • 删除线 ~~内容~~
  • 引用 > 引用内容
  • 代码 `代码`
  • 代码块 ```编程语言↵代码```
  • 链接 [链接标题](url)
  • 无序列表 - 内容
  • 有序列表 1. 内容
  • 缩进 内容
  • 图片 ![alt](url)
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

Loading...
易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区
每周任务
    去完成
    活动规则
    易百纳技术社区
    升级提醒
    升级

    恭喜您的社区称号由 升级为 “社区游民”

    同时为了感谢您对社区的支持,我们将送出xxx礼品一份, 记得领取哦~

    升级提醒
    易百纳技术社区

    惊喜礼包

    拼手气红包 红包规则
    祝福语
    恭喜发财,大吉大利!
    红包金额
    红包最小金额不能低于5元
    红包数量
    红包数量范围10~50个
    余额支付
    当前余额:
    可前往问答、专栏板块获取收益 去获取
    取 消 确 定

    小包子的红包

    恭喜发财,大吉大利

    已领取20/40,共1.6元 红包规则

      avatar