首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取合成时间C++

获取合成时间C++
EN

Stack Overflow用户
提问于 2019-11-13 22:52:35
回答 1查看 68关注 0票数 0

我使用libav和ffmpeg制作了自己的rtmp服务器。我接收flv文件或rtmp流“包含”flv文件作为输入。因为我操作flv文件和每个帧的相对合成时间,所以我想知道是否有方法可以获得这个合成时间。我认为给定我的AVPacket,我可以分析原始缓冲区以提取正确的信息,因为我知道flv头是11个字节,然后在接下来的16个字节中我应该找到合成时间。但它不起作用。

这是一个粗略的代码示例:

代码语言:javascript
复制
AVPacket pkt;
AVFormatContext *ifmt_ctx
while(true)
{
    AVStream *in_stream, *out_stream;

    ret = av_read_frame(ifmt_ctx, &pkt);
    //get the composite time
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-13 23:44:58

AVPacket需要能够表示所有媒体格式的数据。一些格式(如mp4和flv)有decode_time和composition_time,其他格式(如传输流)有decode_time和presentation_time。为了方便程序员,AVPacket选择了一种方法来存储信息,并在需要时进行转换。幸运的是,它很容易转换回来:

代码语言:javascript
复制
auto cts = pkt.pts - pkt.dts
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58839732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档