获取合成时间C++
Get composition time C++
我使用libav和ffmpeg制作了自己的rtmp服务器。我收到一个flv文件或一个rtmp流"包含"flv文件作为输入。由于我操作flv文件和每帧的相对合成时间,我想知道是否有办法获得这个合成时间。我想,考虑到我的AVPacket,我可以分析原始缓冲区以提取正确的信息,因为我知道flv标头是11个字节,然后在接下来的16个字节中,我应该找到合成时间。但它不起作用。
这是一个粗略的代码示例:
AVPacket pkt;
AVFormatContext *ifmt_ctx
while(true)
{
AVStream *in_stream, *out_stream;
ret = av_read_frame(ifmt_ctx, &pkt);
//get the composite time
}
AVPacket
需要能够表示所有媒体格式中的数据。一些格式(如mp4和flv(具有decode_time和composition_time,其他格式(如传输流(具有decode _time和presentation_time。为了让程序员更容易,AVPacket
选择了一种方法来存储信息,并在需要时进行转换。幸运的是,这是一个易于转换的
auto cts = pkt.pts - pkt.dts
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- 从持续时间构造std::chrono::system_clock::time_point
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- while循环中while循环的时间复杂度是多少
- 使用简单类型列表实现的指数编译时间.为什么
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- 在已经使用Git的情况下减少编译时间
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 从文本文件中读取时钟时间和事件时间并进行处理
- 具有未知值时的时间复杂性
- 如何减少花费的时间
- C++在变量给定的指定时间内关闭电脑
- rcpp函数中的清理时间很长
- C++:floor unix时间戳到UTC月份
- 如何在c++中录制具有精确帧时间戳的视频
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- KMP算法和LPS表构造的运行时间
- 为什么std::互斥需要很长的、非常不规则的时间来共享
- 使用Boost Interprocess创建托管共享内存需要很长时间